(Written on 2025-04-29T23:43:06-04:00, updated and published 2026-11-15)
People sometimes ask me how to structure the teams, what tensions would that create and how to solve for those tensions. Here are my “ready to wear” recommendations:
- Every team is unique and you can’t just take “ready to wear” recommendations and apply them (yes, it is the irony of “ready to wear” recommendations). Each new individual brings or takes their strengths and weaknesses. A team with one person out sick or on vacation is a different team and should be approached like that. I am tempted to paraphrase Tolstoy with “All happy teams are alike” but no, I think all teams, happy and unhappy are different and must be treated so.
- Structure teams strongly by time zone proximity and only weakly by other measures. I am obviously taking about remote teams but the wider lesson applies: you wouldn’t put your members of the same team on different offices, floors, etc. You always want to minimize obstacles to fluid communication. This doesn’t mean constant communication - deep, uninterrupted work is necessary - and working asynchronously is preferable. But, there are limits to the effectiveness of asynchronous work and I would say that there should be at least one weekly meeting where the whole team meets synchronously.
- Put a stewardship oriented engineer as the lead. They have to be hands-on of course - I have yet to see a great hands-off leader. But equally importantly, they have to both be able to see and think like the business and see and think like an engineer and then choose based on both challenges (which, I believe, are in essence one and the same resource optimization challenge but with different inputs)
- When the tensions arise, and they will arise, the teams will have to negotiate, both within the team and with other teams and with leadership, and learn how to disagree and commit. And there should always be a clear hierarchy, with a directly responsible individual, an individual that can make the decisions when negotiations fail (never shoot for consensus - engineering should not be done by a committee)
This “you will have to negotiate” reminds of an engineering manager who once commented that I think more like a sales person than an engineer. I don’t know how he expected me to react but I was flattered because a) selling is a genuinely hard job1 and b) it just showed me how large the gap was from our mutual understanding of engineering.
The context btw was talking about the operational costs of running a certain platform in different ways and comparing it to other platforms and their cost profiles, trying to solve for the most optimal way to run software. Maybe he over-fitted on “costs”? [front] (/posts/complete-the-sentence) and center. But as I like to say: if you aren’t talking about costs, you aren’t talking about engineering.
[1] My wife is also a sales leader… which pretty much makes me a vegetarian.
Last modified on 2025-04-29