Jump to content

Scrum (software development)

From Wikipedia, the free encyclopedia
(Redirected fromScrum (development))

Scrum Agile events, based onThe 2020 Scrum Guide[1]

Scrumis anagileteam collaboration framework commonly used insoftware developmentand other industries.

Scrum prescribes for teams to break work intogoalsto be completed withintime-boxediterations, calledsprints.Each sprint is no longer than one month and commonly lasts two weeks. The scrum team assesses progress in time-boxed,stand-up meetingsof up to 15 minutes, calleddaily scrums.At the end of the sprint, the team holds two further meetings: one sprint review to demonstrate the work forstakeholdersand solicit feedback, and one internalsprint retrospective.A person in charge of a scrum team is typically called ascrum master.[2]

Scrum's approach to product development involves bringingdecision-makingauthority to an operational level.[3]Unlike a sequential approach to product development, scrum is aniterativeandincrementalframework for product development.[4]Scrum allows for continuous feedback and flexibility, requiring teams to self-organize by encouraging physicalco-locationor close online collaboration, and mandating frequent communication among all team members. The flexible approach of scrum is based in part on the notion of requirement volatility, that stakeholders will change their requirements as the project evolves.[5]

History

[edit]

The use of the termscrumin software development came from a 1986Harvard Business Reviewpaper titled "The New New Product Development Game" byHirotaka TakeuchiandIkujiro Nonaka.Based on case studies from manufacturing firms in the automotive, photocopier, and printerindustries,the authors outlined a new approach to product development for increased speed and flexibility. They called this therugbyapproach, as the process involves a singlecross-functional teamoperating across multiple overlapping phases in which the team "tries to go the distance as a unit, passing the ball back and forth".[6]The authors later developed scrum in their book,The Knowledge Creating Company.[7]

In the early 1990s,Ken Schwaberused what would become scrum at his company, Advanced Development Methods.Jeff Sutherland,John Scumniotales, and Jeff McKenna developed a similar approach at Easel Corporation, referring to the approach with the termscrum.[8]Sutherland and Schwaber later worked together to integrate their ideas into a single framework, formally known as scrum. Schwaber and Sutherland tested scrum and continually improved it, leading to the publication of a research paper in 1995,[9]and theManifesto for Agile Software Developmentin 2001.[10]Schwaber also collaborated withBabatunde Ogunnaikeat DuPont Research Station and theUniversity of Delawareto develop Scrum. Ogunnaike believed that software development projects could often fail when initial conditions change ifproduct managementwas not rooted in empirical practice.[3]

In 2002, Schwaber with others founded the Scrum Alliance and set up theCertified Scrumaccreditation series.[11]Schwaber left the Scrum Alliance in late 2009 and subsequently founded Scrum.org, which oversees the parallelProfessional Scrumaccreditation series.[12]Since 2009, a public document calledThe Scrum Guide[13]has been published and updated by Schwaber and Sutherland. It has been revised six times, with the most recent version having been published in November 2020.

Scrum team

[edit]

A scrum team is organized into at least three categories of individuals: the product owner, developers, and the scrum master. The product owner liaises with stakeholders, those who have an interest in the project's outcome, to communicate tasks and expectations with developers.[14]Developers in a scrum team organize work by themselves, with the facilitation of a scrum master.[15]

Product owner

[edit]

Each scrum team has one product owner.[16]The product owner focuses on the business side of product development and spends the majority of time liaising with stakeholders and the team. The role is intended to primarily represent the product'sstakeholders,thevoice of the customer,or the desires of acommittee,and bears responsibility for the delivery of business results.[17][18][19][20]Product owners manage theproduct backlogand are responsible for maximizing the value that a team delivers.[18]They do not dictate the technical solutions of a team but may instead attempt to seek consensus among team members.[21][22]

As the primary liaison of the scrum team towards stakeholders, product owners are responsible for communicating announcements, project definitions and progress, RIDAs (risks,impediments,dependencies,and assumptions), funding and scheduling changes, the product backlog, and project governance, among other responsibilities.[23][better source needed]Product owners can also cancel a sprint if necessary, without the input of team members.[13]

Developers

[edit]

In scrum, the termdeveloperorteam memberrefers to anyone who plays a role in the development and support of the product and can include researchers,architects,designers, programmers, etc.[13][24]

Scrum master

[edit]

