Scrum, the basics
What is it? An iterative incremental process of product development from the Agile family. We are all tekkies here, so it’s assumed as a process of software development.
A-ha! So it is just another way of organizing one team’s work.
Well, not quite “yet another way of…”. It provides a framework for applying all the Agile good practices.
What can it do for me? It can help building quality products on time.
So you are saying that the requirements can effectively be changed while the team is implementing a project? And that there can be working sofware while they are building it?
What do I need to know in order to get started? There are some terms which will be used while analyzing / deciding / using Scrum, so it really is important to define them. Let’s get started…
Scrum is made of small iteration, known as Sprints. These are well-defined period of time adjusted to each team / organization, and can be anything from a week to a month long. They are meant to provide deliverables as a sum of features implemented in this period of time, and are presented to the ProductOwner who in turn decides what other features are to be implemented further in the next sprint and which actual features of the prototype are to be refined in the future.
Pig role: ProductOwner – this is the person which holds the business perspective. He/she knows what product is to be build, and what features it should have, but has no technical knowledge as how to build it.
Pig role: ScrumMaster – is the glue-maker. This one is the enforcer of rules. Ensures that the Scrum process is used as intended (all the Scrum rules, the implementation of the required items from the ProductBacklog, and all the programming practices which ensure the quality of software are respected) and lifts any barriers which come in front of the Team.
Pig role: Team – the hard-working people who build the actual product.
Chicken roles: these are the traditional Users, Business and Stakeholders. They are the ones which use and / or benefit of the product being built. In the Scrum process, they provide useful and relevant feedback while the product is being built.
How is work actually organized? All the good Agile practices must be applied inside the sprint iterations. During them, the usual iterative development processes take place (analysis of requirements, technical design, implementation, testing, deployment).
![]()
Every project developed using Scrum starts with a ProductBacklog, which is a set of features of the product, organized by importance (must-have, would-have, nice-to-have). Each of these 3 lists is then prioritized, and the result is a priority-ordered list of features, each having a very rough time estimate associated. Everyone can edit this list by adding new features. The ProductOwner is the one who defines priorities. The time estimates are extremely important for him / her in prioritizing the list.
The SprintBacklog is an extremely detailed document which provides information on how the team is going to implement the requirements for the upcoming sprint. Tasks are broken down into hours with no task being more than 16 hours.
Every day during a Sprint, a ScrumMeeting is held, following strict guidelines previously chosen to meet the specifics of the Team. It takes place always at the same location, has a fixed time on which it occurs, and must take no longer than a predefined period of time (usually 15 minutes). Only the pig roles arre allowed to speak, but anone can attend. Each pig roles should answer these questions:
- What have you done since yesterday?
- What are you planning to do by tomorrow?
- Do you have any problems preventing you from accomplishing your goal?
[...] remember what Scrum is: a way of developing software incrementally, each iteration producing shippable software. What [...]