How to build a kick-ass agile team
Regardless of your framework-of-choice, agile makes developing software more rewarding and fun.
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 in our "Agile Developer" section.)
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 it's 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.
ProTip: Agile teams aren't just for engineers. In larger software organizations, agile teams form in many parts of the business: marketing, HR, finance... you name it!
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.
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.
|Make||Product Management||Understand the market, targeted customer personas, and good product design principles|
|Design||Define the value proposition, product goals, and minimum viable product|
|Development||Develop the product using sound, sustainable engineering practices|
|Sell||Product Management||Understand the product's competitive landscape and market evolutions|
|Design||Create messaging that highlights the product's value propositions to each customer segment|
|Marketing||Build collateral to support the product launch: web pages, announcement emails, blogs, videos, etc.|
|Operate||Product Management||Release software to customers with a regular cadence|
|Development||Respond to customer issues|
|Support & Ops||Relay customer feedback to the make triad (Dev, PM, Design) as input for future product development|
Regardless of which triad your team operates in, agile can make your team deliver faster and have more fun. Dig further into this section and learn how to focus and optimize agile teams.
Put it into practice
Get serious about agile
Visualize all aspects of agile development including requirements, source code, and builds for your team. Explore JIRA Software
Coming up next
A brief introduction to scrum
Scrum is the most popular agile framework. Learn why, and how your team can get started. Keep reading
On a related note...
Customer case study: Trulia
Trulia connects buyers and sellers in the real estate market. Learn how they connect concept, development, and release with the help of Atlassian tools. Keep reading