Thursday, May 27, 2010

Quick Introduction to Scrum - An Agile Methodology

Its time for me to share the Agile approach of software development which we have applied to our projects since more than 6 months. Its the way I can remember what I worked on to be referenced in future instead of looking for material in my laptop or web community.

We have been using Scrum approach for software development and I really found very impressive with the shippable product at the end of each sprints. Believe me this approach really works which I was not able to assimilate before we planned to implement the process.

To answer what is Scrum, its an Agile approach to software development where project progresses in series of Iterations called Sprints. Each Sprint is usually 2-4 weeks with typically 5-9 members with following roles:
  • ScrumMaster - can be thought as a coach to help team to use Scrum and keep team members from any distractions. 
  • Product Owner - representing stake holders.
  • Team -  self-organized cross-functional team consisting of Programmers, Testers, Designers, Analysts.

Activities of Scrum:
Following are the main activities that are spanned throughout the iteration.

Sprint Planning Meeting -
This is the first activity for the iteration. Attendees for this meetings are product owner, scrum master, the team, business analysts, architects, database designers, etc.

First task in the planning meeting is to identify the resource availability during the period of sprint (e.g. of 10 days (2 weeks) of development/testing activity how many days each resource is available). Assuming all working at 50% productivity (distraction, un-predictable task), we arrive at total story point for the sprint (e.g. 6 resource available all 10 day comes to 60. Working at 50% productivity come to 30 story points). Story point can be thought as number of days and each story is estimated by story points rather than hours.

The product owner usually identifies the user stories before the start of planning meeting to reduce the time of discussion. Story can be thought as a brief feature description of work to be performed (e.g. multi funding enablement for reports) from the product backlog that need to be considered for the current iteration. Product owner along with Business Analysts explains all the stories well in detail to the team in order for them to estimate the tasks. Its not required that team members should come prepared for the meeting. They can ask all required questions till every one is very clear to estimate the tasks.

Estimation is done using "poker game" (cards with 1, 3, 5, 8, 13, 20, 40 points) where team, product owner, scrum master individually raises card to show how many point they feel for the story. Advantage of this is that all the members in the team estimate (cross team estimation) the stories which helps reveal any unknowns and assumptions. Estimate not only contains development tasks, but also involves designing, testing, deployment etc..

Upon completion of Planning Meeting, scrum master sticks the stories on the story board. Story board is any white board where is divided into 3 columns viz. Planned, Started and Done. From the image below, you can see that the each story is further broken down into tasks and put on post-its.

Daily Scrum Meeting -
Updating soon....

Sprint Review (Demo) -
Updating soon....

Sprint Retrospective -
Updating soon....

1 comment:

  1. Looks amazing!!!! /I look forward to your feedback /thanks for this man it was very helpful.

    Scrum Process