Scrum is one of the best agile project methodology used to run projects. Following description of agile scrum will make it clear to you.
Lets take example of a project, your kid want you to build a game for him. Now that’s a big wish you want to fulfill. He says if he likes the game he will give it to other friends too.
So your kid and other kids are the users of the game and their wishes are project’s user stories. Suppose you kids puts down following user stories:
1. Game should be consisting of lot of action.
2. Game must have touch based navigation.
3. Game should have a cheat code
4. Game must run on his i phone
5. Game should have multiple weapons for hero and villains.
6. Game should have single hero
Now these are very descent bunch of user stories which are called product or project backlog. Which will make this game great.
Now we need a team to build this as you do not know how to code, control the project or to test, but you know what all user stories should go into the project and in which order, this role is of the product owner.
Now your wife is ready to facilitate, control, monitor and look that everybody gets everything they need to complete the game and work is going on smoothly as planned. Your wife can held meetings of developer who is next door geek, tester is his friend who always find mistakes in every game and make sure built game is released to your kid. Here your wife does the role of scrum master.
Now if your kid wants the demo where hero will fight with villain in hand to hand combat this will be first release of the game and now your team need to do release planning.
Now you have to gather all user stories that must go in this release to satisfy kids requirement. So product owner with team decides to develop first 2nd ,4th and 6th user story as others can be done later. These bunch of stories become release backlog.
But hey as developer kid asks for hourly money for his coding and you do not know how much time it will take to complete these stories. Hence now you divide these stories in small small work parts that can be measured in hours or days.
1. Develop background of game (4 days)
2. Develop hero character (3 days)
3. Develop villain character etc. (4 days)
If some user stories or work part take lot of time then you can further divide it. E.g. Developing game background can be divided into
a. Develop story about hero (4 hours)
b. Develop location of fight (4 hours) etc.
All this time finding exercise is called estimating when will our product ship to the kid.
Categorize all work parts which can be completed within one day into
1. 1 hour 2. 2 hour 3. 4 hour or 8 hour bucket. If any item of 3 hour comes then put it in 4 hour bucket.
Larger items also can be divided as 2 days, 3 days , 5days or 10 days. More time consuming items should be divided in smaller parts.
We have estimated work, now we will divide work into different ship ready parts. E.g. First we will complete background and test it. Time each part take is called as sprint. So a release plan consist of number of sprints from couple to dozen. Each sprint can be from 2 days to 30 days. Each sprint outcome should be tested and should be ready to ship. Hence once we complete all sprints we have first release ready to ship. If sprint is getting late then you may conclude that whole project is going to be late.
Sprint length is directly proportional to release cycle of product. Hence longer the release cycle of project longer the sprint length. Best way to track work done in sprint is burn down chart where x axis shows each day while y axis shows work remaining. Slope of the chart is burn down velocity i.e. productivity of hours/day. Using this rate we can forecast completion date of project or if we want complete project on time what should be productivity. Each team member should feed how much work he or she completed each day so that this chart will be ready to analyze.
Daily standup meeting of 15 minutes where developer kid and his tester friend will tell scrum master is Daily Scrum
1. What did I complete from yesterday
2. What are obstacles I faced
3. What I plan to do today
4. How can we solve obstacles like this
Once we finish all sprint backlog we should all come together and discuss what went wrong and how can we improve which is called as Scrum retrospective.