Scrum (development)
From Wikipedia, the free encyclopedia
Scrum is a lightweight agile method for software development. Scrum is named after the Scrum in rugby, which is a way to restart the game after an accidental infringement. This entry describes the software development part of Scrum. This means that subjects like Scrum project planning, time/costs/risk management will not be explained in this entry.
Scrum was first applied in 1993 at Easel Corporation by Jeff Sutherland, John Scumniotales and Jeff McKenna when building an object-oriented design and analysis (OOAD) tool incorporating Round-trip engineering. At that time they needed a development method that had rapid application development and where product requirements could easily be translated into working code. These principles later became some of the basics of Scrum.
Some companies that applied variants of the Scrum approach for their projects are Fuji-Xerox, Canon, Honda, NEC, Epson, Brother, 3M, Xerox and Hewlett-Packard. These projects were observed and the results were published by Takeuchi and Nonaka in the Harvard Business review as “The New New Product Development Game” (January-February 1986).
Contents |
[edit] Characteristics of Scrum software development process
Scrum assumes that the software development process is complicated and unpredictable and treats it as a controlled black box instead of a theoretical, fully defined process. This is one of the biggest differences between Scrum and the Waterfall and Spiral methodologies, which view the software development process as a fully defined process. Most problems encountered when using these older, formal types of methodologies are :
- Requirements are not fully understood at the beginning of the process.
- Requirements change during the process.
- The process becomes unpredictable when new tools and technologies are used.
Another characteristic of Scrum is that the software development process isn’t treated as a linear process, unlike the Waterfall, Spiral and Iterative methodologies. In a lot of cases this linear process consists of the following four activities: Analysis, Design, Implementation and Testing. Scrum, however, doesn't prescribe a sequence in which the activities must be implemented. A project can start with any activity, and can change between activities at any time. This increases the project's flexibility and productivity. Other characteristics of Scrum are:
- Flexible schedules
- Flexible deliverables
- Small teams
- Frequent reviews
- Object orientation
- Collaboration between and within teams
Other characteristics that Scrum shares with rugby are:
- The environment determines the process (the game)
- The environment (functionality, timetable, business need and competition) dictates the ending of the process (the game).
- “Rugby evolved from breaking soccer rules – adapting to the environment.” (Schwaber, K.)
- “The primary cycle is moving the ball forward” (Schwaber, K.)
To manage these processes with flexibility, Scrum supplies techniques and controls to manage this unpredictable process. Techniques will be explained in “Techniques” and controls will be explained in “Scrum controls”.
[edit] The Scrum development phase
[edit] Techniques
These are techniques that are needed for the Scrum development phase.
[edit] Team creation
Scrum believes that a development team should perform as a sport team, every team member working independently but towards the same goal. Scrum suggests that a team has a maximum of 6 - 7 members. The team facilitator is called the Scrum master. His/her job is to implement and manage the Scrum process in the project. The Scrum team as a whole defines the practices, meetings, artifact and terminology of SCRUM for the team, and the Scrum Master ensures adherence to these "norms" identified. Scrum masters serve a facilitator role and their authority is mostly indirect. Scrum masters focus most of their time in managing outside interference for the Scrum team and solving outside impediments or ‘Blockers’ that cannot be solved by the Scrum team. The master also focuses on ensuring transparency into the development process by maintaining the multiple Scrum artifacts defined elsewhere in this article.
[edit] Backlog creation
There are 3 types of backlogs:
- Product Backlog - Acts as a repository for requirements targeted for release at some point. These are typically high level requirements with high level estimates provided by the product stakeholders.
- Release Backlog - Requirements pulled from the product backlog and identified and prioritized for an upcoming release. The release backlog contains more details about the requirement and low level estimate which are usually estimated by the team performing the work.
- Sprint Backlog - At the beginning of each sprint, the team has sprint planning with an end result being a backlog of requirements/sub-requirements that the team anticipates completing at the end of the sprint. By completing, that means fully coded, tested and documented. These are the items that the team will "Burndown" throughout the duration of the sprint.
The sprint backlog breaks the release backlog requirement into manageable chunks that can be accomplished typically in 8 - 16 hrs.
[edit] Project segmentation
The whole project gets divided into periods of time with a maximum duration of 4 weeks. One period is called a Sprint and every team gets a backlog to execute within the given Sprint.
[edit] Scrum meetings
- During the sprint, the team conducts daily scrum meetings.
- The meetings are held in the same place at the same time every work day.
- The meetings don’t last for more than 30 minutes.
- A scrum master is appointed.
- The scrum master is responsible for asking every team member the following three questions:
- What have you done since the last scrum meeting?
- What has impeded your work?
- What do you plan on doing between now and the next scrum meeting?
- Conversation is restricted to the team members answering the above questions.
- Meetings can be established for immediately after the scrum meeting based on answers to the above questions.
- The scrum master is responsible for making decisions immediately, if required to remove impediments to progress.
- The scrum master is responsible for noting impediments that must be resolved external to the meeting and causing them to be removed.
[edit] Phases
The Scrum development process consists of 5 major activities “Review release plans”, “Distribution, review and adjustment of product standards”, “Sprint”, “Sprint review” and “Closure”. Image 1 (Meta process model) gives an interpretation of these activities.
[edit] Sprint
The Sprint phase is where the software development takes place. A Sprint consists of the following sub-activities: Develop, Wrap, Review and Adjust. This phase has no sequence. Sometimes a backlog item must be developed, wrapped and reviewed and sometimes a backlog item must be only reviewed or adjusted. It totally depends on the backlog item. See “Extended information about activities and sub activities” for further explanation of these sub activities..
[edit] Sprint review
Each Sprint is followed by a Sprint review. During this review the software developed in the previous Sprint is reviewed and if necessary new backlog items are added. The reviewers consist of project stakeholder, managers, developers and sometimes customers, sales and marketing.
The activities, Sprint and Sprint review are repeated until the product is deemed ready for distribution by the project stakeholders. Then the project goes into the closure phase where the product is made ready for release and distribution.
[edit] Closure
In this stage activities like last debugging, marketing and promotion take place. By finishing this activity the project is closed. Because of the unpredictability of the software development process it’s not possible to define exactly when this activity will take place and so the project may take shorter or longer than planned. But by using the controls given by Scrum one can make calculations on the duration of the project. More about controls and this kind of calculation can be found in the “Scrum Controls” part.
[edit] Extended information about activities and sub activities
[edit] Controls
To be able to manage the black box called the development process, Scrum supplies controls. These controls are products of the Scrum techniques and project’s progression. By studying these results decisions can be made by the project manager. For example:
- The number of backlog items defines the size of the project.
- By counting the successfully finished backlogs the manager has a way to measure the project progression.
- The amount of risks defines the complexity of the project.
The following image (Meta data model) shows how these controls are connected to each other and what influence they have on each other. This Meta data model is followed by a table explaining each control.
[edit] Meta data model
Concept | Definition(source) |
CONTROL | “A control mechanism is used to manage the unpredictability and control the risk.” (Schwaber, K.) |
BACKLOG | “Product functionality requirements that are not adequately addressed by the current product release. Bugs, defects, customer requested enhancements, competitive product functionality, competitive edge functionality, and technology upgrades are backlog items. ” (Schwaber, K.) |
BACKLOG ITEM | An item on the BACKLOG list. |
RELEASE | “Backlog items that at a point in time represent a viable release based on the variables of requirements, time, quality, and competition.”(Schwaber, K.) |
PACKET | “Product components or objects that must be changed to implement a backlog item into a new release.” (Schwaber, K.) |
PRODUCT COMPONENT / OBJECT | A small part of the software |
CHANGE | “Changes that must occur to a packet to implement a backlog item.”(Schwaber, K.) |
PROBLEM | “Technical problems that occur and must be solved to implement a change.” (Schwaber, K.) |
SOLUTION | “Solutions to the problems and risks, often resulting in changes.” (Schwaber, K.) |
RISK | “Risks that affect the success of the project are continuously assessed and responses planned. Other controls are affected as a result of risk assessment.” (Schwaber, K.) |
ISSUE | “Overall project and project issues that are not defined in terms of packets, changes and problems.” (Schwaber, K.) |
[edit] Interaction between Phases and controls
To explain how the activities interact with or reproduce these controls the following image is given. For explanation of the mentioned activities and controls see table 1 and 2.
[edit] References
- (PDF) Rising, L., Janoff, N.S. (2000). The Scrum Software Development Process for Small Teams Retrieved August 15, 2006
- (PDF) Schwaber, K. Advanced Development Methods. SCRUM Development Process Retrieved August 15, 2006
- (PDF) Dr. Sutherland, J. (October 2004) Agile Development: Lessons learned from the first scrum Retrieved August 15, 2006
- (URL) Control Chaos
[edit] See also
Some other Agile methods that have similarities with Scrum are:
- Dynamic System Development Method
- Feature Driven Development
- Extreme programming (XP) - often driven by scrum
[edit] External links
- Implementing Scrum
- Scrum Alliance
- Scrum et al - Google Techtalk with Ken Schwaber
- Scrum and XP from the Trenches
- Scrum articles directory
- Agile Alliance's Scrum library