Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Outsourcing With Agile

2.229 visualizaciones

Publicado el

An overview of IT challenges and how Perficient China uses agile frameworks, methodologies, and practices to address these challenges and consistently deliver valued results to our clients.

Publicado en: Tecnología, Empresariales
  • HI dear i am Priscilla by name, i read your profile and like to be in contact with you, that is why i drop this note for you, please i we like you to contact me in my privet mail box to enable me send my picture to you,and also tell you more about me thanks i we be waiting for your reply, (
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

Outsourcing With Agile

  1. 1. Outsourcing with Agile April 2009
  2. 2. Agenda <ul><li>Purpose and expected outcomes </li></ul><ul><li>Ground rules </li></ul><ul><li>About the presenter </li></ul><ul><li>About Perficient </li></ul><ul><li>Agile – concepts and methodologies </li></ul><ul><li>The Perficient Enable-M Methodology </li></ul><ul><li>How Agile concepts and methodologies address the challenges that result in failed projects </li></ul>
  3. 3. Purpose and Outcomes <ul><li>Purpose: </li></ul><ul><ul><li>Familiarize you with: </li></ul></ul><ul><ul><ul><li>Perficient </li></ul></ul></ul><ul><ul><ul><li>Agile concepts and methodologies </li></ul></ul></ul><ul><ul><ul><li>Applying agile concepts to (outsourcing) projects </li></ul></ul></ul><ul><ul><ul><li>Introduce China GDC’s policy, procedure and benefits </li></ul></ul></ul><ul><li>Outcomes: </li></ul><ul><ul><li>Know something about Perficient </li></ul></ul><ul><ul><li>Understand the challenges (outsourcing) projects face </li></ul></ul><ul><ul><li>Recognize key Agile concepts and methodologies </li></ul></ul><ul><ul><li>Describe how Agile can be applied to successfully deliver outsourced projects </li></ul></ul>
  4. 4. Ground Rules <ul><li>Mute your cell phone </li></ul><ul><li>Participate – ask and answer questions </li></ul>Do Don’t
  5. 5. About Me <ul><li>Vernon Stinebaker ( 史文林) </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Director of Technology/Principal Architect </li></ul></ul><ul><ul><li>20+ years software development and process experience </li></ul></ul><ul><ul><ul><li>CMMI, SDLC/waterfall, and agile methodologies </li></ul></ul></ul><ul><ul><li>Certified ScrumMaster/Certified Scrum Practitioner </li></ul></ul><ul><ul><li>Founder of the open source FDDTools project </li></ul></ul>
  6. 6. Perficient Vision & Mission <ul><li>Vision </li></ul><ul><ul><li>To be the preeminent information technology management consultancy in the US. </li></ul></ul><ul><li>Mission </li></ul><ul><ul><li>Enable our clients to gain competitive advantage by making their businesses more responsive to market opportunities and threats, strengthening relationships with customers, suppliers and partners, improving productivity and reducing information technology costs. </li></ul></ul><ul><li>Tag Line </li></ul><ul><ul><li>“ Experts in delivering business-driven technology solutions.” </li></ul></ul>
  7. 7. <ul><li>2008 Fortune American Fastest Growth Companies – Winner </li></ul><ul><li>2008 IBM Lotus Distinguished Partner Award for North America – Winner </li></ul><ul><li>2007 IBM Information Management North American Distinguished Partner – Winner </li></ul><ul><li>2007 EMC Partner of Year – Winner </li></ul><ul><li>2007 EMC Select Services Team Partner of the Year – Winner </li></ul><ul><li>2007 Business 2.0 100 Fastest Growing Tech Companies — #6 </li></ul><ul><li>2007 Fortune Small Business America’s Fastest-Growing Small Public Businesses — #9 </li></ul><ul><li>2007 Fortune 100 Fastest-Growing Companies — #15 </li></ul>Recent Recognition & Awards
  8. 8. Fast Facts <ul><li>Founded in 1997 </li></ul><ul><li>Publicly traded (NASDAQ: PRFT) with ~$ 340 million in annual revenues </li></ul><ul><li>1,500 employees, 1,400+ certified business and technology consultants </li></ul><ul><li>Over 600 blue chip clients with 80% repeat business rate </li></ul><ul><li>Strong partnerships six of the major vendors: IBM, Microsoft, TIBCO, Documentum, Oracle-Siebel and webMethods </li></ul><ul><li>20 locations in North America, Offshore Development Centers in Hangzhou and Macedonia and a technology consulting recruiting office in India </li></ul>
  9. 9. Our Business Groups & Locations Global Delivery Centers: Macedonia & China US & Europe: 17 City Network Atlanta, Austin, Houston (2), Dallas, Denver, St. Louis (2), Chicago (2), Fairfax, Minneapolis, Philadelphia, New Orleans, Detroit, Columbus, Cincinnati, Indianapolis, San Francisco, Toronto Recruiting Facility: Indian
  10. 10. Our Customers <ul><li>Retail/Franchise </li></ul><ul><li>Telecommunications </li></ul><ul><li>Consumer Goods </li></ul><ul><li>Manufacturing </li></ul><ul><li>Energy </li></ul><ul><li>Financial Services </li></ul><ul><li>Healthcare & Life Sciences </li></ul><ul><li>AgriBusiness </li></ul><ul><li>Insurance </li></ul><ul><li> </li></ul>
  11. 11. About Perficient China <ul><li>Perficient (Hangzhou) Co., Ltd. 博克软件(杭州)有限公司 </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>E stablished in 2004 as BoldTech Systems (Hangzhou) Co., Ltd. </li></ul></ul><ul><ul><li>WOFE of Perficient Inc. (NASAQ: PRFT) </li></ul></ul><ul><ul><li>Agile BoldDelivery Methodology (now Enable-M) </li></ul></ul><ul><ul><li>2005 - CMMI 3 </li></ul></ul><ul><ul><li>2006 - CMMI 4 </li></ul></ul><ul><ul><li>2008- CMMI 5 </li></ul></ul><ul><ul><li>12 Agile Certified Project Managers (17 by mid-May) </li></ul></ul><ul><ul><li>20+ projects successfully delivered </li></ul></ul><ul><ul><li>Currently running 12 concurrent projects </li></ul></ul><ul><ul><ul><li>Some multi-year </li></ul></ul></ul><ul><ul><ul><li>Some with large teams (@50) </li></ul></ul></ul><ul><ul><ul><li>Many repeat business </li></ul></ul></ul>
  12. 12. <ul><li>Challenges in IT </li></ul>
  13. 13. <ul><li>31% of projects are cancelled before they are completed </li></ul><ul><li>53% of projects cost over 189% of their original estimates </li></ul><ul><li>Only 16% of software projects are completed on-time and on-budget </li></ul><ul><li>7 out of 10 IT projects ‘fail’ in some respect </li></ul><ul><li>[The Chaos Report 1995/OASIG Study 1995] </li></ul>Project Failure Statistics
  14. 14. <ul><li>Communication breakdowns </li></ul><ul><li>Poor user input </li></ul><ul><li>Stakeholder conflicts </li></ul><ul><li>Vague requirements </li></ul><ul><li>Poor cost and schedule estimations </li></ul><ul><li>Hidden costs of going “lean and mean” </li></ul><ul><li>Failure to plan </li></ul><ul><li>Poor architecture </li></ul><ul><li>Late failure warning signals </li></ul><ul><li>Skills that do not match the job </li></ul><ul><li>[] </li></ul>Why Projects Fail
  15. 15. Outsourcing <ul><li>How does Outsourcing – performing work in distributed locations, and often with people from different cultures, who speak different languages effect these challenges? </li></ul><ul><li>These challenges become even more acute! </li></ul>
  16. 16. <ul><li>How do we address these challenges? </li></ul><ul><li>Agile! </li></ul>
  17. 17. Agile Manifesto
  18. 18. <ul><li>Scrum </li></ul><ul><li>eXtreme Programming (XP) </li></ul><ul><li>FDD </li></ul><ul><li>DSDM </li></ul><ul><li>Crystal </li></ul><ul><li>Perficient’s Enable-M </li></ul><ul><li>… </li></ul><ul><li>But they share the same objectives -- those described in the Agile Manifesto </li></ul>No “one” Agile
  19. 19. <ul><li>Modularity - Modularity allows a process to be broken into activities. </li></ul><ul><li>Iterative - Things change. Short iterations allow us to adapt and respond to change. </li></ul><ul><li>Time-bound - Iterations are a perfect unit for planning the software development project. </li></ul><ul><li>Parsimony - Agile process focus on parsimony: they require the minimum number of activities necessary to mitigate risks and achieve their goals. </li></ul><ul><li>Adaptive - The agile process adapts to attack new risks. </li></ul><ul><li>Incremental - We don’t try to build the entire system at once. Instead we partition it into increments which can be developed in parallel. </li></ul><ul><li>Convergent - We actively attack all risks worth attacking. </li></ul><ul><li>People Oriented - Agile processes favor people over process and technology. People are empowered. </li></ul><ul><li>Collaborative - Agile processes foster communication among team members. </li></ul><ul><li>Frequent, Tangible, Working Results - Peter Coad </li></ul>Characteristics of Agile Miller, Granville G, “The Characteristics of Agile Software Processes”,
  20. 20. <ul><li>A brief introduction to Scrum </li></ul>
  21. 21. Scrum – A well known Agile framework <ul><li>3 Roles </li></ul><ul><ul><li>Product Owner </li></ul></ul><ul><ul><li>ScrumMaster </li></ul></ul><ul><ul><li>Team </li></ul></ul><ul><li>3 Ceremonies </li></ul><ul><ul><li>Sprint Planning </li></ul></ul><ul><ul><li>Daily Stand-up </li></ul></ul><ul><ul><li>Sprint Demo </li></ul></ul><ul><li>3 Artifacts </li></ul><ul><ul><li>Product Backlog </li></ul></ul><ul><ul><li>Sprint Backlog </li></ul></ul><ul><ul><li>Burn-down Charts </li></ul></ul><ul><li>Simple, but not easy  </li></ul>
  22. 22. <ul><li>Define the features of the product </li></ul><ul><li>Decide on release date and content </li></ul><ul><li>Be responsible for the profitability of the product (ROI) </li></ul><ul><li>Prioritize features according to market value </li></ul><ul><li>Adjust features and priority every iteration, as needed  </li></ul><ul><li>Accept or reject work results </li></ul>Product Owner Thanks to Mountain Goat Software, LLC
  23. 23. <ul><li>Represents management to the project </li></ul><ul><li>Responsible for enacting Scrum values and practices </li></ul><ul><li>Removes impediments </li></ul><ul><li>Ensure that the team is fully functional and productive </li></ul><ul><li>Enable close cooperation across all roles and functions </li></ul><ul><li>Shield the team from external interferences </li></ul>ScrumMaster Thanks to Mountain Goat Software, LLC
  24. 24. <ul><li>Typically 5-9 people </li></ul><ul><li>Cross-functional: </li></ul><ul><ul><li>Programmers, testers, user experience designers, etc. </li></ul></ul><ul><li>Members should be full-time </li></ul><ul><ul><li>May be exceptions (e.g., database administrator) </li></ul></ul><ul><li>Teams are self-organizing </li></ul><ul><ul><li>Ideally, no titles but rarely a possibility </li></ul></ul><ul><li>Membership should change only between sprints </li></ul>The Team Thanks to Mountain Goat Software, LLC
  25. 25. <ul><li>Scrum projects make progress in a series of “sprints” </li></ul><ul><li>Typical duration is 2–4 weeks or a calendar month at most </li></ul><ul><li>A constant duration leads to a better rhythm </li></ul><ul><li>Product is designed, coded, and tested during the sprint </li></ul>Sprints Thanks to Mountain Goat Software, LLC
  26. 26. <ul><li>Team selects items from the product backlog they can commit to completing </li></ul><ul><li>Sprint backlog is created </li></ul><ul><ul><li>Tasks are identified and each is estimated (1-16 hours) </li></ul></ul><ul><ul><li>Collaboratively, not done alone by the ScrumMaster </li></ul></ul><ul><li>High-level design is considered </li></ul>Sprint Planning As a vacation planner, I want to see photos of the hotels. Code the middle tier (8 hours) Code the user interface (4) Write test fixtures (4) Code the foo class (6) Update performance tests (4) Thanks to Mountain Goat Software, LLC
  27. 27. <ul><li>These are not status for the ScrumMaster </li></ul><ul><ul><li>They are commitments in front of peers </li></ul></ul>Daily Scrum What did you do yesterday? 1 What will you do today? 2 Is anything in your way? 3 Thanks to Mountain Goat Software, LLC
  28. 28. <ul><li>Team presents what it accomplished during the sprint </li></ul><ul><li>Typically takes the form of a demo of new features or underlying architecture </li></ul><ul><li>Informal </li></ul><ul><ul><li>2-hour prep time rule </li></ul></ul><ul><ul><li>No slides </li></ul></ul><ul><li>Whole team participates </li></ul><ul><li>Invite the world </li></ul>Sprint Demo Thanks to Mountain Goat Software, LLC
  29. 29. <ul><li>The requirements </li></ul><ul><li>A list of all desired work on the project </li></ul><ul><li>Ideally expressed such that each item has value to the users or customers of the product </li></ul><ul><li>Prioritized by the product owner </li></ul><ul><li>Reprioritized at the start of each sprint </li></ul>Product backlog Thanks to Mountain Goat Software, LLC
  30. 30. <ul><li>Individuals pull work of their own choosing </li></ul><ul><ul><li>Work isn’t assigned </li></ul></ul><ul><li>Any team member can add, delete or change tasks in the sprint backlog </li></ul><ul><li>Work for the sprint emerges </li></ul><ul><li>If work is unclear, define a task with a larger amount of time and break it down later </li></ul><ul><li>Update work remaining as more becomes known </li></ul>Sprint backlog Thanks to Mountain Goat Software, LLC
  31. 31. Burndown chart Hours Thanks to Mountain Goat Software, LLC
  32. 32. Perficient’s Enable-M Methodology
  33. 33. <ul><li>Based on XP </li></ul><ul><li>Kent Beck was a consultant on initial implementation </li></ul><ul><li>Considers Scrum and other Agile frameworks, methodologies, and practices </li></ul><ul><li>Enhanced to support multi-sourcing projects </li></ul><ul><li>Additional rigor as required </li></ul><ul><ul><li>by clients </li></ul></ul><ul><ul><li>to satisfy CMMI Level 5 practices </li></ul></ul>Enable-M
  34. 34. <ul><li>Communication breakdowns </li></ul><ul><li>Poor user input </li></ul><ul><li>Stakeholder conflicts </li></ul><ul><li>Vague requirements </li></ul><ul><li>Poor cost and schedule estimations </li></ul><ul><li>Hidden costs of going “lean and mean” </li></ul><ul><li>Failure to plan </li></ul><ul><li>Poor architecture </li></ul><ul><li>Late failure warning signals </li></ul><ul><li>Skills that do not match the job </li></ul><ul><li>[] </li></ul>Remember: why projects fail
  35. 35. How are the challenges addressed through Agile?
  36. 36. <ul><li>Co-location </li></ul><ul><li>Daily stand up </li></ul><ul><li>Transparency </li></ul><ul><li>“ Team” </li></ul><ul><li>Test-driven Requirements </li></ul><ul><li>Defining “done” </li></ul>Communication Break-downs
  37. 37. <ul><li>Demos </li></ul><ul><li>Retrospectives </li></ul><ul><li>Agile state of mind - embrace change </li></ul><ul><li>Iterative development </li></ul>Poor user input
  38. 38. <ul><li>“ Team” </li></ul><ul><ul><li>Chickens and Pigs </li></ul></ul><ul><li>Product Owner </li></ul><ul><li>Backlog management </li></ul><ul><li>Iterative development </li></ul>Stakeholder Conflicts
  39. 39. <ul><li>Iterative development </li></ul><ul><li>Demos of potentially shippable products </li></ul><ul><li>Embracing change </li></ul>Vague Requirements
  40. 40. <ul><li>Backlog estimates </li></ul><ul><li>Sprint planning </li></ul><ul><li>Velocity </li></ul><ul><li>Sprints </li></ul><ul><li>Inspect/adapt </li></ul>Poor Cost and Schedule Estimates
  41. 41. <ul><li>Transparency </li></ul><ul><li>Burn-down charts </li></ul><ul><li>Demos of potentially shippable products at the end of each iteration </li></ul>Hidden costs of going ‘lean and mean’
  42. 42. <ul><li>Backlog management </li></ul><ul><li>Sprint planning </li></ul><ul><li>Burn-down charts </li></ul>Failure to plan
  43. 43. <ul><li>Agile Modeling </li></ul><ul><li>Simple/Iterative design (borrowed from XP) </li></ul><ul><ul><li>YAGNI (you ain’t gonna need it) </li></ul></ul>Poor architecture
  44. 44. <ul><li>Sprints </li></ul><ul><li>Burn-down charts </li></ul><ul><li>Potentially shippable product </li></ul><ul><li>Commitment and “done” </li></ul><ul><li>Transparency </li></ul>Late failure warning signals
  45. 45. <ul><li>Pull-based task management </li></ul><ul><li>Cross-functional teams </li></ul>Skills that do not match the job
  46. 46. <ul><li>This works great in a single environment, with small and capable teams, but can it work in geographically distributed teams? </li></ul>
  47. 47. <ul><li>Some answers can be found in a report delivered at the Agile 2006 International Conference </li></ul><ul><ul><li>Distributed Scrum: Agile Project Management with Outsourced Development Teams </li></ul></ul><ul><ul><li>Agile 2006 International Conference </li></ul></ul><ul><ul><li>Jeff Sutherland, Anton Viktorov, Jack Blount </li></ul></ul><ul><li>They advocate: </li></ul><ul><ul><li>Cross functional teams that are relatively autonomous </li></ul></ul><ul><ul><li>Daily Scrum meetings help break down cultural barriers and disparities in work styles </li></ul></ul><ul><ul><li>Scrum-of-Scrums where ScrumMasters meet regularly (from all locations) </li></ul></ul>Distributed teams best practices
  48. 48. <ul><li>Daily Scrum meetings of all developers from multiple sites </li></ul><ul><li>Daily meeting of Product Owner Team </li></ul><ul><li>Frequent, automated builds from a single repository </li></ul><ul><li>No distinction between developers at different sites on the same team </li></ul><ul><li>Seamless integration of XP practices </li></ul>Distributed teams best practices (continued)
  49. 49. <ul><li>Again, some best practices many not be available in all environments </li></ul><ul><ul><li>No common, overlapping time zone to conduct daily Scrum meetings </li></ul></ul><ul><ul><li>Different geographic locations represent specializations (such as testing as an independent function) </li></ul></ul>But…
  50. 50. <ul><li>Try to retain as many of the ‘out of the box’ Agile practices as possible without change </li></ul><ul><ul><li>Conduct daily Scrums with all members if there is time zone overlap (compromise if no overlap but some groups are willing to come early or stay late) </li></ul></ul><ul><ul><li>Look at alternatives if no overlap can be found </li></ul></ul><ul><ul><ul><li>Record and share daily Scrum meetings </li></ul></ul></ul><ul><ul><ul><li>Use project Wiki for to provide public daily updates </li></ul></ul></ul><ul><ul><ul><li>Use Issue tracking systems to enter and track issues </li></ul></ul></ul>Inspect and adapt
  51. 51. <ul><li>Some activities must be performed as a group </li></ul><ul><ul><li>Backlog review </li></ul></ul><ul><ul><li>Sprint planning </li></ul></ul><ul><li>Scrum-of-Scrums (ScrumMaster meeting) must take place every day </li></ul><ul><li>Continuous Integration </li></ul><ul><ul><li>Daily build should be shared </li></ul></ul><ul><ul><li>Common repository is essential </li></ul></ul>Inspect and adapt (continued)
  52. 52. <ul><li>Scrum requires cross-functional teams </li></ul><ul><ul><li>Cross-functional is </li></ul></ul><ul><ul><ul><li>The team has all capabilities required to complete work </li></ul></ul></ul><ul><ul><ul><li>The team will have different levels of skill and different strengths </li></ul></ul></ul><ul><li>Scrum encourages that all team members be willing to take on any task; the objective is to move the ball down the field and score </li></ul>Distributed team composition
  53. 53. <ul><li>What are the most important Agile characteristics required for a successful project? </li></ul>
  54. 54. <ul><li>Great people! </li></ul>
  55. 55. <ul><li>Delivery! </li></ul><ul><li>Delivering a “potentially shippable product” every Sprint! </li></ul>
  56. 56. <ul><li>Quality </li></ul><ul><li>TDD – Test Driven Development </li></ul>
  57. 57. Does it work? <ul><li>Yes! </li></ul><ul><li>20+ satisfied clients, many with repeat business can’t be wrong. </li></ul>
  58. 58. <ul><li>Q&A </li></ul>
  59. 59. Agile Manifesto Principles <ul><li>Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. </li></ul><ul><li>Welcome changing requirements , even late in development. Agile processes harness change for the customer's competitive advantage . </li></ul><ul><li>Deliver working software frequently , from a couple of weeks to a couple of months, with a preference to the shorter timescale. </li></ul><ul><li>Business people and developers must work together daily throughout the project. </li></ul><ul><li>Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. </li></ul><ul><li>The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. </li></ul><ul><li>Working software is the primary measure of progress. </li></ul><ul><li>Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. </li></ul><ul><li>Continuous attention to technical excellence and good design enhances agility. </li></ul><ul><li>Simplicity -- the art of maximizing the amount of work not done -- is essential. </li></ul><ul><li>The best architectures, requirements, and designs emerge from self-organizing teams. </li></ul><ul><li>At regular intervals, the team reflects on how to become more effective , then tunes and adjusts its behavior accordingly. </li></ul>