Agile methodologies accept that in most cases, change is inevitable during a project. We cannot predict exactly what will happen along the way. Instead, we collaborate with the users and let requirements and solutions evolve and plans adapt as we learn more.
One of the most common agile frameworks is Scrum, where we work in short iterations (1 – 4 weeks), called sprints. At the end of each sprint, the team delivers a potentially shippable release of the product.
A scrum team consists of a product owner, a development team and a scrum master. The development team is small (3-9 people), cross-funtional (contains all skills needed to deliver the product) and collectively responsible for the work in the sprint. They self-organise to do their work in the most efficient way.
The product owner represents the users and customers and decides what to deliver. One of their responsibilities is to maintain the product backlog, the prioritised list of features we intend to deliver. Requirements are created just in time, so items at the top of the backlog, which we intend to develop soon, are more granular and specific than those towards the bottom.
At the start of each sprint, we hold a sprint planning meeting where the product owner and the development team agree a sprint goal based on the top product backlog items and what is achievable. This goal is fixed for the duration of the sprint and cannot change, unless the sprint is cancelled which is very unusual. In the sprint planning meeting, the development team also create their sprint backlog, the list of tasks they need to complete to meet the sprint goal. The sprint backlog often takes the shape of a physical scrum board with index cards or sticky notes representing tasks, placed in columns to reflect their status, allowing everyone to quickly see what’s left to do and who is doing what.
Every day, the development team holds a daily scrum meeting where they organise their work for the day. Typically, this is done through each team member answering three questions: What did you do yesterday? What are you doing today? Is anything blocking you? This meeting should never be longer than 15 minutes and, to keep it as short as possible, most teams stand up throughout the meeting.
The scrum master makes sure that the scrum team is as productive as possible. They do this through ensuring the product owner and the team follow the scrum principles and through removing any impediments preventing the team from meeting their goal.
At the end of the sprint, a sprint review meeting is held where the team demonstrates the items completed in the sprint. Stakeholders are invited to give feedback and the product owner may add or reorder items in the product backlog based on the outcome.
After the sprint review, the team hold a sprint retrospective where they look at what went well and how they could improve the way they work together in the next sprint.