An Agile approach to software development
In life, change is inevitable. Oftentimes, the journey we have planned out meticulously in our heads doesn’t go to plan, and the roads we had endeavored to take to lead us to the desired outcome can change at the last minute, leading us to better paths with more delightful outcomes. Before you wonder why we’re getting all philosophical on you, there is a point to this. Our experience over decades of UK software delivery shows that things can and will change throughout the course of a project — whether that’s the prioritisation of tasks, the competitive environment, changes in personnel, the introduction of new and better technology, and more. This is why we use Agile.
Instead of plodding forward with a fixed project plan that could be outdated or unsatisfactory by the time of launch, Agile project management is a proven methodology that recognises the dynamic nature of software development. It takes an iterative approach to software development projects that ensures feedback can be acknowledged and acted on rapidly at each stage of a sprint of the product cycle. With all its benefits, it is no wonder that in 2021, 86 percent of software development teams used the Agile methodology to create their products.
Factors such as user feedback, technological advances, and commercial activities are ones that play a huge role in ensuring the overall quality of an end product. And they must be acknowledged in order to create the best outcome possible for all those involved.
But how does the Agile approach to software development enable this? Well, compared to more traditional frameworks such as Waterfall where development teams tend to consider the needs of the users and then build the software all at once, Agile is defined by its incremental approach to creating software.
The original Agile Manifesto states that Agile has 4 core values at the heart of Agile project management:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
What’s clear from the above core values is that Agile software development is a much more collaborative and people-driven process. The ultimate goal is to embrace and adapt to change while delivering functioning software as efficiently as possible.
Working with your Agile team
A typical Agile software development team comprises of:
- The development team: The ones who deliver the work
- The product owner: The one who sets a clear direction
- The Scrum Master: The one who holds it all together
When it comes to Agile project management, there are many important elements that ensure product success. Our process at Rocketmakers combines a broad roadmap (otherwise known as a backlog) for the key deliverables, with more accurate three to four week development periods (otherwise known as sprints). This helps us to estimate and plan much more accurately and prioritise and refine tasks more effectively as we are looking just a short distance ahead.
There are multiple methodologies that can be used in the Agile world, from Scrum and Kanban to Extreme Programming (XP) and Crystal. The Rockermaker’s process we outlined above focuses on the scrum methodology in Agile, which involves a selection of ‘ceremonies’ (the rhythm, routine, and structures of the Agile process) that empower and drive teams in software development. Let’s take a deeper look at each of the Agile ceremonies and the role they play in delivering a successful software project.
Agile ceremonies
#1 Backlog setup
This ceremony refers to creating a prioritised list of work for the development team based on the project roadmap and its requirements. The items that are deemed most important are shown at the top of the product backlog, allowing the team to know what to deliver first. A well-organised and well-prioritised backlog enables iteration planning to be much more seamless as well as clearly identifying all the elements that a development team will be spending time on. All in all, this helps to set and manage expectations with everyone involved including stakeholders.
#2 Backlog grooming
Backlog grooming, also referred to as backlog management and refinement, refers to regular, ongoing sessions in which backlog items are reviewed and prioritised by the team in order to validate requirements. Tasks during this ceremony may include;
- Reviewing and recording the priority of items
- Removing outdated user stories and tasks
- Adding new user stories based on fresh data and user insights
- Splitting user stories that are too large
- Identifying roadblocks and minimising risks
The aim of backlog grooming is to ensure the backlog is completely up-to-date and that the items included are well-prepared for upcoming sprints (which we will discuss next).
#3 Sprint planning and estimating
The purpose of sprint planning is to set the team up for a super successful sprint. It is a Scrum event in which the product owner and development team come together to work through the prioritised product backlog and, from this, define what can be delivered in the upcoming sprint and plan on how that work will be achieved.
Short 'refinement' meetings are often undertaken throughout the sprint in which the team estimate work by adding 'points' to stories (which signify their complexity). Sprint planning itself is a very short meeting where we figure out the capacity of the development team for the next sprint and adjust the upcoming sprint workload to match. The product owner will be the port of call for answering any questions or clearing up any assumptions that the development team may have about the work. This is necessary to ensure that the development team have everything they need to be able to forecast the amount of work they need to accomplish during the sprint.
#4 Daily stand-ups
Once a sprint has commenced, daily stand-ups are introduced in order to track the progress of all those involved including the software development team, the scrum master, and the product owner. The stand-ups are a daily event that is typically held in the morning and should last no more than 15 minutes. This ceremony provides an opportunity for team members to quickly inform everyone of their progress, answering questions such as; “what did I complete yesterday?, what will I work on today? And am I experiencing any roadblocks?” The meetings are called “stand-ups” as the meetings are typically held whilst standing to keep the meeting short and concise. Ultimately, these daily updates help those involved take accountability for their progress as well as voice any concerns.
#5 Sprint review
Next up is the sprint review, which involves the team demonstrating their work from a finished sprint with all those with a vested interest in the project — namely, stakeholders, clients, and end-users, or sometimes just with the product owner. The review typically covers the work the team has accomplished as well as any work they were not able to deliver. This event offers the opportunity to share an update on the team’s progress and to also present any new product functionalities to those in the meeting for feedback. Using this feedback, the product owner will develop and re-prioritise the backlog for upcoming sprints.
#6 Sprint retrospective
Once a sprint review has been carried out, the team will need an opportunity to get together and reflect on the work they have completed and showcased. The ‘sprint retrospective’ is a platform to do just that. It offers the team a blameless space to learn from their past experiences during the sprint in order to continuously improve, from one sprint to the next. During the retrospective meeting, there should be open discussions around the below questions in order to gather actionable feedback:
- What worked well in the last sprint?
- What didn’t work so well?
- In the next sprint, what can be done differently to improve?
The above ceremonies are just a few examples of how Agile can be applied to not only software development, but all kinds of projects. Instead of focusing purely on just getting a product launched, an Agile software development team works in smaller increments, with continuous feedback, improvement, collaboration, open communication and adaptation at the heart. The result? A people-first approach to software projects that brings with it increased stakeholder engagement, more predictability around costs and timings, increased adaptability, improved quality and more.
Are you looking to launch your next project? At Rocketmakers, we take an Agile approach to software development that enables us to build the right product, and build the product right. Get in touch with our team today to discover more.