Agile 101
In this article, we will cover key concepts and terminology you will encounter in a Scrum project including the reasons why Scrum might be adopted and real-life implementation of the framework.
Introduction to Agile
So you’ve got involved in your first software development project and the team have started throwing around words like ‘sprints’, ‘product backlog’ and ‘scrum’. Let this be your introduction to Agile software development practices and Scrum as a framework. In this article, we will cover key concepts and terminology you will encounter in a Scrum project including the reasons why Scrum might be adopted and real-life implementation of the framework. To dive into more detail about the Scrum framework, Scrum.org is a great starting point. There are many articles available online exploring key concepts, implementation advice and practical tips. We will cover the framework at a high level to illustrate the overall structure of the methodology, including practical implementation considerations and benefits.
What is ‘Agile’ Software Development?
Agile is a principle that encompasses many different methodologies, of which Scrum is one. In an Agile project, there is a focus on collaboration and continuous improvement. The Agile manifesto outlines 4 key values:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan When working in an Agile environment, these key values are reflected in the methodology or framework that you choose to use. The Agile way of working was created in response to the shortcomings of traditional Waterfall project methodologies. In a Waterfall environment, business and technical requirements for a project are defined upfront before any work can begin on the product. In practice, this usually resulted in the end product not being delivered for several years, during which time the requirements had changed or been misunderstood. Customers may be delivered a product after a long wait that did not match their expectations, despite a signed off requirements brief. And so the Agile approach was created to try to mitigate these issues. By focusing on continuous feedback and building change into the plan, the end product was more likely to reflect the needs of the customer. Given the fast paced world which we now live in, the ability to react quickly and pivot is paramount. As such, an Agile approach to software development facilitates delivering value quickly and responding to changes.
What is Scrum?
Scrum is a specific methodology commonly used to implement an Agile way of working. The Scrum Guide, created in 2010 and continually updated, captures the structure of this methodology. Much like Agile, Scrum has a set of principles that the process adheres to. These are made up of Pillars and Values, each of which has a focus on transparency and adaptability. Make sure to read through these in the Scrum Guide. Scrum has a specific structure for the team involved and how this team works together to deliver software. If you are working within a Scrum Team is it essential to know your role and responsibilities within the framework.
The Scrum Team
Within a Scrum Team there are 3 defined roles:
- Developers These are the people that create the valuable piece of work that is to be delivered. Note that this does not just mean software developers; this will include designers, testers, or any other specialities required to deliver the work.
- Product Owner This is a single individual who is responsible for defining the work that is to be done by the developers.
- Scrum Master This is a single individual who enables the team to work in the Scrum framework. They help facilitate the key events and activities prescribed by the methodology. There are no other roles within the framework, but that doesn’t mean you may not be contributing in some other way. The Product Owner will be sourcing requirements from various groups of stakeholders. The technical architect may be consulted for advice by the developers. The support team could attend some ceremonies to learn how new features behave. The day-to-day work is still owned by and completed by the Scrum team.
The Scrum Ways of Working
The Scrum Team then work in a set cadence of Sprints. A Sprint is a fixed length of time, usually between 1 and 4 weeks. At the beginning of a Sprint, work is planned to meet the goal of the Sprint. At the end of the Sprint, a piece of value is delivered to meet the Sprint goal. Within the Sprint, there are ceremonies which facilitate this work being done:
-
Daily Scrum, also known as Standup, where the team shares what they are working on and any blockers to delivering the work.
-
Sprint Planning occurs at the beginning of the Sprint to determine the pieces of work that should be tackled.
-
Sprint Review occurs at the end of the Sprint where the results of the Sprint are shared with a wider group of stakeholders, with the purpose being to gather feedback and have transparency over what is being built.
-
Sprint Retrospective also occurs at the end of the sprint and allows the Scrum team to reflect on how the Sprint went. This is used to inform how the next Sprint can be improved.
The work to be done in a Sprint is captured in the Sprint Backlog. This is an ordered list of work items, usually stored in a tool like Jira or Azure DevOps. The Sprint work is pulled from the overall Product Backlog, again which is an ordered list. The Product Owner is responsible for making sure that the Backlog contains relevant work items and is ordered based on the current known priorities.
Scrum in Practice
Using the Scrum framework, a software development project can be run ensuring that there is full transparency of work being developed and that the project can be adapted to changes in requirements as new information is discovered. Scrum focuses on collaboration and continuous improvement, helping teams become more efficient in delivering valuable pieces of work. In practice, many companies use some variation of the Scrum framework, choosing the elements that work best for the kind of project they are working on. For example, Scrumban, a mixture of Scrum and Kanban, is growing in popularity. SAFe is a framework over the top of Scrum to support its working in larger businesses with many cross-project dependencies. For all its benefits, Scrum is not a magic solution to fix all project woes. There are some common but avoidable, challenges seen in projects that use Scrum.
Waterfall Requirements
Scrum encourages regular review of requirements, knowing that we cannot define everything upfront before the project has begun. If this sentiment is not carried through when working through the project, the result can still be that the incorrect functionality is built.
Product Owner by Committee
The Product Owner role is to be filled by a single individual who has the final decision on all backlog and requirements questions. If multiple people are fulfilling this role for a team, it can slow the pace of work if conflicting answers are given.
Estimation Challenges
A Scrum project assumes that all of the information is not known upfront. As such, estimating the work involved in delivering the project can be challenging. With requirements changing, delivery timescales can shift. Whilst the overall project will deliver more value, communicating these uncertainties can present a challenge for the team.
Summary
We have covered the key concepts and ways of working in the Scrum methodology, an Agile framework for software development.
Keep reading
More practical writing on software delivery, architecture, integrations, AI, and maintainable systems.
User Stories: Communicating Product Requirements
When working on an Agile software development project, the requirements that the product should meet are commonly captured as User Stories. A User Story is a way to describe the functionality that the product should deliver from the perspective of an end user.
Beth King 15 March 2024
Demystifying Digital Transformation
Join us on a journey to demystify digital transformation, as we break down its complexities and provide a comprehensive understanding of what it means for businesses in today's ever-changing technological landscape.
Ed Brown 7 February 2024