How do you build the perfect agile team? That’s a multi-million dollar question. If we had the secret sauce, we could make a fortune selling the recipe to every company in the world. After all, who doesn’t have a development team these days? But even if the exact formula might not exist, we have some ideas for a recipe that blends the talents of a team together to facilitate agility.
What does an agile team look like?
First, let’s consider what exactly an agile team is. Here we have to turn to the Agile Manifesto, which starts with ‘individuals and interactions over processes and tools’. With this in mind, it sounds like defining the perfect agile team means picking the right individuals who can work and interact well together. Easy, right? Not exactly.
While the Agile Movement was born out of software development, there is little focus on how you write code or other technical skills. In fact, the focus on the interactions of individuals is the first thing that anyone comes across in the agile manifesto, and all of the principles behind the Agile Manifesto detail how people should interact or a behavior expected of the individuals involved in the team. Theories behind how individuals interact have been around a lot longer than software development teams have, and it’s easy to see why. In my experience, it is the soft skills that make a team exceptional—not the technical abilities of the team members.
Building the team
Let’s compare two teams. Team One has good technical team members who are ready to overcome any challenge put in front of them. They definitely don’t have the answer to every problem, but they trust each other to support the team objective and ultimately deliver. Team Two has members who are considered experts in their field; they have more PhDs in the team than team members, and each has delivered exceptional advancements through their own research as an individual. Which team would you rather belong to? I’m betting it’s the first.
Having established that the individuals and their interactions are the most important parts of building an agile team, what should we look for in each person? Well it may sound a little clichéd, but the answer is all of those generic terms you see on a job description: strong collaboration skills, good communicator, contributes to team goals, etc.
Surely technical skills still matter, don’t they? Sure having a group of people who are a great team with no software development experience is not going to produce good products. But I strongly suggest that technical skills are easier to learn and teach than the attitude to be a good team player, so I do believe the technical skills come second. In fact, personally, when considering technical skills I look for someone who is willing to learn new skills and is good at it.
When looking at specific skills, the best teams will have a variety of skills at a variety of skill levels. This will allow the team to be self sufficient. If you have a team that have to rely on an external team for something every cycle, they are likely to fail to hit their goals regularly, as the external team is unlikely to be as invested in the team’s goals. By having a variety of skills, the team can be as self-sufficient as possible. With a variety of skill levels, the more senior staff should be teaching the more junior staff, improving the skills of both.
I have found both professionally and personally that teaching, coaching or mentoring people has always made better at whatever I am trying to help the other person develop. This may sound counterintuitive, but the act of teaching has made me focus on what, why and how I complete relevant tasks. Take this blog post: As I write it, I’m reflecting on the practices I can continue to develop to be part of an agile team.
What to look for in candidates
So if interpersonals are more important than technical skills, how do we screen new candidates or help our people develop in the most important skills? I’m sure we’ve all sat through (or given) a highly technical interview:
- How would you write a function that does x, y z?
- How would you test a program that does a, b, c?
- How do you plan a project with multiple teams involved?
There’s value in these questions, but they aren’t going to tell you if the candidate has the ability to be a star in an agile environment. Coming back to the original question, how do we build the perfect agile team? I believe the answer is simple: be honest about the non-technical skills you are looking for from team members.
What not to do with the perfect team
Finally, in the process of building your perfect agile team, it’s important to think about what you’re building that team for—and what not to waste their time with. Why would you want to create an amazing team and then have them doing the most mundane tasks in the development process? Invest in the right technology and automate the important but repetitive tasks that can be automated so your perfect team can focus on building amazing products.