An introduction to Scrum
For about a year now I have been developing product using the scrum methodology. Scrum is an iterative, incremental process for developing any product or managing any work. At the end of every iteration we have a potentially shippable set of functionality.
Early, last year I was developing product using the regular waterfall model where change was resisted by everyone. No one involved in the development process could manage to accommodate a change and even the smallest of change needed a change request. A change request would mean that the change will have to wait for more than a couple of months before it can be implemented in the product. It was a real painful process.
Then came the day we decided to try something new, something different and something really refreshing. We changed the way we work and we changed the way we look at change. Instead of working on a project as a whole we work on smaller tasks and build the product gradually. We decide on the amount of work that we are going to finish in the next couple of week. At the end of it we have a demonstrable product ready and get it reviewed. If something needs to be changed then its noted down immediately and the change is taken care of in the coming weeks.
The team meets everyday for about 15 minutes and every team member answers the following three question
1. What I did yesterday?
2. What am I going to do today?
3. What are the blocking issues?
This meeting is called as the daily stand-up meeting. Its named as “stand-up” because no one sits in this meeting so that people don’t move away from the agenda of the meeting. By the means of this meeting everyone in team knows about the work that every other team member is doing. If someone has any blocking issues then its brought to the notice of everyone and blocking issue is resolved as soon as possible.
Every team has a scrum master. Scrum master’s primary responsibility is to resolve the blocking issues as soon as possible and see to it that there is no friction among the team members.
Many organizations have successfully used Scrum in thousands of projects to manage and control work, always with significant productivity improvements. Scrum wraps an organization’s existing engineering practices; they are improved as necessary while product increments are delivered to the user or marketplace. As heard about Scrum, “oh, that’s just my idea X by another name”. Except, Scrum is spelled out as values, practices, and rules in a development framework that can be quickly implemented and repeated.