It’s possible to build successful software in all kinds of ways but the need for better commercial outcomes has led to a shift towards modern work practices referred to as lean or agile.
Adopting a lean or agile product development process has its greatest benefits when including the entire organisation is included. This wholesale approach means that everyone from the CEO to the most junior members of staff are involved. Any decision making – from roadmap ideas to actual production deployments – is based on the key principles of agile, aiming to improve flow and waste elimination.
However, this isn’t always easy to do, especially when you need people from different departments and backgrounds to work in the same way. Due to the collaborative nature of software development, many businesses choose to start with the development team when introducing agile work practices.
Whether you are a startup with just a handful of people working together or a huge organisation with thousands of employees, agile management can help make the most of your business and make sure the work you deliver is of the highest standard.
But how do you go about building an agile team? There are some key principles that can help you make the most of the foundations of this working style. Here we cover the basics of creating an agile team and how this can help your business:
Agreeing to Change as a Team?
There are differing opinions on how to adopt an agile working approach; whether all members need to be in the same place, or how people’s roles may change to get the best performance. However, the foundation of any agile team is agreeing to focus on good outcomes and ways to further improve a steady flow of working, production quality, and individual features. Everyone involved must agree to improve continually.
Agile teams often consist of professionals that have a broad range of complementary skills, with emphasis on them collaborating to deliver one main project together. This helps avoid dependencies on outside people or other teams, which can often cause delays.
In software, this means you’ll have web developers working alongside designers, with project managers liaising and supporting them. By identifying and focusing on the overarching goals, the team can be united and make sure they are all working towards the same result.
For any business, good commercial outcomes are everything and for this reason agile working methods often implicitly prefer these as a measurement of success. This helps to encourage cooperation and trust, which is a vital part of running a successful agile team and delivering a high-quality product for a competitive price.
A steady flow of working features is the sign of a functioning agile team and this often means trying to make progress with incomplete information. Traditional teams follow pre-specified requirements and may stop if they don’t have enough guidance. This can significantly hinder work production. Encouraging acts of leadership and autonomy helps a team solve its own problems and keep progressing forward. A lack of autonomy can lead to hand offs and work being stalled while approval is sort increasing costs and lead times.
It’s also important that the team has a culture where making mistakes is a point for discussion, and not a finger-pointing exercise. A key part of agile working is that at each stage of the project, practices are evaluated, and suggestions for improvements are taken into account. If people are worried about the consequences of admitting they made a mistake or that they could have done better, it’s much more difficult to find areas to improve.
Visualise and Measure What is Actually Happening
This may sound obvious but it’s not something that is generally done outside lean / agile circles. What’s important is that data is collected and easily seen by everyone so that the team can reflect on their performance proactively in real time. This differs from the traffic lights often used in traditional weekly project reports, which show a trailing indicator of performance. Agile teams commonly use a shared board, which is updated throughout the day and referred to constantly by everyone. Another common practice is to hold a short daily meeting, often standing in front of the board, with the whole team.
Be Willing to Change and Adapt Constantly
Although there will be a goal for the project, it’s important that teams have the ability to revise or even completely change aspects of the work. This may be adjusting behaviour or priorities through collaboration with project stakeholders or changing work practices and is a crucial part of being agile.
This flexibility helps a team make improvements when they are needed and try things out that they may later reverse. It’s common to have regular sessions to reflect on the process and discuss things to either stop or start doing. Adopting continual small improvements is a practice adapted from lean manufacturing and in particular the Japanese motor industry where it’s more commonly called Kaizen.
Build Small Pieces and Release Them Quickly
At their core lean / agile methods help improve the commercial outcome of projects. They do this by getting working features into the hands of customers quickly for them to verify that the right things are being built. If customers aren’t happy, money is saved by replanning to rectify the situation instead of soldering on in the wrong direction. To work in this way it’s critical to build small pieces of the system at a time and strive to release very regularly to real users. If progress is blocked for some reason experienced agile teams will swarm around the problem to unblock things instead of waiting for a solution and starting another task in the meantime.
Building an agile development team takes time and patience. Many industry veterans have successfully build software for many years using traditional project methods. However that doesn’t mean that those project couldn’t have saved money or been closer to the users needs through the use of lean / agile methods of working. The key is to gather willing participants, be open to change and keep making small improvements as learning continues.