The Promise of Agile Development Sanjiv Augustine Sanjiv.Augustine@LitheSpeed.com Twitter: @saugustine, @lithespeed September 15, 16, 2011 Agenda 1. Why Agile? 2. What is Agile? 3. The Promise of Agile 1. Personal Mastery 2. Team Improvement 3. Organizational Maturity 4. Q&A 2 1 What was the MOST IMPORTANT reason for adopting Agile within your team or organization? Why Agile? Accelerate Time-to-Market Enhance Ability to Manage ChangingPriorities Increase Productivity Enhance Software Quality Improve Alignment Between IT and Business Improve Project Visibility Reduce Risk Simplify Development Process Other Improved/Increased EngineeringDiscipline Reduce Cost Enhance Software Maintainability/Extensibility Improved Team Morale 22% 21% 12% 10% 9% 6% 6% 4% 3% 2% 2% 2% 1% 2008 The State of Agile Development Survey, VersionOne Agile methods maximize ROI by accelerating value realization and providing flexibility to change. 3 Patterns of Success Results from a 40,000 project survey (The Standish Group’s CHAOS report): 1994 15% project success rate ≈170% average cost & time overrun 2009 32% project success rate ≈70% average cost & time overrun Top 5 reasons for success 1. User involvement 2. Executive management support 3. Clear business objectives 4. Optimizing scope 5. Agile process “Doing projects with iterative processes as opposed to the waterfall method, which called for all project requirements to be defined up front, is a major step forward.” Jim Johnson, Chairman of Standish Group Source: http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS 4 2 Are We Really Building Value? Rates of Feature Usage in Software Projects: Sometimes 16% Rarely 19% Often 13% Never 45% Always 7% Always or often used: Never or rarely used: 20% 64% Standish Group Study Reported at XP2002 by Jim Johnson, Chairman 5 Agile by the Numbers State of Agile Development Survey October 2010 4770 respondents in 91 countries Agile Adoption Rate Survey Feb 2008 642 respondents Speed to market: 83% indicate agile is faster or same Team location Success percentage Co-located Team 83% Distributed teams but physically reachable 72% Distributed across geographies 60% Comparison Average project: Agile project: 6 30% success rate 60-80% success rate Sources: http://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standish http://www.versionone.com/pdf/5thAnnualStateOfAgile_FullDataReport.pdf http://www.ambysoft.com/surveys/agileFebruary2008.html 3 Agile – The Mainstream Method? Who’s Adopted Agile? Agile has now been tried: • • • • • • • In large and small companies Across virtually every industry In public and private sectors On life-critical and mission-critical projects With collocated and distributed teams In internal IT departments, commercial product companies and consultancies On software and non-software projects Federal Government Drivers FCIOs 25 point program DoD CIO’s Agile Acquisition program • • Companies large & small, across industries. • Accenture • AFBA • Key Bank • BLS • Kronos • BMC Software • Lockheed Martin • Boeing • Macquarie Bank • British Telecom • Microsoft • Business Week • National Archives • Capital One • Nationwide • CDC • Primavera • Cognizant • ProRail • CSC • Sapient • DoD • Siemens • DTE Energy • Shopzilla • EMC • ThoughtWorks • EPA • USAA • General Dynamics • US Intelligence Agencies • Google • US PTO • JP Morgan Chase • VA • Yahoo! 7 What is Agile? Scrum 49.1% Scrum/XP Hybrid 22.3% Extreme Programming (XP) 8.0% Custom/Hybrid 5.3% Don’t Know 3.7% Agile Unified Process (AgileUP) 2.2% Other 2.2% Feature-Driven Development (FDD) 2.1% Lean Development 1.9% Dynamic Systems Development Method (DSDM) 1.4% OpenUP Agile Modeling Crystal 0.6% 0.6% 0.5% 2008 The State of Agile Development Survey, VersionOne Agile is an umbrella term for a group of software development methods. 8 4 The Agile Landscape “Agile” describes a series of related methodologies. Agile Methodologies • Scrum Ken Schwaber and Jeff Sutherland • eXtreme Programming Kent Beck, Ward Cunningham, Ron Jeffries • Crystal Methods Alistair Cockburn • Feature Driven Development Jeff DeLuca • Dynamic Systems Development Method DSDM Consortium • Kanban Lean Systems and Software Consortium Agile Management Frameworks • Agile Project Management Jim Highsmith, Sanjiv Augustine • Agile Management David Anderson • eXtreme Project Management Rob Thomsett, Doug DeCarlo Source: 2009 State of Agile Development Survey, VersionOne 9 Key Principles of Agility Key Agile principles are: • Focus on Customer Value – Align project, product and team visions to deliver better product quality – faster and cheaper. • Small Batches - Create a flow of value to customers by “chunking” feature delivery into small increments. • Small, Integrated Teams - Intense collaboration via face-to-face communication, collocation, etc; diversified roles on integrated, selforganizing, self-disciplined teams. • Small, Continuous Improvements – Teams reflect, learn and adapt to change; work informs the plan. Delivering Customer Value with Agile Project Management The right product, at the right time, for the right price. • Higher Quality: “Designed-tofit” product with flexibility to change. • Increased Throughput: Iterative and incremental project and product “chunks” with earlier value delivery. • Reduced Waste: Lean, efficient processes with lower costs and higher productivity. 10 5 An Agile Process: The Scrum Cycle Initial Planning The Sprint Cycle Discovery Session Sprint Release Planning Daily Scrum Sprint Planning Sprint Review Retrospective Product Backlog Sprint Backlog Production-Ready Features 11 Scrum Milestones Product Backlog Sprint Backlog Sprint Backlog Sprint Backlog Sprint Backlog Sprint Backlog Sprint Backlog • ______ • ______ • ______ • ______ • ______ • ______ • ______ • ______ • ______ • ______ • ______ • ______ F1 Sprint Planning F2 F3 U S 6 U S 3 Release 1 F1, F2, F3 U S 8 F1 F4 F2 F5 F3 F6 Release Planning U S 8 U S 3 U S 5 U S 2 Sprint Planning U S 7 U S 7 Sprint Planning U S 5 U S 4 U S 1 Release Planning U S 2 U S 6 Sprint Planning Release Planning Discovery Session U S 4 Sprint Planning U S 1 Initial Planning Sprint Planning • ____________ • ____________ • ____________ • ____________ • ____________ Release 2 F1, F2, F3 F4, F5, F6 12 6 Small, Integrated Teams Traditional Silos The Core Project Team ideally consists of 5-9 dedicated members (7 +/2). PM Customer Designer Designers BA BA Analysts Developer Developer Developer Developer Devs Release Manager Architect BA Designer Risk Assessor Capacity Planner BA / Tester Developer / BA Core Team Prod. SM (EXAMPLE) Tester Developer Tech Ops Product Owner Tester Tester Testers The Extended Team can contain many additional members, each playing an important role, but they are typically not dedicated to the effort. Security Business Sponsor 13 Before – Cubicle “Walls of Separation” 14 7 After – Collaborative Common Space 15 The Promise of Agile Agile adoption can drive significant improvement at multiple levels: individual, team and organization. 16 8 Personal Mastery through Flow People are in the most happy when they’re in a state of flow. - Mihaly Csikszentmihalyi Happiness in Action - the eight elements of Flow: 1. Clear goals 2. Direct, immediate feedback 3. Balance between skills and challenges 4. Deep concentration on the task at hand 5. Complete involvement in the present 6. A strong sense of control 7. An altered sense of time 8. A loss of self/ego 17 During Flow, focus maximizes performance and pleasure. Image Source: http://www.pbs.org/thisemotionallife/blogs/flow Team Improvement with Agile Development Agile Engineering Practices allow teams to move fast, be flexible and deliver high quality software: • Automated Builds & Continuous Integration reduce time and effort associated with manual builds, and risk from big-bang integrations • Simple Design & Refactoring keep incremental development from leading to poor architectures • Multi-Level/Automated Testing & Test-Driven Development reduce testing time and effort and allow developers to make changes with confidence • Pair Programming increases software quality without impacting time to deliver. 18 Bill Wake, http://www.xp123.com Agile Engineering, Pg. 124 9 Team Evolution with Agile Management From Agile Development to Agile Management • • • Cross-functional, integrated teams improve collaboration, reduce handoffs and associated waste Customer development a la Lean Startup reduces risk and enables experimentation Working across Business-IT silos drives greater product and process innovation 19 Incorporating Ideation into Agile Outside the Room In the Room Customer Development PreDiscovery Participants: • Product Team • IT Architecture • UE Team • Key Business Stakeholders Release Planning Discovery Participants: • Whole Team • Key Business Stakeholders Sprint Planning Sprint Review Sprint Process Execution 20 10 Driving Organizational Maturity From Agile Management to Enterprise Agile • • • • Agile PMOs to facilitate agile program management Lean portfolio management for faster speed-to-value, lower waster and better flexibility Agile performance management for empowered workers and bottom-up organizational improvement Lean process improvement to optimize the whole and create and agile enterprise. 21 Contact Us for Further Information Sanjiv Augustine President Sanjiv.Augustine@lithespeed.com Arlen Bankston Executive Vice President Arlen.Bankston@lithespeed.com David Bulkin Vice President David.Bulkin@lithespeed.com Bob Payne Vice President Bob.Payne@lithespeed.com On the Web: http://www.lithespeed.com "I only wish I had read this book when I started my career in software product management, or even better yet, when I was given my first project to manage. In addition to providing an excellent handbook for managing with agile software development methodologies, Managing Agile Projects offers a guide to more effective project management in many business settings." John P. Barnes, former Vice President of Product Management at Emergis, Inc. 22 11 Misconceptions: What Agile is Not Agile is not: • New • A silver bullet • A solution to resource issues • Without planning, documentation, architecture… • A license to hack • An excuse for poor quality • Undisciplined • About throwing away areas of expertise • Unproven • Used only on the lunatic fringe 23 Why Agile Works - Control Systems • Hitting moving targets • Convergence towards a goal • Balance oscillation and drift 24 12