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.

 

>> Learn how to create a scrum or kanban project with this interactive tutorial

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.

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.

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.

Triad Who Focus
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.

Products discussed