You get a bonus - 1 coin for daily activity. Now you have 1 coin

Flexible methodologies in software development. Scrum

Lecture



Scrum (from the English " scrum " scrum ) is a project management methodology that is actively used in the development of information systems for flexible software development. Scrum clearly emphasizes quality control of the development process. In addition to managing software development projects, Scrum can also be used in the work of software support teams ( software support teams ), or as a program management and development management approach: Scrum of Scrums .

Historical background

Flexible methodologies in software development.  Scrum
Rugby Fighting (Scrum) between Newport and London Welsh in 1904

Hirotaka Takeuchi [1] and Ikujiro Nonaka [2] described the approach in the article The New Product Development Game ( Harvard Business Review [3] , January-February 1986 ). They noted that the projects that small teams of specialists from different fields are working on, usually systematically produce the best results, and explained this as the “rugby approach”. In 1991, DeGrace and Stahl in the book “Unholy Problems, Righteous Solutions” [4] referred to this approach as Scrum ( crush; fight around the ball (in rugby) ), the sports term cited in Takeuti and Nonaka. Ken Schwaber [5] in the early 1990s used the approach that led Scrum to his company. For the first time, the Scrum method was presented to a general review by the documented, clearly formed and jointly described by Schwaber and Jeff Sutherland [6] at OOPSLA'96 [7] (English) in Austin. Schwaber and Sutherland worked together over the next years to process and describe all their experience and the best practical examples for the industry into one, into the methodology that is known today as Scrum. Schwaber joined forces with Mike Beadle [8] in 2001 to describe the method in detail in the book Agile Software Development with SCRUM [9] .

Definitions

Flexible methodologies in software development.  Scrum
Scrum processes

Scrum

Scrum is a set of principles on which the development process is based, allowing in rigidly fixed and short-term iterations, called sprints, to provide the end user with working software with new features for which the highest priority is determined. Software capabilities for implementation in the next sprint are determined at the beginning of the sprint at the planning stage and cannot be changed throughout its length. At the same time, the strictly fixed short duration of the sprint gives the development process predictability and flexibility.

Sprint

Sprint [10] - an iteration in the scram, during which the functional growth of software is created. Rigidly fixed in time. The duration of one sprint from 2 to 4 weeks. In some cases, for example, according to the Scrum standard of Nokia, the duration of the sprint should be no more than 6 weeks. Nevertheless, it is believed that the shorter the sprint is, the more flexible the development process is, releases are released more often, feedback from the consumer comes faster, less time is spent on working in the wrong direction. On the other hand, with longer sprints, the team has more time to solve the problems encountered in the process, and the project owner reduces costs for meetings, product demonstrations, etc. Different teams select the length of the sprint according to the specifics of their work, the composition of teams and requirements, often trial and error. To assess the amount of work in the sprint, you can use a preliminary assessment, as measured in history points. The preliminary assessment is fixed in the project backlog. During the sprint, no one has the right to change the list of work requirements included in the sprint backlog.

Project backlog

A project backlog is a list of requirements for functionality, ordered by their degree of importance to be implemented. Elements of this list are called “user wishes” ( user story ) or backlog items ( backlog items ). The project backlog is open for editing for all participants in the scrum process.

Sprint backlog

Backlog sprint - contains the functionality selected by the project owner from the backlog of the project . All functions are divided into tasks, each of which is evaluated by a scrum team . Every day, the team estimates the amount of work that needs to be done to complete the sprint [11] .

Task Burning Chart (Burndown chart)

Flexible methodologies in software development.  Scrum
The chart displays the completed sprint. Shows the remaining outstanding tasks and labor required to complete them in the calculation of 21 working days.

Chart showing the amount of work done and remaining. It is updated daily in order to show in a simple way the progress in the work on the sprint. The schedule should be publicly available.

There are different types of diagrams:

  • work combustion diagram for the sprint - shows how many tasks have already been done and how much remains to be done in the current sprint.
  • The combustion diagram for the project’s release shows how many tasks have already been done and how much remains to be done before the product is released (usually based on several sprints).