Scrum is facilitated by a scrum master, whose role is to educate and coach teams about scrum theory and practice.[1]Scrum masters have differing roles and responsibilities from traditionalteam leadsorproject managers.Some scrum master responsibilities include coaching, objective setting, problem solving, oversight, planning, backlog management, and communication facilitation.[1]On the other hand, traditional project managers often havepeople managementresponsibilities, which a scrum master does not. Scrum teams do not involve project managers, so as to maximize self-organisation among developers.[25]

Workflow

[edit]

Sprint

[edit]
The scrum framework (PBI in the figure refers to product backlog item)
The scrum process

A sprint (also known as adesign sprint,iteration,ortimebox) is a fixed period of time wherein team members work on a specific goal. Each sprint is normally between one week and one month, with two weeks being the most common.[3]The outcome of the sprint is a functional deliverable, or a product which has received some development inincrements.When a sprint is abnormally terminated, the next step is to conduct new sprint planning, where the reason for the termination is reviewed.

Each sprint starts with a sprint planning event in which a sprint goal is defined. Priorities for planned sprints are chosen out of the backlog. Each sprint ends with two events:[8]

  • Asprint review(progress shown to stakeholders to elicit their feedback)
  • Asprint retrospective(identifying lessons and improvements for the next sprints)

The suggested maximum duration of sprint planning is eight hours for a four-week sprint.[13]

Daily scrum

[edit]
A daily scrum in the computing room

Each day during a sprint, the developers hold a daily scrum (often conductedstanding up) with specific guidelines, and which may be facilitated by a scrum master.[3][26]Daily scrum meetings are intended to be less than 15 minutes in length, taking place at the same time and location daily. The purpose of the meeting is to announce progress made towards the sprint goal and issues that may be hindering the goal, without going into any detailed discussion. Once over, individual members can go into a 'breakout session' or an 'after party' for extended discussion and collaboration.[27]Scrum masters are responsible for ensuring that team members use daily scrums effectively or, if team members are unable to use them, providing alternatives to achieve similar outcomes.[28][29]

Post-sprint events

[edit]

Conducted at the end of a sprint, a sprint review is a meeting that has a team share the work they've completed with stakeholders and liaise with them on feedback, expectations, and upcoming plans. At a sprint review completed deliverables are demonstrated to stakeholders. The recommended duration for a sprint review is one hour per week of sprint.[13]

A sprint retrospective is a separate meeting that allows team members to internally analyze the strengths and weaknesses of the sprint, future areas of improvement, andcontinuous process improvementactions.[30]

Backlog refinement

[edit]

Backlog refinement is a process by which team members revise and prioritize a backlog for future sprints.[31]It can be done as a separate stage done before the beginning of a new sprint or as a continuous process that team members work on by themselves. Backlog refinement can include the breaking down of large tasks into smaller and clearer ones, the clarification of success criteria, and the revision of changing priorities and returns.

Artifacts

[edit]

Artifactsare a means by which scrum teams manage product development by documenting work done towards the project. The main scrum artifacts used are the product backlog, sprint backlog, and increment.

Product backlog

[edit]

The product backlog is a breakdown of work to be done and contains an ordered list ofproduct requirements(such asfeatures,bug fixesandnon-functional requirements) that the team maintains for aproduct.The order of a product backlog corresponds to the urgency of the task. Common formats for backlog items includeuser storiesanduse cases.[25]The product backlog may also contain the product owner's assessment ofbusiness valueand the team's assessment of the product's effort or complexity, which can be stated instory pointsusing the roundedFibonacci scale.These estimates try to help the product owner gauge the timeline and may influence the ordering of product backlog items.[32]

The product owner maintains and prioritizes product backlog items based on considerations such as risk, business value, dependencies, size, and timing. High-priority items at the top of the backlog are broken down into more detail for developers to work on, while tasks further down the backlog may be more vague.[3]

Sprint backlog

[edit]

The sprint backlog is the subset of items from the product backlog intended for developers to address in a particular sprint.[33]Developers fill this backlog with tasks they deem appropriate to fill the sprint, using past performance to assess their capacity for each sprint. The scrum approach has tasks on the sprint backlog not assigned to developers by any particular individual or leader. Team members self organize by pulling work as needed according to the backlog priority and their own capabilities and capacity.[34]

Increment

[edit]

An increment is a potentially releasable output of a sprint, which meets the sprint goal. It is formed from all the completed sprint backlog items, integrated with the work of all previous sprints.

Other artifacts

[edit]

Burndown chart

[edit]
A sample burndown chart for a completed sprint, showing remaining effort at the end of each day

