CAI - Agile Scrum Development Presentation


Published on

1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • “ building quality in” rather than “testing defects out” - whole team ownership of quality, no longer a Quality Police mentality mind shift from testers owning quality to having a participatory role in defining and maintaining quality QA analysts become an integral part of the team, not a separate group in an adversarial relationship with the development team
  • 03 - SAS & Vericenter: Handout Page Green Team Session #4: SAS, Offshoring, and Team Building
  • Customers are first asked to provide a prioritized list of features, but not to detail them in a full-blown requirements specification. Next, working closely with the customer to draw out the details of the features, the team delivers small increments of well-engineered functionality every 30 days. Te customer and the team agree to each iteration’s features according to the customers prioritization and the team’s risk analysis. At any stage, the customer may ask the team to release the working software product so that they can start using it. The customer may change their prioritized requirements list while the team continues to deliver increments of working software from the top of the list.
  • “ building quality in” rather than “testing defects out” - whole team ownership of quality, no longer a Quality Police mentality mind shift from testers owning quality to having a participatory role in defining and maintaining quality QA analysts become an integral part of the team, not a separate group in an adversarial relationship with the development team
  • CAI - Agile Scrum Development Presentation

    1. 1. An Agile Approach to Application Development using Scrum
    2. 2. Agenda <ul><li>Introductions </li></ul><ul><li>Problems With Traditional Development Approaches </li></ul><ul><li>Agile Development Overview </li></ul><ul><li>Scrum </li></ul>
    3. 3. Software Projects Continue To Struggle <ul><li>Project Success Rates as Reported in the 2009 </li></ul><ul><li>Standish Chaos Study: </li></ul><ul><ul><li>32%   Successful  (On Time, On Budget, Fully Functional) </li></ul></ul><ul><ul><li>44%   Challenged  (Late, Over Budget, And/Or Less than Promised Functionality) </li></ul></ul><ul><ul><li>24%   Failed  (Canceled or never used) </li></ul></ul><ul><li>These numbers indicate a downward trend in the success rates from the previous five studies. </li></ul>
    4. 4. Traditional Development Methods <ul><li>Based on a manufacturing model </li></ul><ul><li>Result in customer frustration and lack of trust </li></ul><ul><li>Often deliver bloated products </li></ul>
    5. 5. Manufacturing-Based Methodologies <ul><li>Early development methodologies borrowed heavily from manufacturing, which is repetitive with clearly defined outputs. </li></ul><ul><li>The Waterfall methodology is based on: </li></ul><ul><ul><li>Starting with a clear and accurate specification (prevents rework by getting things right upfront) </li></ul></ul><ul><ul><li>Perfecting a design specification before building (no changes to requirements at this point) </li></ul></ul><ul><ul><li>Quick testing cycle with little rework needed </li></ul></ul><ul><li>Between 25% and 35% of requirements change on large projects (reported by Capers Jones) </li></ul><ul><li>Valid change requests are often rejected in order to manage costs and protect delivery dates. </li></ul>Get it right!
    6. 6. Customer Frustration and Lack of Trust <ul><li>Delivering software late, without all required features, and with low quality, leads to a lack of trust from our customers </li></ul><ul><li>Forces us to work in a contractual manner, rather than a more productive collaborative manner </li></ul><ul><li>Sign-offs on all requirements needed before design work can start </li></ul><ul><ul><li>Fosters a spirit of blame avoidance </li></ul></ul><ul><ul><li>Delay in sign-offs can significantly add to the project schedule </li></ul></ul>
    7. 7. Software Bloat <ul><li>In many projects, the software eventually delivered ends up bloated with unused features </li></ul><ul><li>2009 Standish Chaos Study of software projects shows: </li></ul><ul><ul><li>45% of features were never used </li></ul></ul><ul><ul><li>19% of features were rarely used </li></ul></ul>
    8. 8. In Summary… <ul><li>Traditional approaches have been shown to be ineffective for many software development efforts, evidenced by: </li></ul><ul><ul><li>Resistance to changing requirements and priorities </li></ul></ul><ul><ul><li>Unreliability (late delivery, low quality, high cost) </li></ul></ul><ul><ul><li>Customer frustration and lack of trust </li></ul></ul><ul><ul><li>Bloated products </li></ul></ul><ul><li>SO WHAT CAN WE DO ??? </li></ul>
    9. 9. An Agile Approach to Projects <ul><li>Work as one team </li></ul><ul><li>Work in short iterations </li></ul><ul><li>Deliver working software each iteration </li></ul><ul><li>Focus on business priorities </li></ul><ul><li>Inspect and adapt </li></ul>
    10. 10. Popular Agile Methods <ul><ul><li>Scrum </li></ul></ul><ul><ul><ul><li>Software developed in time-boxed iterations called Sprints (e.g., 30 days) </li></ul></ul></ul><ul><ul><ul><li>Daily 15 minute Scrum meetings – daily team measurement </li></ul></ul></ul><ul><ul><ul><li>Working software developed in each Sprint </li></ul></ul></ul><ul><ul><ul><li>Prioritized product backlog drives Sprints </li></ul></ul></ul><ul><ul><ul><li>Customizable/adaptable based on project characteristics </li></ul></ul></ul><ul><ul><li>Rational Unified Process (RUP) </li></ul></ul><ul><ul><ul><li>Process developed to complement Unified Modeling Language (UML), an industry-standard software modeling method. </li></ul></ul></ul><ul><ul><ul><li>Iterative approach for object-oriented software development </li></ul></ul></ul><ul><ul><ul><li>Multiple successive phases, consisting of iterations in duration from 2 weeks to several months </li></ul></ul></ul><ul><ul><li>Extreme Programming (XP) </li></ul></ul><ul><ul><ul><li>Test driven development </li></ul></ul></ul><ul><ul><ul><li>Pair programming </li></ul></ul></ul><ul><ul><ul><li>Continuous integration of code </li></ul></ul></ul><ul><ul><ul><li>Lightweight documentation </li></ul></ul></ul><ul><ul><ul><li>1-2 week iterations </li></ul></ul></ul>
    11. 11. Rational Unified Process An Iterative Incremental Methodology <ul><li>Characteristics: </li></ul><ul><ul><li>Software is built in iterative and incremental phases. </li></ul></ul><ul><ul><li>Use case centric, architecture driven. </li></ul></ul><ul><li>Cons: </li></ul><ul><ul><li>The time to delivery of a working, production ready system can be long. </li></ul></ul><ul><ul><li>Iterations not time-boxed </li></ul></ul><ul><ul><li>Customer is not an integral part of the development team. </li></ul></ul><ul><li>Pros: </li></ul><ul><ul><li>Some flexibility to accommodate change </li></ul></ul><ul><ul><li>Delivery of software more frequent and visible to the business </li></ul></ul><ul><ul><li>Early focus on architecture </li></ul></ul>
    12. 12. Scrum
    13. 13. Scrum
    14. 14. Scrum Overview <ul><li>A lightweight approach for planning and executing iterative development projects </li></ul><ul><li>Used at product companies and IT organizations since 1990 including Microsoft, Google, Honda, and Xerox </li></ul><ul><li>Wraps existing engineering practices </li></ul><ul><li>Delivers working business functionality every 30 days </li></ul><ul><li>Encourages “building quality in” rather than “testing defects out” </li></ul><ul><li>Extremely simple but very hard </li></ul><ul><li>Scalable </li></ul><ul><li>Scrum feels completely different! </li></ul>
    15. 15. Scrum Terminology <ul><li>Product Backlog – prioritized list of desired customer features </li></ul><ul><li>Sprint – iterative development cycle with a duration of 2-4 weeks </li></ul><ul><li>Sprint Backlog – the list of tasks that the Scrum team commits to complete in the current Sprint. Items on the Sprint Backlog are drawn from the Product Backlog </li></ul>
    16. 16. The Scrum Process
    17. 17. Scrum Principles <ul><li>Customer lists known requirements (to a high level), then prioritizes them. </li></ul><ul><li>Frequently deliver time-boxed increments of high-value Working software . </li></ul><ul><li>The Customer can release the software any time they want. </li></ul><ul><li>The Customer can add, delete or reprioritize features at any time (“embrace change”) </li></ul><ul><li>We protect schedule commitments, despite change. </li></ul><ul><li>Stop at any time, and still use what has been built. </li></ul>time All features prioritized Product Backlog Working software each iteration Release Learn from the market Source: Vision Consulting, 2006 Promised Release Date
    18. 18. Scrum Roles <ul><li>Product Owner </li></ul><ul><li>Scrum Team </li></ul><ul><li>ScrumMaster </li></ul>
    19. 19. Role – Product Owner <ul><li>Critically important, must be trained in Scrum </li></ul><ul><li>Should be a Business representative </li></ul><ul><li>Develops and maintains the Product Backlog </li></ul><ul><li>Prioritizes the Product Backlog </li></ul><ul><li>Presents and explains Product Backlog to the team </li></ul><ul><li>Empowered to make decisions for all customers and users </li></ul><ul><li>Attends Sprint planning meeting and Sprint review meeting </li></ul>
    20. 20. Product Backlog <ul><li>List of functionality, technology, issues </li></ul><ul><li>Emergent, prioritized, estimated </li></ul><ul><li>Product Owner responsible for priority </li></ul><ul><li>More detail on higher priority backlog </li></ul><ul><li>Derived from Business Plan or Vision Statement, which sometimes have to be created with customer </li></ul><ul><li>Each Product Backlog Item must include a definition of “Done” </li></ul><ul><ul><li>Test conditions identified </li></ul></ul><ul><ul><li>Code complete </li></ul></ul><ul><ul><li>Unit and Integration Tested </li></ul></ul><ul><ul><li>Accepted by Product Owner </li></ul></ul>
    21. 21. Example Product Backlog
    22. 22. Role – Scrum Team <ul><li>Self-organizing, highly collaborative </li></ul><ul><li>Cross-functional </li></ul><ul><li>Ideal Team Size = Seven plus or minus two </li></ul><ul><li>Converts selected Product Backlog items into tasks on the Sprint Backlog </li></ul><ul><li>Responsible for committing to work defined on Sprint Backlog </li></ul><ul><li>Authorized to do whatever is needed to meet commitment </li></ul><ul><li>Synchronizes at the Daily Scrum Meeting </li></ul>
    23. 23. Sprint Backlog <ul><li>Tasks to turn product backlog into working product functionality </li></ul><ul><li>Tasks are estimated in hours, usually 1-16 </li></ul><ul><li>Tasks with more than 16 hours are broken down later </li></ul><ul><li>Team members sign up for tasks, they aren’t assigned </li></ul><ul><li>Estimated work remaining is updated daily </li></ul><ul><li>Any team member can add, delete, or change the Sprint Backlog </li></ul><ul><li>Work for the Sprint emerges </li></ul><ul><li>Update work remaining as more is known, as items are worked </li></ul>
    24. 24. Example Sprint Backlog
    25. 25. Role – Scrum Master <ul><li>Coach and Advocate </li></ul><ul><li>Responsible for managing the process </li></ul><ul><li>Sets up and conducts meetings </li></ul><ul><li>Representative to management </li></ul><ul><li>Representative to team </li></ul>
    26. 26. Scrum Meetings <ul><li>Sprint Planning </li></ul><ul><li>Daily Scrum </li></ul><ul><li>Sprint Review </li></ul>
    27. 27. Sprint Planning Meeting <ul><li>A full-day meeting that precedes each Sprint </li></ul><ul><li>1 st 4 hours - team selects Product Backlog Items and sets goal with Product Owner </li></ul><ul><li>2 nd 4 hours - team defines Sprint Backlog to build functionality </li></ul><ul><li>Anyone can attend, but primary conversation and work is between team and Product Owner </li></ul>
    28. 28. Daily Scrum <ul><li>Daily 15 minute status meeting </li></ul><ul><li>Same place and time every day </li></ul><ul><li>Three questions </li></ul><ul><ul><li>What have you done since last meeting? </li></ul></ul><ul><ul><li>What will you do before next meeting? </li></ul></ul><ul><ul><li>What is in your way? </li></ul></ul><ul><li>Impediments discussed </li></ul><ul><li>Decisions made </li></ul>
    29. 29. Sprint Review Meeting <ul><li>Duration = 4 hours </li></ul><ul><li>Maximum 1 hour preparation </li></ul><ul><li>Demo conducted on equipment where software was developed and tested </li></ul><ul><li>Presented by team to Product Owner and customers/users </li></ul><ul><li>Basis for planning next Sprint </li></ul><ul><li>Must represent potentially shippable increment of product functionality (features are “done”) </li></ul>
    30. 30. Scrum Metrics <ul><li>Sprint Burndown Chart </li></ul><ul><li>Product Burndown Chart </li></ul><ul><li>Velocity Measure </li></ul><ul><li>Sprint Results </li></ul>
    31. 31. The Burndown Chart <ul><li>Displays number of task units (typically hours) remaining </li></ul><ul><li>Overall trend is important to monitor </li></ul><ul><li>Daily fluctuations are acceptable and expected </li></ul><ul><li>Actual Line should eventually reach 0 hours and should roughly follow Expected Line </li></ul><ul><li>Across Iterations, a less granular measure is used that is tied to the deliverables, e.g., Story Points </li></ul>
    32. 32. Progress During An Iteration Sprint Burndown Chart
    33. 33. Progress Across Iterations Product Burndown Chart
    34. 34. Velocity Measure Velocity (last 3 iterations) Velocity (last 8 iterations)
    35. 35. Sprint Results
    36. 36. Scrum Is No Silver Bullet <ul><li>Extremely simple but very hard </li></ul><ul><li>Many organizations are not used to releasing software so frequently </li></ul><ul><li>Each iteration involves planning, requirements analysis, design, coding, and testing </li></ul><ul><li>Highlights existing disfunctionality and bottlenecks within the organization that were previously hidden </li></ul><ul><li>Scaling Scrum beyond an initial pilot project requires significant change management skill </li></ul>
    37. 37. Impediments To Using Agile <ul><li>Ability to change organizational thinking and culture </li></ul><ul><li>Hard to break command and control management style </li></ul><ul><ul><li>Management changes from telling people what to do to leading and helping everyone do their best to achieve goals </li></ul></ul><ul><ul><li>People aren’t resources, and managers aren’t bosses </li></ul></ul><ul><li>Requires dedicated participation from customers and end users </li></ul><ul><li>Agile puts pressure on the product development organization to improve its engineering skills </li></ul><ul><li>The phrase “That can’t be done here” really means it will be very difficult to do so </li></ul>
    38. 38. Critical Success Factors For Agile Adoption <ul><li>Complete commitment to Agile from the top-down </li></ul><ul><li>Qualifying and selecting an appropriate pilot project </li></ul><ul><ul><li>Non-disruptive </li></ul></ul><ul><ul><li>Relatively short in duration </li></ul></ul><ul><li>Staffing a team with enthusiastic, talented, self-managing people </li></ul><ul><li>Identifying and training a dedicated Product Owner from the business </li></ul><ul><li>Specifying a clear definition of “done” for Product Backlog Items </li></ul>
    39. 39. Benefits of Agile Development <ul><li>Accelerated time to market </li></ul><ul><li>Ability to accommodate changing requirements and priorities </li></ul><ul><li>Productivity is increased </li></ul><ul><li>Staff morale is improved </li></ul><ul><li>Product quality is improved </li></ul><ul><li>Product features meet customer needs </li></ul><ul><li>Value is generated early </li></ul><ul><li>High probability of meeting fixed-date commitments </li></ul>
    40. 40. [email_address] WWW.COMPAID.COM <ul><li>Contact CAI for more information </li></ul>
    41. 41. Additional Information <ul><li>Links </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li>Books </li></ul><ul><li>Agile Project Management with Scrum </li></ul><ul><li>by Ken Schwaber </li></ul><ul><li>Agile Estimating and Planning </li></ul><ul><li>by Mike Cohn </li></ul><ul><li>Agile Software Development with Scrum </li></ul><ul><li>by Ken Schwaber, Mike Beedle </li></ul>