Agile visionaries believed that teamwork is essential to delivering great software and that great agile teams embody “we” rather than “I.” Nothing is more rewarding than sharing the adventure of building something that truly matters with engaged teammates.
Despite sharing common values, there is no formula for the perfect agile team. Some implement scrum while others use kanban. Agile purists prefer co-located teams, but business realities sometimes necessitate distributing an agile team across geographies. Most agile teams possess all the required skills, but sometimes it’s necessary to call on specialists for specific work. So how do you know whether your team is on the path to greatness? Read on.
Build upon a solid foundation
Once the team is in place, it’s important to remember that agile teams are like individuals: they take time to grow. Agile theorists often quote Tuckman’s “stages of group development.” Agile teams go through four key phases as they develop.
After a team reaches the performing stage, development truly becomes awesome. Members trust each other, understand one another’s strengths, and use that understanding to optimize how they build software.
Here’s the catch: reaching the ‘performing’ stage is impossible if a team’s make-up shifts a lot.
Keeping agile teams intact takes some organizational discipline, but it pays to protect the team–within reason, of course. When change is introduced (new hire, employee departure, etc.), the team reverts back to the forming stage as it absorbs the change.
High-performing agile teams are also built on sound engineering practices like code reviews, task branching, continuous integration, and regular release cadences. We can’t stress this enough: engineering fundamentals are crucial for building great teams. Read more on those topics our resource center, The Agile Developer.
There are two other pillars of great agile teams: continuous mentoring and shared skill sets. One of the big benefits in working on a team is that colleagues learn from one another and mentor one another. Mentoring isn’t just an activity for junior members to learn from senior members. Everyone on the team learns from one another so that the impact of the team as a whole is greater than the sum of the impact made by its individual members. Meanwhile, shared skill sets unlock the power of the team to tackle heterogeneous work. As engineers, it’s always important to learn new skills because it makes us more valuable to the organization and better equipped to support each other’s work. It also guards against someone becoming a critical path, which takes a load off everyone’s mind.
How agile teams collaborate across departments
Today’s software teams include product managers, designers, marketers, and operations as well as developers and testers. At Atlassian, we focus our agile teams around three product phases: make, sell, and operate.
At Atlassian, we focus our agile teams around three product phases: make, sell, and operate.
Each product phase is supported by three teams (ideally 5-7 members each), and forms a triad. Each triad is agile in its approach, because as the product develops, teams are continuously working on each phase and learning more about the product as well as the market. Below is a breakdown of each triad and the who, what, where, and why for each team within the larger software team.
Regardless of which triad your team operates in, agile can make your team deliver faster and have more fun.
Learn more about how to optimize agile teams on our resource site, the agile coach.
Did you find this post useful? Share it on your social network of choice so your fellow software engineers can learn about agile teams, too!