codeproject
Introduction
As a brief introduction, Scrum is an agile process for software development. With Scrum, projects progress via a series of iterations called sprints. Each sprint is typically 2-4 weeks long. Scrum is ideally suited for projects with rapidly changing or highly emergent requirements. I have found it ideal for in-house development though it's equally recommended for third party clients because of rapid change of requirements.
Introduction to Terms
Scrum team | Scrum team consists of product owner, scrum master, developers or anyone who is related to project.
|
Product Owner | In an ideal situation, a product owner is your stakeholder or any representative from client. However, as in our sprint planning, most often we don't find them present for meetings so that part goes to the Project Manager. Again product owner could be anyone who is concerned the most with your project. :) |
Scrum master | Scrum master could be your team lead or again project manager if you luckily find product stake holder present in the meeting. Scrum master deals with the burn down charts, daily scrum meeting and sprint planning, etc.
|
Product backlog | The product backlog is a prioritized features list containing every desired feature or change to the product. |
Sprint Planning | Sprint planning is a meeting ideally not more than 4 hours. But I have seen some people take it too long and waste their whole day. In sprint plan, developers, designers, scrum master, products owner or anyone who is concerned with the project or with those tasks are present.
|
A Practical Example: How We Do Sprint Planning?
Let's suppose we have one Project Manager as a product owner (In most cases, we don't find stakeholders, customers present all the time), then a scrum master (can be your team lead) then we have a team of 2 developers, 1 designer and 1 database admin.
Note that I am using developer1 as a scrum master. as show in the figure below:
Story Points
Let's suppose we have discussed in our sprint plan total six tasks. A story point can also be represented as a day but a story point is actually the amount of time you can put to work on any specific story or task.
In other words, we have a total of:
5 + 3 + 7+ 1+ 3 + 6 = 25 points
Man Days
You can always do from 2-4 week sprints, however I prefer 2 weeks of sprint planning. Imagine in 2 weeks of sprint plan, each member has 14 man days. But we always ask in sprint plan if any of our team member has booked their annual leave. Let's suppose developer1 has booked 3 annual leave days, developer2 booked 4 annual leave days, designer booked 2 annual leave days where database admin has no annual leaves booked. In this case, we have:
Team member for 2 weeks sprint (14 days) | Man days |
Developer1 | 11 |
Developer2 | 10 |
Designer | 12 |
Database Admin | 14 |
Total Days | 47 |
In this, we have total man days = 51
Focus Factor
Now let's suppose we have focus factor as 50%.
Focus factor is basically the amount of time we can give to our stories (tasks) in our next 2 weeks of sprint. We use a "focus factor" to help account for all the interruptions we will invariably have. When we plan a sprint, we multiply the ideal man hours available in the sprint (40 hours * 2 weeks * x developers) by a percentage such as 0.8. That calculation tells us how many hours worth of product backlog items we can commit to for the sprint.
Estimated Velocity
( Available man days * Focus factor = Estimated velocity )
in our case, we have:
47 * 0.50 (50%) = 23 story points
So our estimated velocity for the upcoming sprint is 23 story points. That means the team should add stories to the sprint until it adds up to approximately 23. In this case, we will remove our task 5 which can be less important and may not fit in this scrum and we will move it to our product backlog.
Scrum board
And that is how our scrum board will look like:
Not Checked Out
| Checked Out
| Done
|
| | |
I will update you regarding the burn down chart and daily scrum meeting in my next post.
References
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.