Introduction to Software Development with the SCRUM Model
SCRUM is a product development framework developed by Ken Schwaber and Jeff Sutherland. This is a model which is being followed by many top companies around the world and as an IT professional it is important for us to be familiar with this model in order to keep ourselves competitive in the industry.
SCRUM as a Framework
The SCRUM does not recommend any tools or techniques, rather it is a framework providing a set of guidelines to be followed. The rules should be followed strictly and any required techniques / tools can be incorporated to facilitate SCRUM based product development.
The SCRUM model recommends an inspect and adapt policy. This means the progress of the SCRUM team should be inspected as required and if any deviation is seen then adaptive measures should be taken soon to bring down the deviation.
Unlike other development models SCRUM employs an incremental release. A perfectly workable unit of the product is called as an increment and the SCRUM team releases each increment iteratively. This incremental delivery model brings in the agility, opens up the gate for receiving timely feedback and an ensured availability of a working product at all times.
Sprint is the heart of the SCRUM framework. It is the development period for the delivery of incremental on a particular product. A sprint is a time bound activity, which should be less than a month. There will be multiple sprints planned for the product development and continued in an iterative manner.
Definition of “Done”
The done criteria should be defined at the organization level if the organization runs all the teams in scrum or the SCRUM team is responsible to define the “Done” criteria. The done criteria should be clear and transparent to the team. It is to review and certify a backlog as done or not.
The SCRUM Team
A particular SCRUM team is responsible for a particular product and following are the different members that form a SCRUM team.
1. Product Owner
2. SCRUM Master
3. Development team
The product owner is the one responsible for creating, maintaining and prioritizing the product backlogs. He is also responsible for ensuring that the team has a clear understanding of the backlog items and they have everything ready to start off. The product owner should be a single person and not a panel.
A SCRUM master is one who ensures the team follows the SCRUM guidelines. He is termed as a ‘servant leader’ since he provides required services to the team and also leads in facilitating the team to run the SCRUM events as required.
The development team is the group of members working on the delivery of the increments of the product on each and every sprint. This team is a self-organizing one i.e. no one tells or influences the development team on how to manage or organize their work. The development team is cross functional with all the skills to deliver the increments. There is no hierarchy of titles defined in the development team they are termed as either developers or engineers in common. The recommended size of the development team is anywhere between 3 and 9.
There is a definite set of artifacts required for running product development through SCRUM and they are the following.
1. Product Backlog
The product backlog is a list of items that the product should have. It is basically a breakup of the end product. The product backlogs are created, maintained and prioritized by the product owner.
2. Sprint Backlog
This is a set of backlogs picked by the team from the product backlog for a particular sprint. The sprint backlog is the one which the development team is going to release as a product increment at the end of a sprint.
3. Sprint progress monitor
Another important artifact is the one to monitor the sprint progressing. It showcases progress of the team on the sprint backlogs against the amount of time left in that sprint. It is usually tracked through a burn down chart.
Ceremonies in SCRUM
There are a few events or ceremonies that the SCRUM involves. These ceremonies help in running SCRUM as intended. All these events are time bound. Following are the events prescribed in Scrum. The Scrum Master is responsible for organizing these events and ensures that it is followed religiously by the team.
1. Sprint Planning
This event occurs before the start of each sprint. This involves the team creating the sprint backlog and plan on the execution of the sprint backlog to release an increment of the product at the end of the sprint.
2. Daily Standup
This event occurs daily at the start of the day where the team members share the following with everyone.
a. What I worked on yesterday?
b. What I am going to work on today?
c. Are there any impediments that I foresee, which could hinder my work?
This event is a short one and should be a maximum of 15 minutes.
3. Sprint Review
A sprint review is an event that should be carried out at the end of a sprint. It is to review on the backlogs addressed in that sprint and will also involve providing the demos to the main stakeholders. This is when the team demonstrates that the sprint backlogs or the increment have met the “Done” criteria.
This is an important event, which shouldn’t be neglected. It is to inspect how the last sprint went and to know of the things which went right and which did not. It provides an improvement opportunity for the team to improve in the upcoming sprints. This event should be carried out at the end of a sprint and before the start of the next sprint.
I hope this article has provided a good introduction to the SCRUM framework. As rightly said by Ken and Jeff, the SCRUM framework is easy to learn but difficult to master. SCRUM teams will only master it with practice.