Additional definitions

Sprint Story

The required functionality that is added to the backlog is often called history. Often the story has the following structure: “As a user of I want to do to get ”. This structure is convenient in that it is understandable both to developers and customers.

Stop sprint (Abnormal Termination)

A sprint can be stopped before its scheduled end in exceptional situations. Sprint can stop the team if it understands that it can not achieve the goal of the sprint in the allotted time. Sprint can stop the owner of the project , if there is no need for the implementation of the goal of the sprint. After the sprint stops, a meeting is held with the team where the reasons for the stop are discussed. After this, a new sprint begins.

Planning Poker

Story Points

An abstract metric for assessing the complexity of a story that does not take into account the cost in man-hours. Usually, one of the following scales is used: Fibonacci series (1,2,3,5,8,13,21,34,55); linear scale (1,2,3,4 ... n); degree of two (1,2,4,8 ... 2 n ); clothing sizes (XS, S, M, L, XL).

Sprint Story Tasks Tasks

Added to sprint stories. The performance of each task is estimated in hours. Each task should not exceed 12 hours (often the team insists that the maximum duration of a task be equal to one working day).

Definition of Done (DoD)

Criteria that determine the degree of readiness of an element from the user's wish log .

Team Speed ​​

The total number of points scored by the team for the previous sprint. This metric helps the team understand how many stories it can make in one sprint.

Roles in the Scrum Process

According to the Scrum method, there are certain roles in the production process, divided into 2 groups of “pigs” and “chickens”. These names have been used because of a joke [12]

Pig is on the road. The chicken looks at her and says: “Let's open the restaurant!” The pig looks at the chicken and replies: “A good idea, and how do you want to call it?” The chicken thinks and says: “Why not call it“ Bacon-Fried Eggs ”?” . “This will not work,” the pig replies, “because then I will have to devote myself completely to the project, and you will be only partially involved.”

Pigs create a product, while chickens are interested, but not so much - after all, they don’t care whether the project will be successful or not, this will have little effect on them. Requirements, wishes, ideas and influence of chickens are taken into account, but they are not allowed to directly engage in the course of the scrum project.

Core roles in scrum methodology (“Pigs”)

"Pigs" are fully included in the project and in the scrum process.

  • Scrum Master (Scrum Master) - holds meetings (Scrum meetings) ensures compliance with all principles of scrum, resolves contradictions and protects the team from distractions. This role does not imply anything other than the correct management of the scram process. The project manager most likely refers to the project owner and should not appear as a scrum master.
  • The owner of the product (Product Owner) - represents the interests of end users and other interested parties in the product.
  • The Scrum Team is a cross-functional project development team consisting of specialists from different profiles: testers, architects, analysts, programmers, etc. The team size is ideally 7 ± 2 people. The team is the only fully involved participant in the development and is responsible for the result as a whole. No one except the team can intervene in the development process during the sprint.

Additional roles (Ancillary roles) in the Scrum methodology (“Chickens”)

  • Users
  • Customers, Sellers ( Stakeholders ) - the persons who initiate the project and for whom the project will bring benefits. They are involved in scrum only during the Sprint Review.
  • Managers ( Managers ) - people who manage staff.
  • Consulting Experts

Artifacts

Required Fields

  • ID is a unique identifier, a sequence number used to identify stories in the event of their renaming.
  • Name (Name) - a brief description of the story. It must be unambiguous so that both the developers and the project owner can understand what is being said and distinguish one story from another.
  • Importance - the degree of importance of this story, according to the owner of the project . Usually it is a natural number, sometimes Fibonacci numbers are used for this purpose. The higher the value, the higher the priority.
  • Preliminary estimate (initial estimate) - the initial estimate of the amount of work required to implement the history compared to other stories. Measured in story points. Approximately corresponds to the number of "ideal man-hours."
  • How to demonstrate (how to demo) - a brief explanation of how the completed task will be demonstrated at the end of the sprint. This field can be an automated test code for acceptance testing.

Additional fields

