What is Scrum?
Scrum is an iterative, incremental process for developing any product or managing any work. It produces a potentially shippable set of functionality at the end of every iteration. It’s attributes are:
- Scrum is an agile process to manage and control development work.
- Scrum is a wrapper for existing engineering practices.
- Scrum is a team-based approach to iteratively, incrementally develop systems and products when requirements are rapidly changing
- Scrum is a process that controls the chaos of conflicting interests and needs.
- Scrum is a way to improve communications and maximize co-operation.
- Scrum is a way to detect and cause the removal of anything that gets in the way of developing and delivering products.
- Scrum is a way to maximize productivity.
- Scrum is scalable from single projects to entire organizations. Scrum has controlled and organized development and implementation for multiple interrelated products and projects with over a thousand developers and implementers.
- Scrum is a way for everyone to feel good about their job, their contributions, and that they have done the very best they possibly could.
How does it work?
People
1. Product Owner
person who will be responsible for prioritising work on the product. person who knows what is required of the product.person that is a good communicator and able to convey requirements.person who is committed to the success of the product, such that they are willing and able to dedicated a reasonable amount of time to its development.
2. Scrum Master:
responsible for supporting the Scrum Team, coaching and guiding them through this process, and removing any impediments blocking their progress.
The Scrum Master is responsible for facilitating the Scrum meeting. Keeping it focused. Keeping it timely. Keeping it ‘on topic’. The Scrum Master is also responsible for removing impediments. Impediments raised during the Scrum can be noted on the whiteboard for the Scrum Master to deal with.
The Scrum Master does not have to solve all impediments personally. They can delegate. But they are responsible for ensuring the impediments are addressed. And addressed quickly. A key part of the Scrum Masters role is to protect the team and keep them focused on the tasks in hand.
3. Scrum Team:
Team that is "committed" to delivering
Process
Step 1:
Get the Product backlog:
Items on the Product Backlog should ideally be expressed in business terms that are of some value to the user (or customer, or business). Not as technical tasks.
It also contains technical issue or risk like "security.. etc.." . All the things that can cause sleepless nights.
Step 2:
Prioritize
Only the Product Owner can prioritise the Product Backlog
Order of product items determines the priority.
Step 3:
Estimating Product backlog:
Estimate your product backlog in points. Not in units of time . [ Its just a guestimate ]
Gives measure of "how big the item is" not "how long it will take"
Relative estimates using fibo numbers. Choose the easiest task and give it a 2 point. Then increasing work through items and assign points.
This should be done by scrum team (exclude product owner)
Step 4:
Reshuffle
Based on the points (difficulty of the task) product owner can reshuffle the product backlog
At this point team has list of product items (product backlog)
Step 5:
Sprint Planning
Developers, Testers, Product Owner, Scrum team, Scrum master
Choose Sprint duration (max 1 month) ( this should be consistent across all future sprints)
Target backlog : subset of product backlog items that needs to be delivered.
Have stretch tasks that are not expected by the product owner to be completed.
Product Owner presents each item and a discussion develops. Everyone comes to term with what is required.
Step 6:
Sprint planning meeting 2
Optional for QA and Product owner to attend
Scrum team discusses on how its going to deliver each product item
Arrive at available time : #members * #hours in sprint duration
for each feature break into tasks
Include all tasks necessary to make the Product Backlog item 100% complete – i.e. potentially shippable –
Estimate each task in hours. Each task should NOT be more that 1 day
Add up all the task estimates for the selected Product Backlog.
If its significantly over the team’s Sprint Budget, reduce the number of Product Backlog items .the Product Backlog was in priority order, so if possible it should be the lower item(s) on the backlog that are removed from the Sprint
Step 7:
Collaborate
Columns on White board:
Product Backlog, Tasks To Do, Work In Progress, Ready To Be Verified and Done!
The Scrum team makes its own decisions during the Sprint.
"Least" manager intevention !
Ideally, once a Scrum team has committed to a Sprint, they should be left to focus on delivering what they’ve committed to. Constant changes to priorities prevent a development team from being fully productive and in the worst case can prevent a development team from delivering at all.
Priorities can be changed during the sprint but cost of completing it should be double the actual cost because it disrupts the teams flow !!
Step 8:
Daily Scrum meeting:
1. What have they achieved since the last meeting? (yesterday)
2. What will they achieve before the next meeting? (tomorrow)
3. Is anything holding up their progress? (‘impediments’)
Keep to 15 minutes
ONLY the scrum team + scrum master meets.
Scrum master should help in removing impediments be it technical or business.
Step 9:
Burn-down chart
Take all the tasks to be delivered in a particular Sprint in Scrum, i.e. your Sprint Backlog . On your Sprint Backlog, enter the estimated time to complete, which of course at the beginning of the Sprint is the same as the original estimate.
Each team member can be responsible for updating their own ETC’s on a daily basis before the Scrum.
Be honest!
Plot progress visually on a graph
You get to see where the project really is, every day, in all its techni-colour glory!
Step 10:
Review and correct mistakes at the end of scrum