How to Structure Engineering Teams 🏯
A thorough guide about principles, roles, growth stages, and plenty of resources.
Since the very beginning of Refactoring, I have written a lot about organizing and scaling engineering teams.
That’s because this is a core part of my work experience — as CTO of an early stage startup first, and manager of a high-growth, larger company later.
There is even a full section in the Library about it 👇
Articles I have written usually cover specific aspects — from the need for managers, to how communication changes with growth.
So, today I am publishing a comprehensive Guide 📖 that puts together everything I said about this topic in a coherent framework that you can use at work. It will be a way longer, more in-depth and more researched article than usual!
I write one of such guides about once a month. You can learn more about Refactoring Guides below 👇
So, here is what we’ll cover today:
🔭 Principles — what makes a team good? Mental models for creating effective engineering teams.
⏳ Teams longevity — how long should a team last? What are teams *really* about?
🎽 Roles — what are the core roles and responsibilities you should assign?
🪴 Growth Stages — how does structure change through the various growth stages of a company?
🤔 Unconventional Teams — stories and tactics of companies that do things differently.
💬 Community Stories — two real-world team structures from the Refactoring community.
📌 Takeaways — summarizing this long guide into four main actionable points.
Let’s dive in!