What is Scrum?
Scrum is a framework for managing projects or, more generally, work. It is iterative and incremental, which means that it asks a team to work for a short period of time (a “sprint”) and then demonstrate real stuff (a product increment) that matters to the end-product at the end of each sprint. Goals for each subsequent sprint are evaluated, negotiated, and committed to based on the stuff that was created at the end of the previous sprint. There’s still an infinite amount of work to be done, but Scrum divides that work into manageable chunks (usually about two-weeks in length).
Scrum is also a value system that asks teams to work together to accomplish a common goal, focusing on the output of the team rather than the input of the individuals. It values communication, openness, transparency, self-organization, and the worth of employees as individuals and professionals. Scrum can and does help people feel good about their jobs and their contributions to their teams.
Scrum consists of three primary artifacts; Product Backlog, Sprint Backlog and Increment. We will cover these artifacts briefly in this guide.
Product Backlog
The product backlog is a breakdown of work to be done and contains an ordered list of product requirements that a scrum team maintains for a product. In essence, whatever must be done to deliver a viable product. The product owner prioritize product backlog items based on considerations such as risk, business value, dependencies, size and date needed.
The product backlog is what will be delivered, ordered into the sequence in which it should be delivered. It is visible to everyone but may only be changed with the consent of the product owner, who is ultimately responsible for ordering product backlog items for the development team to choose.
The product backlog and the business value of each product backlog item is the responsibility of the product owner. The effort to deliver each item is estimated by the development team in story points or time. By estimating in story points, the team reduces the dependency in individual developers; this is useful especially in dynamic teams where developers are often assigned to other project after spring delivery. For instance, if a user story is estimated as a 5 in effort (using Fibonacci sequence), it remains 5 regardless of how many developers are working on it.
Story points define the effort in a time-box, so they do not change with time. For instance, in one hour an individual can walk, run, or climb, but the effort expended is clearly different. The value of using story points is that the team can reuse them by comparing similar work from previous sprints, but it should be recognized that estimates are relative to the team. For example, an estimate of 5 for one team could be a 2 for another having senior developers and higher skills.
Typically, the product owner and the scrum team work together to develop the breakdown of work; this becomes the product backlog, which evolves as new information surfaces about the product and about its customers, and so later sprints may address new work.
Sprint Backlog
The Sprint Backlog consists of Product Backlog Items that the team agreed with their product owner to include during sprint planning. The team owns the sprint backlog and can determine whether new items are added or existing items are removed. This allows the team to focus on a clear scope for the length of the sprint. The sprint backlog only lasts for the duration of a sprint. Each new sprint starts with a new sprint backlog.
Increment
The Increment is the sum of all the Product Backlog items completed during a Sprint and the value of the increments of all previous Sprints. At the end of a Sprint, the new Increment must be "Done," which means it must be in usable condition and meet the Scrum Team’s Definition of Done
Definition of Done:
- Unit tests passed
- Code reviewed
Acceptance criteria met
- Functional tests passed
- Product Owner accepts the User Story