The Three Stages of Engineering Teams 📊
A simple framework for structuring growing teams, inspired by Instagram.
Mike Krieger, co-founder & CTO of Instagram, believes there are three major growth stages every engineering team goes through.
These are crucial moments in the wider company evolution, and largely match my own experience at a fast-growing startup first, and a larger company later.
He calls them:
Each of them represents a different way to organize teams and engineering work within your company.
Let's see them one by one 👇
1) 🃏 Generalists Stage
This is when you are just starting up and your team is roughly under 10 people.
At this stage you are still figuring out what to build and how to build it. You can't really anticipate what you will be doing, both in terms of tasks and tech you will be using.
For this reason, it is wise to surround you of generalists who are happy to do pretty much anything.
These are curious people — they don't bother about switching technologies, mixing them with no-code tools, and do whatever it takes to deliver the product.
Even more so, they thrive doing it.
On the other side of the spectrum, you probably don't want someone who is heavily invested in some specific technology, as they will try to use it no matter what, because they feel their career depends on it.
Finally, generalists often make for good managers down the line, as they develop systems thinking by working on a wide array of activities.
As a rule of thumb, you should expect everything you build at this stage to be scrapped at some point in the future. This is almost inevitable as you 1) try different things to see what sticks, and 2) you move really fast.
So my advice is:
Don't create premature abstractions that are likely to backfire later.
Make full use of no-code / low-code tools to keep your tech footprint low.