Often used in scrum, a burndown chart is a publicly displayed chart showing remaining work.[35]It provides quick visualizations for reference. The horizontal axis of the burndown chart shows the days remaining, while the vertical axis shows the amount of work remaining each day. During sprint planning, the ideal burndown chart is plotted. Then, during the sprint, developers update the chart with the remaining work.

Release burnup chart

[edit]
A sample burnup chart for a release, showing scope completed each sprint (MVP =minimum viable product)

Updated at the end of each sprint, the release burn-up chart shows progress towards delivering a forecast scope. The horizontal axis of the release burnup chart shows the sprints in a release, while the vertical axis shows the amount of work completed at the end of each sprint.

Velocity

[edit]

Some project managers believe that a team's total capability effort for a single sprint can be derived by evaluating work completed in the last sprint. The collection of historical "velocity"data is a guideline for assisting the team in understanding their capacity.

Limitations

[edit]

Some have argued that scrum events, such as daily scrums and scrum reviews, hurtproductivityand waste time that could be better spent on actual productive tasks.[36][37]Scrum has also been observed to pose difficulties for part-time or geographically distant teams; those that have highly specialized members who would be better off working by themselves or in working cliques; and those that are unsuitable for incremental anddevelopment testing.[38][39]

Adaptations

[edit]

Scrum is frequently tailored or adapted in different contexts to achieve varying aims.[40]A common approach to adapting scrum is the combination of scrum with other software development methodologies, as scrum does not cover the wholeproduct development lifecycle.[41]Various scrum practitioners have also suggested more detailed techniques for how to apply or adapt scrum to particular problems or organizations. Many refer to these techniques as 'patterns', an analogous use todesign patternsin architecture and software.[42][43]

Scrumban

[edit]

Scrumban is a software production model based on scrum andkanban.To illustrate each stage of work, teams working in the same space often use post-it notes or a large whiteboard.[44]Kanban models allow a team to visualize work stages and limitations.[45]

Scrum of scrums

[edit]

Scrum of scrums is a technique to operate scrum at scale for multiple teams coordinating on the same product. Scrum-of-scrums daily scrum meetings involve ambassadors selected from each individual team, who may be either a developer or scrum master. As a tool for coordination, scrum of scrums allows teams to collectively work on team-wide risks, impediments, dependencies, and assumptions (RIDAs), which may be tracked in a backlog of their own.[46][47]

Large-scale scrum

[edit]

Large-scale scrum is a product development framework that scales scrum with varied rules and guidelines, developed by Bas Vodde andCraig Larman.[48][49]There are two levels to the framework: the first level, designed for up to eight teams; and the second level, known as 'LeSS Huge', which can accommodate development involving hundreds of developers.[50]

Criticism

[edit]

A systematic review found "that Distributed Scrum has no impact, positive or negative on overall project success" in distributed software development.[51]

Martin Fowler,one of the authors of theManifesto for Agile Software Development,has criticised what he calls "faux-agile" practices that are "disregarding agile's values and principles",[52]and "the Agile Industrial Complex imposing methods upon people" contrary to the Agile principle of valuing "individuals and interactions over processes and tools"[10]and allowing the individuals doing the work to decide how the work is done, changing processes to suit their needs.

In September 2016, Ron Jeffries, a signatory to theAgile Manifesto,[10]described what he called "Dark Scrum", saying that "Scrum can be very unsafe for programmers."[53]

See also

[edit]

Citations

