Feature Teams vs Durable Teams 🎽
How to understand which is best for your organization
Hey 👋 this is Luca! Welcome to a ✨ monthly free edition✨ of Refactoring.
Every week I write advice on how to become a better engineering leader, backed by my own experience, research and case studies.
You can learn more about Refactoring here.
To receive all the full articles and support Refactoring, consider subscribing 👇
Within each company, there are groups of people who are more likely to work together than others.
This is usually because of one of two reasons (or both):
They have similar skills: they check their respective work, find solutions and develop practices.
They work on the same project: they do different things, but they all contribute to a same output, so they need to coordinate.
Creating teams means defining processes that make it easier for these people to interact on a regular basis. So you want to create teams around people that work together the most often.
There exists a large body of literature on how to organize teams — based on skills (functions), projects (squads, cross-functional teams) and everything in between (matrices of various kinds).
One angle that is less frequently discussed, though, is time.
How long is the life of a team? How long are these people going to work together?
Based on this coordinate, two main configurations exist:
🎯 Feature Teams — teams assembled to deliver a specific initiative. Will be dismantled afterwards.
🎽 Durable Teams — teams accountable for a long-lived product / business area.
Choosing to go with one or the other (or anything in between) is an important decision to get right — as it has a cascading impact on almost every process: leadership role, reporting structures, career progressions, and so on.
It’s also not trivial as it depends on the stage of your company, its size, and how the business works.
I had the chance of working in both situations and each approach has its own merits, so I will add my own perspective.
Let's compare the two methods by the three coordinates that I believe are the most important:
🍱 Resource Allocation — Flexible vs Fixed
👁️ Strategy & Decision Making — External vs Internal
👑 Ownership — Weak vs Strong
🍱 Resource Allocation
Flexible vs Fixed
Feature teams have flexible resource allocation. They can be scoped based on the project they have to tackle and the velocity we want to achieve.
Durable Teams, in contrast, have fixed (or slow-changing) allocation.
Upsides of flexibility are obvious: they allow you to allocate resources precisely for your goals. This is especially crucial in small companies, where people often wear many hats and projects have overlapping resources.
This is also good in fast-moving environments, such as startups, where it's tricky to identify stable areas of allocation.
The downside of such flexibility is it requires more work and negotiation for the allocation itself. If every initiative requires a roundtable for deciding how resources should be organized, it may become a big tax on management time.
👁️ Strategy & Decision Making
External vs Internal
Feature teams don't live long enough to be able to take on strategic responsibilities, therefore strategic decisions are usually taken outside of the team. Feature teams tend to work at execution level, after a direction has been defined at leadership level.
Durable teams, on the contrary, allow for full strategic thinking within the team itself. This usually works better in the long run, for two reasons:
Whenever possible, decisions should be taken by people with direct information about the matter. This is akin to the Information Expert pattern in software development.
The team becomes fully accountable for the project, making people more empowered and engaged.
Weak vs Strong
Feature teams, being temporary, cannot retain ownership of their project. Such knowledge is eventually retained by individuals, or transferred to other teams.
For this reason, developing a long-lived initiative with a feature team always poses the question of how to manage maintenance, changes and any future evolution efficiently.
Durable teams, instead, retain strong ownership of their domain, and stay accountable for it from top to bottom.
⚖️ Choosing between Feature and Durable teams
It's easy to see how durable teams lead to strong ownership, efficient decision making and hassle-free resource allocation.
However, their viability depends on two major conditions:
You are able to define permanent business / product areas and these can be served with a predictable amount of resources.
Your company has enough headcount to comfortably distribute people into multiple, independent teams.
These are no small feats.
Small companies and fast-moving environments — such as startups — have a hard time at being productive with durable teams. They more often stick with feature teams until the conditions above are met.
Mixed solutions also exist: you might be able to identify a few durable teams and leave the rest of the headcount to feature teams.
Here are the main takeaways from the article:
🔍 Choosing between feature teams and durable teams is a crucial task that has a cascading effect on most of your processes. Do your best to get it right.
🎽 Durable Teams are arguably better for your company — as long as you can define long-lived areas and you have enough people to distribute across such teams.
🎯 Feature Teams provide the flexibility needed by small companies and startups, but pose ownership and decision making problems.
That's it for this week! How are your teams structured? Have you had success with some particular configuration? Let me know in the comments 👇 or via email
Hey, I am Luca 👋 thank you for reading this through!
Every Friday I publish a 10-minutes advice about engineering management and how to improve your work in a team.
If you liked this post, subscribe below to receive a new essay every week in your inbox!