( Bài viết cũ cách đây 2 năm, đã đăng trong internal wiki, hôm nay publish ^^ )
Scrum is a process skeleton which includes a set of practices and predefined roles. IMHO it has been inspired by other processes : XP (good practices), RUP, Waterfall (bad practices), etc… to become one of the best development processes nowaday (especially for experienced teams).
Nevertheless, you may find some terminologies in Scrum funny. The “Scrum” word itself is derived from rugby game, in which it means the rugby team forms a close-knit shoulder-to-shoulder formation to jointly move the ball forward.
Process – Scrum roles & jargons
who are committed to building software regularly and frequently. (e.g. the Scrum team)
+ Product Owner:
– Customer representative
– Prioritizes product requirements
+ Scrum Master:
– Primary job is to remove impediments to the ability of the team to deliver the sprint goal.
– Not necessarily the leader of the team (as the team is self-organizing) but acts as a buffer between the team and any distracting influences.
– Understands the benefits of the Scrum process to ensure that Scrum practices are used as intended.
+ The Team:
– Includes others in Scrum team, who have the responsibility to deliver the product.
– Usually 5-9 people with cross-functional skills.
who involved but not a pig. Usually they are informed of the progress. (e.g. stakeholders, managers)
A pig and a chicken are walking down a road. The chicken looks at the pig and says, “Hey, why don’t we open a restaurant?” The pig looks back at the chicken and says, “Good idea, what do you want to call it?” The chicken thinks about it and says, “Why don’t we call it ‘Ham and Eggs’?” “I don’t think so,” says the pig, “I’d be committed, but you’d only be involved.”
There are some minor variants. However, in every variant, the Chicken suggests that the two involve themselves in a scheme involving ham (or bacon) and eggs (some suggest a breakfast, others suggest a restaurant). In reply, the Pig always notes that, for the Chicken, only a contribution is required (as a chicken can simply lay an egg and then resume normal activities), while for the Pig a “total commitment” (or total sacrifice) is needed (as in order to make ham or bacon, the pig must be slaughtered).
Anyone can attend, but only the pigs (Scrum team) may speak.
short (usually 5-15 minutes), since everybody who attends has to stand up (not excluding chickens) ! It should start at the same time every working day (practically 15-45 mins after start working time) .
near the collaboration space, i.e. near the Scrum board enough to see the characters there.
Each team member tells everybody about his tasks, in 3 points:
+ What has he done since the previous stand-up ? (DONE’s yesterday)
+ What is he planning to do today ? (DO’s today)
+ Is there any obstacle preventing him from doing what he has planned ? (any IMPEDIMENT)
(two first questions give insight into how the project is progressing; the last question provide a basis for problem solving, however the Scrum Master should be aware of the context so that the stand-up may stay under 15 mins)
(max: 8 hours)
At the beginning of any Sprint (iteration 1-4 weeks), divided into two half:
+ Some of Product Backlog (user stories) will be chosen to be Sprint Backlog.
+ Business value of the Backlog is set by the Product Owner (client representative). That number represents PRIORITY: how Important the story is to the client.
+ Development effort of the Backlog is set by the Team. That number represents COMPLEXITY: how Hard to implement the story according to the average developer’s experience.
+ In this session, the Scrum team is divided into small groups (1-3 members per group). Each user story is broken down into concrete tasks, and for each task every group “votes” a number as “the estimated points” for the task.
+ Cards with number are usually used for displaying the “voted/estimated” points (Poker style, but Fibonacci-like numbers). One task point is implicitly considered 1 man hour, for simplicity. (note: non-Scrum Agile methodologies, such as XP, may use 1 man day for 1 story point).
+ If the points from the groups for the task are unanimous, or similarly (highest number is not higher than 1.5 the lowest number), the “final estimated points” is determined and marked into the task.
+ If the points of the group are not similarly (see above), the groups of highest number and lowest number will, in turn, tell the team why they think their number is suitable. After that all groups will re-estimate that task again. (this step may be repeated several times until a compromise is reached)
+ Total estimated points for a story should not exceed a predefined certain amount (20-40 man hours), otherwise the story may either be labeled as “technical story” or be broken into smaller stories to not violate that limitation.
Process – Burn-down chart
+ Burn chart is a graphical representation of work left to do versus time. Burn-down chart is always better than burn-up chart.
+ Burndown chart is not only useful for keeping track of the team’s progress, but it’s also effective for predicting when all of the work will be completed.
+ Over a number of sprints you will see how many story points the team can earn – the velocity. It helps to predict delivery times based on number of story points outstanding.
Process – Sprint review & retrospective
Is done at the last day of every Sprint
(max: 3-4 hours)
+ internal showcase for whole team (including chickens)
+ demonstrate what is being done
+ direct feedback (incomplete features do not count)
(max: 2-3 hours)
After review meeting. Each team member reflects on last Sprint 3 points:
+ what went well?
+ what could have been improved?
+ which improvement should be applied right next Sprint?
Myths and Facts FAQ
1/ Is Scrum that simple? I’ve worked with processes that are 10x more complex !
+ Yes, it’s simple enough to get acquainted and get started. But after applying Scrum for a while you may understand why it’s worth a KISS in software industry.
2/ Why is burn-down chart better than burn-up one ?
+ Because it is much more emotional powerful. The target is visually closer day by day, so the confidence that the team would actually meet the schedule increases dramatically. And the special feeling about hitting the number zero that helps people get excited about completing their work and pressing forward.
3/ What is the best tool for Scrum?
+ The Task Board (with its accessories). A normal board is already a very good tool for communication, especially in person. And… (to be continued)