Software development methods evolve at a head-spinning pace. Rapid innovation adoption and the ever-increasing demand for unique customer experiences drive new theories for efficient, agile development. Spotify, the world's largest music streaming service, developed a novel method of agile development optimization based on forming product squads.
Here's what to know about squad-based agile development.
What Is a Squad?
A squad consists of a small team of developers, usually between six and 12, and a product owner, usually the product manager. These squads are flexible, cross-functional, and autonomous. They focus on one functional area of a company's product line. For instance, one squad might work on machine learning while another works on search technology.
Squads don't work with the entire product or on individual products. They have a unique mission to focus on and a product owner to guide them. Each squad determines the best methodology for product delivery and management.
Benefits of Using Squads
Squads offer several benefits over other methods of agile development, including:
Industry Expertise
When you put together a squad with a singular mission, you build a team of experts rather than a hodge-podge of generalists.
Squads develop deep understanding, intellectual capital, and expertise across their specialized functional area. Each member fully understands all aspects of the project, so the transfer of knowledge is easy, and there are no siloes within the team. Product maintenance and future phases of development aren't put at risk if one member leaves.
Faster Product Development
Each squad is a stand-alone entity. Each squad is sometimes even considered an independent startup. They have complete autonomy to update production versions and push new work out to users without needing external approval. This leads to:
- More efficient product development
- Faster cycle times
- More successful products
Efficient Methodology
Although squad-based development is a methodology in itself, it doesn't dictate how squads function. Each squad can design its own work processes. This gives squads the flexibility to create systems that work for them rather than following a particular methodology adopted by leaders who are far removed from the day-to-day workings of the squad.
Reduced Risk of Knowledge Silos Within the Squad
The primary risks associated with development teams are related to segmented knowledge and personnel. Poor communication and collaboration can cause knowledge silos, where team members only understand their roles. If a team member leaves or has to take time off, it can grind progress to a halt. Squad-based development teams eliminate these risks because everyone on the team understands all aspects of their functional area.
Drawbacks To Squad-Based Agile Development
While there's no doubt that results from using squad-based agile development can be great for a company, it's not for all organizations. Some issues you may want to consider before you decide if squad-based teams are suitable for your business include:
Your Product Line
An SaaS company can change one part of its product without interfering with other parts. Code may be built on a framework that segments code. Updating a search functionality doesn't necessarily compromise the stability of the rest of the product — but it may. If your product is built on a different model where updating one aspect can negatively affect others, the squad methodology may not be a good fit.
Knowledge Silos
Although squads eliminate knowledge silos within their group, they can create them among other squads. In more traditional agile development, the product manager understands and advocates for the product's persona. Within squads, the product owner is only concerned with their squad's functionality, so they may lack the high-level overview of the product manager. Without effective communication between squads, you'll risk creating an information bunker.
How Can You Implement Squad-Based Agile Development in Your Team?
Although the squad-based development model relies on the squad's autonomy, a larger structure provides cohesiveness for the entire product. This structure includes:
Squads
Each autonomous squad is made up of:
- Six to 12 members
- An agile coach
- A product owner
The squad focuses on one feature area and determines its own methodologies and frameworks to support its mission.
Tribes
Tribes consist of multiple squads that coordinate on the same feature. Collaboration within a tribe is essential to build alignment across squads. Tribes generally comprise no more than 150 people. They have a tribe lead responsible for facilitating communication and cooperation between squads.
Chapters
Specialists within squads belong to chapters of other specialists from other squads. Although squads are autonomous, they have to abide by best practices. Chapters align on engineering standards so that there's conformity across the product. A senior technology lead heads up each chapter and manages the team members in that chapter.
Guilds
A guild is a community centered around an interest. They're voluntary to join, and anyone can form one. Unlike chapters, which belong to tribes, guilds can cut across different tribes. Guilds have community coordinators rather than leaders. Their purpose is to bring members together over a shared interest.
Trios
The trio, also called the TPD Trio, includes the following:
- Tribe lead
- Product lead
- Design lead
Each tribe has a trio to ensure that all three perspectives are accounted for when developing features.
Alliances
Large organizations may need multiple tribes to collaborate in some situations. When that's necessary, the trio from each tribe will form an alliance. An alliance usually includes three or more Trios. They work together to foster collaboration among their tribes on projects that are too big for one tribe to tackle alone.
Creating Effective Squads
Since squads are largely segregated and autonomous, you need to trust your team and the process. However, there are some measures you can take to set your squads up for success.
Characteristics of an Ideal Agile Squad
As much as possible, try to keep the following principles in mind when forming your squads:
Keep Successful Teams Together
A major part of a squad's success is the chemistry among team members. They work closely together and learn to collaborate as a team. Building relationships takes time, so avoid changing squads if possible. The longer a team is together, the more challenges and successes they'll have as a collective, and the closer their relationships will be.
Choose Your Squad Leader Carefully
The product owner needs to be motivational, creative, and influential. They need to be someone the team looks up to and is willing to follow. A good leader will be able to inspire the squad, understand each team member's strengths and weaknesses, and plan accordingly.
Squad Members Should Have T-shaped Skills
Within their specific functionality, squads should be composed of members with both depth and breadth of skills. They should be able to collaborate across disciplines with each other but also bring deep expertise in their field. People with T-shaped skills can excel in their main role and perform other jobs as needed. They also understand how other disciplines affect their work.
Squad Members Should Be in the Same Time Zone
Agile squads need to be able to work together in real time. Even if your team is dispersed, they should be in the same time zone or work the same hours, if possible. Regular squad meet-ups are crucial for squads to function effectively. If they aren't in the same time zone or logging on for the day at the same time, there should at least be enough cross-over so that they can regularly meet at a time that's convenient to everyone.
Weekly Squad Management
Each squad should have the following elements:
- A mission
- A product owner who assigns priorities and communicates their vision to the team
- An agile coach who supports and guides the team in agile principles
Since squads are self-directed, they can decide on their own agile frameworks, such as Kanban, sprints, or others. Weekly squad management will vary based on the framework they've chosen and the priorities set by the product owner. However, weekly planning and status reports are essential regardless of the framework.
Weekly squad meet-ups are an ideal opportunity to reflect on successes and failures and discuss OKRs if you're using that as a goal-setting framework. A good format for weekly meet-ups is PPP (plan, progress, problems). You can use the weekly meeting to keep everyone aligned on short and long-term goals, discuss progress on current projects, and figure out how to overcome any obstacles the squad is facing.
How to keep track of your team goals and progress?
Each squad will devise its own methods of tracking goals and progress. There are many different project management solutions that can be used to set, measure, and track goals and progress. Whatever solution you choose should have the following elements:
Progress Visualization
Representing your progress visually makes it much easier to see where each team member is and identify potential bottlenecks before they slow your progress. A visual progress tool makes continuous tracking easy and transparent.
Issue Tracking
An issue tracking tool allows you to deal with high-priority tasks first. You can tell what needs immediate attention and what issues have been completed, allowing you to set priorities appropriately.
Collaboration
An effective solution will allow all members of the squad to collaborate. This is particularly important for remote teams.
Estimation
Regardless of your agile framework, you need to be able to determine how long each iteration will take. Accurate estimation keeps everyone on task and prevents scope creep.
Learning From Squad-Based Agile Development
Although there's a lot of value in Spotify's squad-based development methodology, it may be a mistake to copy it directly. Even a former Spotify engineer warned against its widespread adoption as a generic framework. Rigidly adhering to their model probably won't be your most effective agile development method.
Instead, you may find greater success by taking inspiration from the squad-based development model to digitally transform your company adopting an Agile approach. Take what works for you and leave out what doesn't. You may like the idea of autonomous squads, but you don't see the need for tribes or guilds. There are many different ways to build an agile team, so you shouldn't feel the need to strictly follow any model. Ultimately the best agile methodology will be unique to your business.
Some things to consider when designing your agile model include:
Team structure
Teams can be structured in many ways:
- Generalist: A generalist team consists of members who have a broad understanding of many topics without deep expertise in one.
- Specialists: This is the type of structure Spotify uses in its squads. Specialists teams are comprised of industry experts with a deep understanding of their field.
- Hybrid: A hybrid team is composed of both generalists and specialists. It may be a better option for smaller organizations or products.
Primary roles and responsibilities
An agile team usually outlines specific roles for each team member. The squad-based model does this with the product owner, agile coach, and team members. Other options include:
- Team Lead: The team lead is responsible for assigning tasks, managing the workflow, and ensuring everything runs smoothly.
- Product Owner: As in the Spotify model, a product owner represents the client's needs. They outline the client requirements and communicate them with the team.
- Team Member: A team member can denote a number of different roles depending on the product, including programmers, designers, and testers.
- Stakeholders: While stakeholders aren't direct team members, they frequently consult with the team regarding progress and final deliverables.
Next Steps in Building an Agile Team
Spotify's model of squad-based agile development has been wildly successful for many teams. Squads' expert and autonomous nature can give your company an edge by improving your product and leading to faster development times. Squads can quickly implement new technologies and push out updates without being weighed down by the need for external approval.
If your product line is compatible with squad-based agile development, it may be ideal for you. However, it's more likely that you can take elements from the squad-based model and use them to develop your own customized agile development model that will be specific to your company's needs. The benefit of agile development is the ability to rapidly adopt the best practices for your team.