![]() |
Development Lifecycle »
Design and Architecture »
Methodologies
Beginner
What is SCRUM?By Marc Clifton, J. DunlapA concise summary of SCRUM, one of the "Agile Methods" |
C++/CLI, C#, VB, VC6, VC7, VC7.1.NET 1.0, .NET 1.1, Win2K, WinXP, Win2003, ASP, ASP.NET, Visual Studio, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
SCRUM is a loose set of guidelines that govern the development process of a product, from its design stages to its completion. It aims to cure some common failures of the typical development process, such as:
SCRUM has been successfully employed by hundreds of different companies in many different fields, with outstanding results.
You will find many similarities between SCRUM and Extreme Programming, but one of the major differences is that SCRUM is a fairly general set of guidelines that govern the development process of a product. For this reason, it is often used as a "wrapper" for other methodologies, such as XP or CMM (Capability Maturity Model) - that is, it is used to guide the overall process of development when using these other methodologies.
The SCRUM values are derived from the Agile values of software development.

Figure 1: General SCRUM Process
The scrum process has 3 main phases.
In this phase, the project is planned and high-level design decisions are made.

Figure 2: The SCRUM Sprint Cycle
The sprint cycle is an iterative cycle of about 3-4 weeks, in which the actual development of the product is done. It starts out with a Sprint Planning Meeting to decide what will be done in the current sprint. Then the development is done. A sprint is closed with a Sprint Review Meeting where the progress made in the last sprint is demonstrated, the sprint is reviewed, and adjustments are made to the project as necessary.
The sprint cycle is repeated until the product's development is complete. The product is complete when the variables of time, quality, competition, and cost are at a balance.
In this phase, the product's development is brought to a close, and the product is released.
The SCRUM team consists of 2 groups - the interested team, which consists of people who are interested, but who will not be doing the work, and the working team - people who are interested, and will be doing the work on the project.
A team typically has no more than 6-9 working members, although SCRUM has been successfully used with more members. If there are more members than manageable, the project should be broken into multiple sub-projects, each focusing on one, self-contained area of work (one for QA, one for documentation, etc.). There should be people to act as bridges - that is, to attend the meetings of more than one SCRUM team, and act as a communication bridge between the teams. Members of teams that are closely related/involved with each other should sit in on the other teams' SCRUM meetings.
The team's leader is called the Scrum Master. He should be one of the members of the working team - that is, he should be one of the people who is actually doing the work on the project. The SCRUM Master measures progress, removes impediments, and leads the team meetings.
The product is developed in a series of 1-to-4-week iterations, or sprints. Before a sprint is begun, a Sprint Planning Meeting is held to determine what features are to be implemented in that sprint. The sprint has 4 major steps:
A prioritized list of all the desired changes to the product being developed, put together by the product owner. See Figure 2.
A list with items that will be completed in the current sprint, taken from the product backlog. See Figure 2.
A 15-minute SCRUM meeting is held every day. The SCRUM Master asks the three questions, and all members of the team and interested parties take part and give feedback. The meeting should be held at the same place every time, so that people know where to go.
A unit test is an automated test that ensures that the functionality required for a certain area of a project is implemented, and that there are no breaking changes that have not been taken into consideration. See http://www.xprogramming.com/software.htm for a list of unit testing frameworks for different languages/platforms.
Impediments are things that get in the way of the progress of the project. The SCRUM Master is responsible to look for and remove these obstacles so that they do not slow down or impair the project.
The Scrum Master asks the developers 3 important questions at every SCRUM meeting:
The person who commissions the project, and defines the requirements and priorities for the product.
A meeting at the beginning of a sprint where the sprint is planned. Items from the Product Backlog are selected to be completed in the sprint, based on the priorities set by the Product Owner.
A sprint is closed with a Sprint Review Meeting where the progress made in the last sprint is demonstrated, the sprint is reviewed, and adjustments are made to the project as necessary.
Jeff Sutherland is one of the originators of SCRUM, and was one of the first people to apply SCRUM to a real-life project.
Ken Schwaber is one of the originators of SCRUM.
Mike Beedle has successfully used SCRUM in numerous large-scale projects, and, together with Ken Schwaber, wrote the book Agile Software Development with SCRUM.
SCRUM tutorial, XP with SCRUM, case studies, SCRUM certification
http://www.controlchaos.com/
Part of the Agile Alliance site family, and has a large article base on SCRUM.
http://www.scrumalliance.org/
A good introduction to SCRUM.
http://www.mountaingoatsoftware.com/scrum/
A detailed and definitive paper on SCRUM.
http://www.jeffsutherland.com/oopsla/schwapub.pdf
Covers the issues involved with introducing an agile methodology to a development team or company.
http://www.mountaingoatsoftware.com/articles/IntroducingAnAgileProcess.pdf
Compares different agile methodologies, and helps you determine what methodology or mix of methodologies is right for your team.
http://www.netobjectives.com/events/download/rup_xp_scrum_pc_030326_ppt.pdf
A close look at SCRUM, with numerous case studies. A must-read for managers and developers alike.
A look at various Agile software development systems, including SCRUM. Numerous case studies, and interviews with some of the leaders in the Agile development arena.
A case study on a situation where SCRUM helped to make a development project a success even though the development company was downsizing.
http://www.mountaingoatsoftware.com/articles/UpsideOfDownsizing.pdf
Some stories of success with SCRUM
http://www.sdmagazine.com/documents/s=7147/sdm0206a/sdm0206a.htm
This is an article on agile meetings, with a large section on how agile meetings helped real-life teams to prevent problems by communicating with each other.
http://www.intp.us/risingl1/articles/STQE.pdf
Links to downloads of unit testing software for most common languages.
http://www.xprogramming.com/software.htm
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 18 Aug 2003 Editor: Marc Clifton |
Copyright 2003 by Marc Clifton, J. Dunlap Everything else Copyright © CodeProject, 1999-2009 Web15 | Advertise on the Code Project |