Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

5 Whys of Scrum


Published on

We often get asked why Scrum has only 3 roles, 3 artifacts and 3 ceremonies. In fact, our customers simply want to know why Scrum works. In these slides we try to explain the principles behind the prescriptions of Scrum, in the form of 5 Whys: Why Scrum? Why 3 Roles? Why 3 Artifacts? Why 3 Ceremonies? And Why agile engineering practices support Scrum?

Published in: Technology, Business

5 Whys of Scrum

  1. 1. Why should you use Scrum? Over 32% of traditional projects fail to meet time and budget. Agile is an alternative approach to software delivery. In 2010, Forrester Research recognized that agile is now mainstream1 and Scrum is the leading universal agile framework.2 3 4 Scrum is... • Simple, a manager-friendly agile development framework • Scalable, working for small start-ups and large distributed enterprises • Widespread, used by over 50% of companies that implement agile2 • Proven to improve quality and productivity by 33% or more3 !"# $!"# %!"# &!"# '!"# (!!"# ())*# ())&# ())'# $!!!# $!!$# $!!%# $!!)# +,-./0# 12,../34/0# 5677//0/0# Traditional IT project success rates. Standish Chaos Reports, 1995-20094 1 Agile Software Development is Now Mainstream , Jan 22, 2010, CIO Magazine 2 Agile by the numbers: Survey finds more adoption, but age-old problems remain , Oct 27, 2009, SearchSoftwareQuality 3 Percentage fewer failures in agile vs. traditional projects, 2010 IT Project Success Rates Survey Results, Ambysoft 4 Success rates for IT projects taken from the Standish Chaos report (1995-2009)
  2. 2. What is Scrum? Agile Scrum teams focus on results not effort. Scrum is a principle-based framework for continuous learning that focuses on maximizing value delivery instead of effort. The Scrum framework Requirements are taken from a prioritized Product Backlog and broken down into small features that can be delivered as working software during short development iterations, called Sprints. Work is pulled from the Product Backlog into a Sprint Backlog for completion in the sprint by the Development Team. The outcome of a Sprint is a Deliverable that, ideally, can be released immediately after acceptance by the Product Owner at the Sprint Review meeting. Why Scrum works Self-organizing teams in Scrum emerge because of core values: •Full bandwidth communication •Work commitment by selection •Delivering working software •Actions guided by the big picture
  3. 3. What is Agile?1 Agile drives continuous improvement by repeatedly inspecting and adapting the working process. The Agile approach • Works Empirically: Agile is an empirical, principle-based approach for delivering software in a complex technical and business environment • Reduces Complexity: Today s business and technical environment changes rapidly; complexity is growing exponentially • Handles Change: Developers solve increasingly difficult problems in a technology environment that is undergoing rapid change Defined, process-driven systems, like waterfall, are ill-equipped to manage the dependencies and uncertainty created by complexity and change. The volume of code in everyday products is increasing exponentially1 1 Why Dinosaurs Will Keep Running the Auto Industry , Harvard Business Review, June 2010 !" #" $" %" &" '!" #!!(" #!!)" #!'!" !"#$%&'$()*+',$"-$./('0$"-$1"2'$ 3*/../"(045$6$7,"89$-",$1"*7.'8/%95$/($ :",2$;'&/1.'0$&60$1&6(<'2$ !" #" $!" $#" %!" &'()*+",-," ./(012)*(/" 34(/0+("%!$!" 5'/6"" 704)+08'*" 9:;<(1="%!!>"9? @20;;"A(/B(6(;" !"#$%&'(")*"+*,-.*/".')0* 1&.%#2').&3*%*4"&53*%)5*%*6"#$").),** "+*,-.*7.&6.5.(*89!2%((** :#'22'")*2').(*"+*6"5.;*
  4. 4. How agile are you? • Do you use business value to prioritize requirements? • Do you have cross-functional Development Teams? • Do they deliver working software regularly? • Do you review the process at the end of each iteration? • Are features small enough to be completed in a short iteration? What is Lean? Lean thinking is a principle-based approach with empirical inspect-and-adapt iterations instead of defined process steps. Since 2001 agile has been used to describe software development approaches based on the lean principles applied so effectively by Toyota.1 Agile is lean applied to software development. Lean thinking • Muda - Waste: refers to any non-value adding activity that a customer is unwilling to pay for. Lean companies passionately eliminate waste • Muri - Process Overload: refers to the tendency to overload processes in the hope of achieving more. Lean thinking maximizes value creation over process utilization • Mura - Uneven Flow: inconsistent flow can disrupt a system, creating inefficiencies and waste. Lean decreases lead time by smoothing flow through a system 1 Toyota used lean thinking in their manufacturing process to become the world s largest car manufacturer
  5. 5. Why are there just 3 roles? The Scrum framework relies on three peer-level management roles, whose mutually exclusive responsibilities lead to positively-reinforcing behaviors that stabilize the process. Combining responsibilities eventually leads to contradictory drivers or conflicts of interest. The three distinct roles allow people to focus on defined responsibilities with different objectives driving behavior. • The Product Owner (PO) maximizes the return- on-investment (ROI) of the product, measured from idea conception to delivery to the paying customer • The Scrum Master continually improves the development process, coaching the Scrum team to become more productive, improve quality and self-organize • The Development Team manage the technical quality of the product by nurturing practices that reinforce shared code ownership ROI Process Quality
  6. 6. The Business Value Game1 is used to estimate relative value of high-level requirements: • Prepare SMART2 requirements with support of stakeholders to focus discussion • Convene a Product Board with all product stakeholders • Estimate the relative value of each requirement by discussing and ranking them together • Write user stories for requirements at the top of the backlog to deliver value as early as possible The Product Owner - A value-driven role12 The PO maximizes ROI by managing value delivered with fixed iteration lengths by a stable team. Value is managed by: • Product Vision: Combining a company s strategic goals with its customers needs to create a product vision •Prioritized Value: Creating high level requirements and prioritizing business needs by value with the help of the stakeholders •Groomed Backlog: Writing user stories to manage production risk •Release Planning: Predicting value earned per sprint and managing the product backlog to maximize delivered value 1 agile42 s Business Value game for estimating relative value is described in full online 2 SMART objectives are Specific, Measurable, Achievable, Relevant and Testable
  7. 7. Facilitating ceremonies Focus on value: Timebox meetings, prioritize discussion, coach participants to communicate effectively Oversee the process • Understand Value: What is being delivered? Make both delivered value and waste visible • Understand Individuals: Expose inter-team issues and help the Team to resolve the issues? • Understand Process: Visualize the process and focus on removing single largest bottleneck The Scrum Master - Leading without authority The Scrum Master has no authority in the Scrum team. Influence is earned. He or she is a servant leader, facilitating the ceremonies and overseeing the Scrum process. It is a coaching role, analyzing progress to focus on incremental improvement over time and guiding the Teams to learn from experience through effective retrospection. Stand behind the team, not in front
  8. 8. Striving for technical excellence • Share a common Definition of Done for maintainability • Use a Definition of Ready to prepare items in the backlog • Encourage collective code ownership • Build automated tests and integrate continuously • Make quality of your code transparent to the whole Team Development Team - Writing working software Agile Development Teams measure progress through the delivery of working software.1 Effective agile Development Teams share three characteristics: • They are cross-functional - all the skills required to build a complete production-ready product area represented in one Team • They are small - from studies of team behavior, the optimum size for effective collaboration is 5-9 people; not too large so that communication becomes an issue, not so small that overhead is excessive • They use an integrated development environment to create working, production-ready software within a Sprint, allowing merging and check-ins with automated tests on a regular basis 1 Agile Manifesto, Principle #7: Working software is the primary measure of progress
  9. 9. Owner Ceremony Purpose Product Owner Sprint Planning Use value to prioritize next sprint by: • Presenting just enough user stories for the next sprint (or 2) • Guiding the Team on the purpose of the next sprints • Estimating and selecting user stories for the sprint backlog Scrum Master Daily Scrum Inspect & adapt progress towards sprint goal by: • Minimizing number of open user stories • Delivering done user stories before taking next story • Maintaining balance between quality and value delivery Development Team Sprint Review & Retrospective Inspect & adapt product and process by: • Reviewing user stories by viewing working software • Continually reviewing product against vision and sprint goals • Improving process incrementally by small prioritized steps Why are there 3 ceremonies in Scrum? To help Teams deliver working software at the end of a Sprint, there are three regular, time-boxed ceremonies, each with a single purpose and owner.
  10. 10. Sprint Planning Estimation & selection • The PO describes the sprint goal to give context surrounding the stories • Each story is discussed with the Team, who estimate relative effort • The Team select stories they will deliver within a sprint Task break down • Each story is broken down into the required technical tasks by the Team Limit risk of failure In order to effectively plan releases and meet customer needs in terms of delivery schedule and feature sets, the PO needs to be able to predict the productivity of the Team over time. These practices that help the PO to manage risk: • Sizing stories so 6-10 stories fit into a sprint • Pulling, not pushing, stories from the backlog • Keeping a steady cadence or rhythm to sprint length • Only accepting working, tested software • Working with a visible and shared Definition of Done, what it means to complete a user story • Defining non-functional requirements implicit to customer acceptance of the product
  11. 11. Daily Scrum The Team inform one another about what is working and what is not, and agree on how to address issues that threaten to slow progress against the sprint goal. A Daily Scrum uses 15 minutes in which each team member answers three simple questions: 1.What did you do yesterday? 2.What will you do today? 3.What is stopping you from delivering (more)? The Daily Scrum is not a status report for a PO or stakeholder, but is a forum for the Team to work more closely together. Active participation is limited to the Team, with the Scrum Master facilitating; others may observe and contribute only if asked to by the Team. The Daily Scrum highlights things to watch for, and keeps the Team accountable to the sprint goal. The Daily Scrum • Is short, time-boxed at 15 minutes • Is held around the task board to keep focus • Lets the Team inspect & adapt the plan for the sprint • Exposes issues that may need the Team to swarm around and solve
  12. 12. Sprint Review & Retrospective The last principle of the agile manifesto says at regular intervals, the Team reflect on how to become more effective, then tune and adjust their behavior accordingly. The Sprint Review is the inspect part of the inspect & adapt process, in which the Team look at running software; the Retrospective is the adapt part of the process, in which the Team make small changes to incrementally improve the product and the process. Product improvement As well as a product demonstration, the Team inspect & adapt the product as a whole, adapting practices and the product backlog as a result. Based on current results, progress can be assessed and further investment planned. Process improvement After a Sprint Review, the Scrum team inspect & adapt the process through a retrospective, allowing an agile team to incrementally improve the development process. Running a Retrospective A Retrospective can be a challenging discussion. To keep focussed and effective: • Gather individual feedback on post-its in short time boxes • Balance positive and negative feedback from everyone • Separate idea generation from evaluation • Prioritize ideas and select a few of the best actions
  13. 13. Why are there just 3 artifacts? The Scrum framework has developed over time, and through the incremental improvement central to all agile methods, waste has been stripped away. The result? Just 3 core artifacts or tools necessary to govern Scrum: • Product Backlog, with items prioritized by value; owned by the PO • Sprint Backlog, sub-set of product backlog protected from change; owned by the Team • Burndown Chart, visualization of work to be completed; owned by the Scrum Master
  14. 14. Definition of Ready Used to determine when a user story or work item is ready to present to the Team, for example: • Stories follow the INVEST mnemonic1 • Small enough that one Team can select 6-10 stories in a sprint • At least 3-4 Acceptance Criteria The PO s Product Backlog1 The product backlog contains items, or business requirements, prioritized by relative business value. The backlog consists of the Why (requirement) and the What (user stories). The How, the technical tasks, is determined by the Development Team. Flexibility is maintained by using a just-in- time approach to breaking down the requirements. Requirements near the top of the backlog are broken down into multiple user stories, with the goal of having enough prepared user stories for just the next 1-2 sprints. 1 User stories that are Independent, Negotiable, Valuable, Estimable, Small, Testable
  15. 15. The Team s Sprint Backlog 1 The Sprint Backlog contains stories that will not change during the sprint, allowing the Team to focus on delivering the selected stories. Outside the Sprint Backlog, the PO can re-prioritize stories if needed. A good Sprint Backlog contains: • 6-10 stories the Team selected for the sprint • Just enough small tasks for the next few days (to limit risk of waste) The Scrum board • Visualizes the current activity in the Team • Helps Team limit open and incomplete stories • Highlights dependencies between tasks • Shows time committed to tasks outside the sprint goal • Keeps focus, with ideally one activity or story open at a time Tools like Agilo1 help manage agile teams online, ideal for distributed teams 1 Agilo is an open-source agile management tool, ideal for distributed teams
  16. 16. The Scrum Master s Burndown Chart1 The Burndown Chart shows work that still needs to be done, allowing the Scrum- Master to manage the Scrum framework. The units used for the Burndown chart provide different information and levels of granularity: • Completed User Stories, burning down User Story points, may show no change for days at a time • Completed tasks, burning down ideal hours, should change daily, but can also burn up if additional tasks are uncovered and added to the backlog Tools like Agilo1 can automate chart creation Reading the Burndown Chart • Visualizes work to be completed (y-axis) • New tasks/stories move line up • Trend line shows ideal task/story burndown • Used by Scrum Master to focus Daily Scrum • Sudden gradient drop hints at possible technical debt 1 Agilo is an open-source agile management tool, ideal for distributed teams
  17. 17. Agile development principles • Eliminate waste: Automate any repetitive task, like acceptance testing or product build • Regular, rapid feedback: make small changes and test/integrate/build immediately • Integrate early: difficulty of integrating new code grows exponentially with size of change • Code ownership: the Team develop code. Work together, agree common standards • Emerge design: avoid over-engineering - only design and build what is required today Why do agile engineering practices help? The Scrum framework is a simple framework with 9 prescriptions: 3 roles, 3 ceremonies and 3 artifacts. These prescriptions help streamline the product definition and value creation, with a focus on the work definition and management practices; there are no technical practices. Experience shows that effective Scrum teams need software engineering practices aligned with these management practices; short iterations delivering working software are not possible using traditional, big up-front design followed by long develop and test cycles. Other agile methodologies have focussed more on the technical practices, and many successful Scrum teams adopt agile development practices like those described as part of the XP1 framework. 1 eXtreme Programming describes development practices such as pair programming, refactoring and continuous integration
  18. 18. Building code ownership Signs that a Team is building a culture of shared code ownership include: • Knowledge sharing tasks on the task board not directly related to delivering a new feature • Design and architecture decisions made with non-architects or designers in the Team • Common use of pair programming to share knowledge • Shared, visible and continually updating Definition of Done for user stories • Selection of user stories outside area of expertise of a Team (and successful delivery) Encouraging code ownership Code ownership is the principle by which the Team take responsibility for the technical quality of the product. It means that the whole Team share responsibility for the code across the whole system. Shared code ownership builds in redundancy, increases general knowledge of the system without sacrificing specialist expertise, increases quality and reduces time wasted chasing bugs. Code ownership means: • A common understanding of coding standards and expectations • Open communication between developers • Building and sharing knowledge • Practices that support rebuilding and emerging design
  19. 19. Increase quality by regular, rapid feedback The cost of debugging increases exponentially with the length of time after a bug is introduced; the earlier a bug is found, the cheaper and easier it is to solve. An underlying principle of agile development is to get feedback quickly and often to uncover defects early. Many agile development practices focus on decreasing the time taken to get feedback. This helps eliminate waste and build quality in. Agile practices focus on regular, rapid feedback. • Test-driven development builds a test framework before the code is written • Pair programming provides feedback as the code is written • Automated function or acceptance testing feeds back as the features grow • Continuous integration ensures functioning builds and tests integration Regular, rapid feedback increases code quality by: • Encouraging small, incremental code changes • Discouraging the works on my machine mentality • Making merging easier • Visualizing code quality and shared coding standards • Focusing Team on writing working software • Validating that the product is shippable
  20. 20. Refactoring legacy applications You don t need 90% coverage to refactor: • Build tests as you code • Preferably write tests before you code • Write code that does only what you need it to • When you use legacy code, only test legacy functionality exposed for the new feature • Start with specific cases, and refactor to add generalization or modularity Continually improve the design Defining architecture upfront seems to be a good idea. The architect must think through the design, and can design for future growth. But this misunderstands the purpose of architecture; it is a service to those that develop the product, maximizing the Team s ability to develop while meeting the business needs for the product in terms of non-functional requirements like performance under load or number of concurrent users. Better to only design for what is right in front of you. Provide a service to the Development Team that makes development smooth, quick and efficient. When this is not enough, extend or modify the architecture. This serves two purposes. Obviously, it reduces waste. Only the architecture that is needed is built. But it also creates a continually improving environment in which the architecture can be modified and optimized to its current purpose, rather than stretched and squeezed to meet unplanned needs.