Monday, April 20, 2009

Overview of Scrum philosophy

One of the most popular agile methods is Scrum. It's one of the main working framework used by hundreds of companies among which Microsoft, Yahoo!, and Google.
Scrum as iterative development method has been developed in the 80’s and 90’s. According to (Takeuchi and Nonaka, 1986), projects using small, cross-functional teams historically produce the best results. These teams are like the Scrum formation in Rugby. Scrum has been practiced mostly by Manifesto authors Ken Schwaber, Jeff Sutterland and Mike Beedle. Scrum as a management process for managing product development is not used just in software development, but can be adapted for use for different types of projects.
According to Ken Schwaber, Scrum is used for complex work in which it is impossible to predict everything that will occur. Accordingly, Scrum simply offers a framework and set of practices that keep everything visible. This allows Scrum’s keep the project moving toward the desired goals. Scrum helps in making things transparent by encouraging communication, embracing change and improving productivity. In order to work as Scrum suggests, the entire team must posses solid knowledge in analysis design, implementation, testing and documentation.
The primary goal of Scrum is to organize teams and deliver software that provides the highest business value. It concentrates on prioritizing work based on business value, amending the beneficiary of what is delivered, and enhancing revenue. Scrum as a process is incremental. Each increment is called sprint, where each sprint lasts for four weeks. Prior to the sprint, there is a sprint planning meeting where the user determines what features should be developed and followed in the next sprint. During the sprint, the team meets daily at the same time at a short meeting called a scrum or the daily stand-up meeting. Each team member answers three questions:
1. What did I do since the last Scrum meeting?
2. What do I plan on doing between now and the next Scrum meeting?
3. Do I have any obstacle?
After each sprint, a sprint review meeting is organized, where the team presents what they developed and the customer gets to see what was achieved during the sprint. Sometimes, a sprint retrospective meeting can be held, where they analyze the process and try to find out what went wrong and what can be improved until the best solution is found. Together, the Sprint planning meeting, the Daily Scrum, the Sprint review, and the Sprint retrospective constitute the empirical inspection and adaptation practices of Scrum. Schwaber uses the figure below to visualize all steps defined in Scrum.


Nowadays, many cutting edge and leading Silicon Valley companies are practicing Scrum method in applications development to reduce the time to the market and providing a stable platform for the web that should be able to take in new functionalities with as little changes as possible.