In 'The New New Product Development Game'1, authors Hirotaka Takeuchi and Ikyjiro Nonaka use a rugby game metaphor to describe a development approach. In rugby the ball is passed within the team as it progressing to the touch line. This analogy may better serve today's competitive requirements.
The first mention of Scrum in the software context appeared in 'Wicked Problems, Righteous Solutions' by DeGrace and Stahl2. Although Scrum comes from rugby, its meaning closely matches the huddle in American football where strategy is quickly discussed during the game.
Scrum is an agile process allowing teams to focus on delivering the highest business value in the shortest possible time. Teams can rapidly and repeatedly inspect actual working software after every sprint, a period that lasts for two weeks to one month.
Business sets the priorities and development teams self-manage to determine the best way to deliver the highest priority features. After each sprint anyone can see the working software and they can decide to release it as is or continue to enhance in another iteration.
History of scrum
At Advanced Development Methods (ADM), Ken Schwaber identified product functionality that could be built in monthly cycles with smaller and more frequent deliveries. Using this approach he achieved huge gains in ADM's development efficiencies. He shared these results with Jeff Sutherland who was looking to improve object-oriented developments productivity. Then in a joint effort they formalised the Scrum process for systems development, which they presented at OOPSLA '963.
Jeff Sutherland started using Scrum at Easel Corporation in 1994 to build an object-oriented design and analysis tool. In the same year he took Scrum to IDX Systems Corporation and had over 600 people using it on various projects3.
Mike Beedle started using Scrum in 1995. He wrapped extreme programming (XP) with Scrum creating a union called XBreed. XP enhances the quality of the software developed and Scrum enhances the day-to-day management of the projects. Mike also identified development patterns that matched to Scrum activities he called 'scrum patterns'.
Users of Scrum
Scrum has been used in independent software vendors (ISV), Fortune 500 companies, and small start-ups for a wide range of projects including enterprise workflow systems, financial payment applications, call centre systems, applications development, and web news products. Scrum is also FDA approved for the development of life-critical systems like X-Ray and MRI systems.
The Scrum process
Scrum uses an empirical approach to project management that can be combined with agile development frameworks like unified modelling language (UML) and rational unified process (RUP). Scrum creates a quick, adaptive, creative, and self-organising environment that lets teams work independently but cohesively to meet their goals3.
Scrum teams are formed based on functionality, architecture or applications and consist of up to seven members made up of programmers, analysts, users and a Scrum master who is ultimately responsible for the project success. Team members are permanent but can be changed between sprints. Scrum teams are self-organising.
The Scrum master represents management and is responsible for enacting Scrum values and principles. As a leader he ensures that the team is always functional and productive and always shielded from external interferences.
A product backlog contains items that the Scrum teams will work on. Members take items and placed them in a sprint backlog that defines the work for the sprint. A 'sprint' is analogous to an XP iteration and lasts for 30 days and always ends with executable, testable code. Changes are not allowed once a sprint has started. The constant duration leads to a rhythm in which the product is properly designed, coded and tested. Sprint activities get reviewed in monthly meetings3.
The product backlog is a list of all desired work on the project and is usually a combination of story-based work, and task-based work. The product owner is in charge of the product backlog and decides what the features of the product are and what the release date is. They will make adjustments to the list depending on business needs. They are finally responsible to accept or reject the work after each cycle3.
In a sprint, every morning starts with a 15-minute meeting, discussing project issues that Scrum masters must solve immediately. Only three questions are asked of each member: What did you do yesterday? What will you do today? What obstacles are in your way? Only pigs and chickens are allowed in the meetings and only the pigs can speak. Pigs are the sprint members and chickens are observers who have an interested in the project.
There is a sprint review at the end of every sprint. A sprint review consists of customers, management, product owner, engineers and the sprint teams who get to present what they have accomplished during the sprint.
Why Scrum works
Scrum is based on an empirical approach employing feedback mechanisms to continually monitor and adapt to the unexpected. This provides regularity and predictability of its outcome. It is straightforward and simple to use unlike a traditional methodology like 'method one' where the bureaucracy of the methodology can overwhelm the project.
Scrum, like other agile approaches from the Agile Alliance, does not concentrate on intense upfront planning but rather on the interactions of individuals in a team and how they respond to change. Its goal is to produce working software rather than comprehensive documentation and uses customer collaboration for continuous feedback over contract negotiation4.
Scrum is highly scaleable and ideal for teams split along geographic lines, making it ideal for project managing outsource teams.
Software development has always been hard to do and is becoming more complex everyday. Studies have indicated that average projects take twice as long as initially planned for. Trying to control an empirical process using a defined approach will result in failure.
Scrum uses an empirical approach of continuous discovery and adjustment in an agile way making it ideal for projects that have difficult and uncertain requirements, especially those in an ever changing business world. But like any new methodology in an organisation it needs an evangelist that creates the enthusiasm to keep using it for every project throughout the organisation. If that is done they will see very real benefits using Scrum.