At Øredev, the software development conference in Malmö, Sweden earlier this month, Catherine Powell, principal at Boston-based software engineering firm Abakas, talked about the core structures the agile teams.
She described six core concepts for agile teams. Provided you have these six things then your team can be considered agile. So, let’s look at those six things.
Catherine defined a team as a group of people who together are going to accomplish something. "You're trying to structure team with lots of disparate roles," she said. She advised that we define who needs to be in the team by role or function and then allocate these to people - people can have several roles. It’s the roles and the common goal that make people a team.
An agile team needs a concept of backlog – the work that is still outstanding and that forms the requirements log. Without a backlog, you can’t structure the upcoming project work, so you need to store the backlog somehow so that it can be prioritised and incorporated into future releases.
An agile team needs the idea of a customer. In real terms, this is unlikely to be a ‘real’ customer who will buy the end product, so your team will have to find someone who can represent the interests of the customer. This could be someone from a business team, a tester or a product manager.
You have to define what ‘done’ means to you. Catherine pointed out that you have to have a way of saying when you have arrived. For some teams this might be that a product is ready to ship and for others it might mean that testing is complete. However you define it, you can’t be an agile team unless you have agreed on what ‘done’ looks like.
"Agile is not really about running around like chickens with our heads cut-off," Catherine said. She said that despite what some people think, Agile does not mean that there is no process. On the contrary, process is important to ensure that there are no bottlenecks and that work flows through the team adequately and moves from idea through to development, testing and release.
The heartbeat of the team is the way in which they work. It’s “time-based predictability,” according to Catherine. It is not necessarily about how fast you work or how productive you are. For example a team of space scientists may work quickly, but still only have products to release or milestones achieved over the period of several months. On the other hand, a team of software developers working on a web software project may be making releases into production several times a week, or more frequently. The heartbeat of an agile team is this regularity. "It is extremely important to team morale," said Catherine.
These are the six things that Catherine said were essential to be a truly Agile team. "For me, everything else is negotiable," she concluded.
Which of these tenets do you apply to your Agile project teams? And do you think she missed anything? What else defines an Agile team?