[edit]
  1. ^abcKen Schwaber;Jeff Sutherland."The Scrum Guide"(PDF).Scrum.org.RetrievedJune 15,2023.
  2. ^"What Is A Scrum Master? Everything You Need To Know – Forbes Advisor".www.forbes.com.RetrievedNovember 16,2023.
  3. ^abcdeSchwaber, Ken(February 1, 2004).Agile Project Management with Scrum.Microsoft Press.ISBN978-0-7356-1993-7.
  4. ^"What is Scrum?".What is Scrum? An Agile Framework for Completing Complex Projects – Scrum Alliance.Scrum Alliance.RetrievedFebruary 24,2016.
  5. ^J. Henry and S. Henry. Quantitative assessment of the software maintenance process and requirements volatility. In Proc. of the ACM Conference on Computer Science, pages 346–351, 1993.
  6. ^Takeuchi, Hirotaka; Nonaka, Ikujiro (January 1, 1986)."The New New Product Development Game".Harvard Business Review.RetrievedJune 9,2010.Moving the Scrum Downfield
  7. ^The Knowledge Creating Company.Oxford University Press. 1995. p. 3.ISBN978-0-19-976233-0.RetrievedMarch 12,2013.
  8. ^abSutherland, Jeff(October 2004)."Agile Development: Lessons learned from the first Scrum".Archived fromthe original(PDF)on June 30, 2014.RetrievedSeptember 26,2008.
  9. ^Sutherland, Jeffrey Victor;Schwaber, Ken(1995).Business object design and implementation: OOPSLA '95 workshop proceedings.The University of Michigan.p. 118.ISBN978-3-540-76096-2.
  10. ^abc"Manifesto for Agile Software Development".RetrievedOctober 17,2019.
  11. ^Maximini, Dominik (January 8, 2015).The Scrum Culture: Introducing Agile Methods in Organizations.Management for Professionals. Cham: Springer (published 2015). p. 26.ISBN978-3-319-11827-7.RetrievedAugust 25,2016.Ken Schwaber and Jeff Sutherland presented Scrum for the first time at the OOPSLA conference in Austin, Texas, in 1995. [...] In 2001, the first book about Scrum was published. [...] One year later (2002), Ken founded the Scrum Alliance, aiming at providing worldwide Scrum training and certification.
  12. ^"Home".Scrum.org.RetrievedJanuary 6,2020.
  13. ^abcdeSutherland, Jeff;Schwaber, Ken(2013)."Scrum Guides".ScrumGuides.org.RetrievedJune 15,2023.
  14. ^Morris, David (2017).Scrum: an ideal framework for agile projects.In Easy Steps. pp. 178–179.ISBN978-1-84078-731-3.OCLC951453155.
  15. ^Cobb, Charles G. (2015).The Project Manager's Guide to Mastering Agile: Principles and Practices for an Adaptive Approach.Hoboken, NJ: John Wiley & Sons. p. 37.ISBN978-1-118-99104-6.
  16. ^Cohn, Mike(2010).Succeeding with Agile: Software Development Using Scrum.Upper Saddle River, NJ: Addison-Wesley.ISBN978-0-321-57936-2.
  17. ^Rubin, Kenneth (2013),Essential Scrum. A Practical Guide to the Most Popular Agile Process,Addison-Wesley, p. 173,ISBN978-0-13-704329-3
  18. ^abMcGreal, Don; Jocham, Ralph (June 4, 2018).The Professional Product Owner: Leveraging Scrum as a Competitive Advantage.Addison-Wesley Professional.ISBN978-0-13-468665-3.
  19. ^Pichler, Roman (March 11, 2010).Agile Product Management with Scrum: Creating Products that Customers Love.Addison-Wesley Professional.ISBN978-0-321-68413-4.
  20. ^Ambler, Scott."The Product Owner Role: A Stakeholder Proxy for Agile Teams".agilemodeling.com.RetrievedJuly 22,2016.[...] in practice there proves to be two critical aspects to this role: first as a stakeholder proxy within the development team and second as a project team representative to the overall stakeholder community as a whole.
  21. ^"The Scrum Guide"(PDF).Scrum.org. p. 6.RetrievedJune 15,2023.
  22. ^"The Role of the Product Owner".Scrum Alliance.RetrievedMay 26,2018.
  23. ^"The Product Owner Role".Scrum Master Test Prep.RetrievedFebruary 3,2017.
  24. ^Rad, Nader K.; Turley, Frank (2018).Agile Scrum Foundation Courseware, Second Edition.'s-Hertogenbosch, Netherlands: Van Haren. p. 26.ISBN978-94-018-0279-6.
  25. ^abPete Deemer; Gabrielle Benefield; Craig Larman; Bas Vodde (December 17, 2012)."The Scrum Primer: A Lightweight Guide to the Theory and Practice of Scrum (Version 2.0)".InfoQ.
  26. ^"What is a Daily Scrum?".Scrum.org.RetrievedJanuary 6,2020.
  27. ^Flewelling, Paul (2018).The Agile Developer's Handbook: Get more value from your software development: get the best out of the Agile methodology.Birmingham, UK: Packt Publishing Ltd. p. 91.ISBN978-1-78728-020-5.
  28. ^McKenna, Dave (2016).The Art of Scrum: How Scrum Masters Bind Dev Teams and Unleash Agility.Aliquippa, PA: CA Press. p. 126.ISBN978-1-4842-2276-8.
  29. ^Drongelen, Mike van; Dennis, Adam; Garabedian, Richard; Gonzalez, Alberto; Krishnaswamy, Aravind (2017).Lean Mobile App Development: Apply Lean startup methodologies to develop successful iOS and Android apps.Birmingham, UK: Packt Publishing Ltd. p. 43.ISBN978-1-78646-704-1.
  30. ^Rubin, Kenneth (2012),Essential Scrum. A Practical Guide to the Most Popular Agile Process,Addison-Wesley (published 2013), p. 375,ISBN978-0-13-704329-3
  31. ^Project Management Institute 2021,Glossary §3 Definitions.
  32. ^Higgins, Tony (March 31, 2009)."Authoring Requirements in an Agile World".BA Times.
  33. ^Russ J. Martinelli; Dragan Z. Milosevic (January 5, 2016).Project Management ToolBox: Tools and Techniques for the Practicing Project Manager.Wiley. p. 304.ISBN978-1-118-97320-2.
  34. ^Ken Schwaber;Jeff Sutherland."The Scrum Guide"(PDF).Scrum.org.RetrievedMay 25,2018.
  35. ^Charles G. Cobb(January 27, 2015).The Project Manager's Guide to Mastering Agile: Principles and Practices for an Adaptive Approach.John Wiley & Sons. p. 378.ISBN978-1-118-99104-6.
  36. ^Jenson, John (March 8, 2019)."Meetings: The productivity killer for developers".TandemSeven – The Experience Innovation Company.Archived fromthe originalon June 5, 2020.RetrievedJune 5,2020.
  37. ^"Not all developers like agile, and here are 5 reasons why".Business Matters.December 4, 2019.RetrievedJune 5,2020.
  38. ^Turk, Dan; France, Robert; Rumpe, Bernhard (2014) [2002]. "Limitations of Agile Software Processes".Proceedings of the Third International Conference on Extreme Programming and Flexible Processes in Software Engineering:43–46.arXiv:1409.6600.
  39. ^"Issues and Challenges in Scrum Implementation"(PDF).International Journal of Scientific & Engineering Research.3(8). August 2012.RetrievedDecember 10,2015.
  40. ^Hron, Michal; Obwegeser, Nikolaus (January 1, 2022)."Why and how is Scrum being adapted in practice: A systematic review".Journal of Systems and Software.183:111110.doi:10.1016/j.jss.2021.111110.ISSN0164-1212.S2CID240950847.
  41. ^Hron, M.; Obwegeser, N. (January 2018)."Scrum in practice: an overview of Scrum adaptations"(PDF).Proceedings of the 2018 51st Hawaii International Conference on System Sciences (HICSS), January 3–6, 2018.
  42. ^Bjørnvig, Gertrud; Coplien, Jim (June 21, 2008)."Scrum as Organizational Patterns".Gertrude & Cope.
  43. ^"Scrum Pattern Community".ScrumPLoP.org.RetrievedJuly 22,2016.
  44. ^Ladas, Corey (October 27, 2007)."scrum-ban".Lean Software Engineering. Archived fromthe originalon August 23, 2018.RetrievedSeptember 13,2012.
  45. ^Kniberg, Henrik; Skarin, Mattias (December 21, 2009)."Kanban and Scrum – Making the most of both"(PDF).InfoQ.RetrievedJuly 22,2016.
  46. ^"Risk Management – How to Stop Risks from Screwing Up Your Projects!".Kelly Waters.
  47. ^"Scrum of Scrums".Agile Alliance. December 17, 2015. Archived fromthe originalon February 9, 2014.RetrievedDecember 17,2013.
  48. ^"Large-Scale Scrum (LeSS)".2014.
  49. ^Grgic (2015)."Descaling organisation with LeSS (Blog)".
  50. ^Larman, Craig; Bas Vodde (May–June 2013)."Scaling Agile Development"(PDF).Crosstalk.
  51. ^Santos, Ronnie de Souza; Ralph, Paul; Arshad, Arham; Stol, Klaas-Jan (October 5, 2023)."Distributed Scrum: A Case Meta-Analysis".ACM Computing Surveys.56(4): 1–37.doi:10.1145/3626519.S2CID263672588.
  52. ^Fowler, Martin(August 25, 2018)."The State of Agile Software in 2018".martinfowler.com.Archivedfrom the original on September 14, 2023.RetrievedSeptember 14,2023.
  53. ^Jeffries, Ron (September 8, 2016)."Dark Scrum".ronjeffries.com.RetrievedMay 6,2024.

General and cited references

[edit]
[edit]