Sometimes, additional fields are also used in the backlog of a project , mainly to help the project owner determine his priorities.

  • Category ( track ). For example, "control panel" or "optimization". With this field , the project owner can easily select all items of the category "optimization" and set them a low priority.
  • Components ( components ) - indicates which components (for example, database, server, client) will be affected when implementing history. This field consists of a group of checkboxes, which are marked if the corresponding components require changes.
  • Requestor . the product owner may want to store information about all customers interested in this task. This is necessary in order to keep them informed about the progress of work.
  • ID in the defect tracking system ( bug tracking ID ) - if you use a separate error tracking system, then in the description of the history it is useful to store references to all the defects that belong to it.

Meetings

Sprint Planning Meeting

Occurs at the beginning of a new Sprint iteration.

  • From the project backlog, tasks are selected, the team undertakes to fulfill the tasks for the sprint;
  • A sprint backlog is created based on selected tasks. Each task is rated in ideal man hours;
  • The solution of the problem should not take more than 12 hours or one day. If necessary, the task is divided into subtasks;
  • It is discussed and determined how this scope of work will be implemented;
  • The duration of the meeting is limited to 4-8 hours, depending on the duration of the iteration, the experience of the team, etc.
    • (first part of the meeting) The project owner and the scrum team participate: select tasks from the backlog of the product;
    • (second part of the meeting) Only the team participates: discuss the technical details of the implementation, fill up the backlog of the sprint.

Daily Scrum meeting

  • starts exactly on time;
  • everyone can watch, but only "pigs" say;
  • lasts no more than 15 minutes;
  • held in the same place during the sprint.

During the meeting, each team member answers 3 questions:

  • What has been done since the previous daily meeting?
  • What will be done from the current meeting to the next?
  • What problems hinder the achievement of the sprint goals? (A scrum master is working on solving these problems. Usually this solution goes beyond the framework of the daily meeting and as part of the people directly affected by this obstacle.)

Scrum of Scrums

Held after the daily meeting scrum. Allows multiple scram teams to discuss work, focusing on common areas and mutual integration. The agenda is the same as in the daily meeting, plus the following questions:

  • What has each team done since the previous daily meeting?
  • What each team will do for the next daily meeting
  • Are there any problems that hinder or slow down the work of each team?
  • Does the other team need to do something from the tasks of your team?

Sprint review meeting review

Held at the end of the sprint.

  • The team demonstrates the increase in product functionality to all interested parties.
  • The maximum number of viewers is attracted.
  • All team members participate in the demonstration (one person per demonstration or each shows what he did for the sprint).
  • Cannot demonstrate incomplete functionality.
  • Limited to four hours depending on the duration of the iteration and increase the functionality of the product.

Retrospective meeting

Held at the end of the sprint.

  • Team members give their opinion on the last sprint.
  • Answer two basic questions:
    • What was done well in the last sprint?
    • What needs to be improved in the next?
  • Perform improvement of the development process (solve issues and fix successful solutions).
  • Limited to one to three hours.

Notes

  1. en: Hirotaka Takeuchi
  2. en: Ikujiro Nonaka
  3. Harvard Business Review
  4. L Leslie Hulet Stahl: Wicked Problems, Righteous Solutions: A Paradigms Yourdon Press Computing Series, 1990 (first edition) ISBN 0-13-590126-X
  5. en: Ken Schwaber
  6. en: Jeff Sutherland
  7. OOPSLA 2006
  8. Mike Beedle
  9. Agile software development with Scrum. - Prentice Hall, 2002. - ISBN 0-13-067634-9.
  10. Sprint - jerk; throw; sprint; sprint
  11. Agile Project Management with Scrum , Ken Schwaber, Microsoft Press, January 2004, 163pp, ISBN 0-7356-1993-X
  12. page 7

References

  • The Official Scrum Rulebook
  • Scrum - why does a customer need to know such incomprehensible words? (Rus.)

продолжение следует...

Продолжение:


Часть 1 Flexible methodologies in software development. Scrum


Comments


To leave a comment
If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Software and information systems development

Terms: Software and information systems development