Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What is the best way to organize an engineering team? #25

Open
namank5x opened this issue Jun 18, 2020 · 1 comment
Open

What is the best way to organize an engineering team? #25

namank5x opened this issue Jun 18, 2020 · 1 comment

Comments

@namank5x
Copy link

namank5x commented Jun 18, 2020

Is there a need to re invent the wheel by trying things that are (potentially already figured out)? what are your thoughts on this?

Are there any best practices? Starting points? Does every company have to figure it out for themselves?

@jasoncwarner
Copy link
Owner

There is no "one way" on this topic. It's all contextual: how big the company, mission, team size, skill, dynamic, how the product team is run etc etc etc.

It's a very complex topic.

This is why I argue that the VP Engineering or the CTO is at least the second most important executive in the company, if not the first.

But, here's some super quick thoughts and I can go into it in much more depth later.

Big caveat here: Org design and operations is literally art. And I content that very very very few people in our industry do it well. And I think in some cases it doesn't matter. Money solves this problem by overstaffing. Most organizations that get to a sufficient size just don't think about this because they overhire and assume inefficiency in the team and org. Take a look at nearly all late stage Unicorn startups and allll big companies.

I think that most companies end up with some sort of the following in time.

Top: Feature team/product team layer - teams building features or products. Mostly "full stack" assuming platform and infra are sufficiently shimmed.

Middle: Platform layer - higher order primitives most app teams might need (auth, billing, data analytics etc), entire DX for app team (think internal PaaS)

Bottom: Infra layer - hardware, base systems, base primitives (DBs, datacenter, disk, networking etc) that are needed to expose out to platform

That said, you almost never start out this way. A company should start with outsourcing all the infra and platform layer to Heroku or another PaaS and various startups and be done with it. I very much believe that most companies should stay monolith on GitHub and Heroku for a long long time.

I can go into more detail if wanted. It's a very nuanced and rather complex topic that could easily include things like communication and planning too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants