The Recipe for the Perfect Agile Team

Diffblue HQ
4 min readSep 17, 2019

--

Photo by fox jia on Unsplash

How do you build the perfect agile team? That’s a multi-million dollar question. Anyone with the secret sauce could make a fortune selling the recipe to every company in the world. After all, who doesn’t have a development team nowadays? But even if the exact formula might not exist, there are still some guidelines that can shape a recipe that blends a team’s talents 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 the behavior expected from 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.

Skill-Mixing

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 has 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.

Teaching, coaching or mentoring people often makes someone better at whatever skill they are trying to help the other person develop. This may sound counterintuitive, but the act of teaching makes people focus on what, why and how they complete relevant tasks.

What to look for in candidates

So, if interpersonal skills 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 is 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? 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 all of the important but repetitive tasks that can be automated, so your perfect team can focus on building amazing products.

--

--

Diffblue HQ

Diffblue Cover autonomous AI-powered Java unit test suite generation & maintenance at scale. | We’re making developers wildly more productive with AI for Code