Work in a Company with a Divisional Structure, Not a Functional One
When a company has only one product, the reporting structure is straightforward. But if it grows to multiple products, then the reporting structure can become tricky. There are two reporting structures:
Functional structure: Here you have a head of engineering, whom all the engineers report to, no matter which product they work on. And a head of product, whom all the product managers report to, irrespective of what product they’re working on. And likewise for UX, marketing, etc. All these heads, in turn, report to the CEO.
Divisional structure: If your company has a chat app and a calendar app, each of them has a head. Everyone working on the chat app, be them eng, product to UX report to the head of chat. Everyone working on calendar report to the head of calendar. And both heads report to the CEO.
A lot has been written and discussed about the pros and cons of each of these approaches, about which of them work better for users and for society as a whole.
In this post, I want to look at this from a different perspective: that of an employee. If you’re looking to join a company, what kind of company should you join?
From that perspective, the divisional structure gives more autonomy to the head of each division. He’s like a mini-CEO, free to do whatever he wants in his realm. By contrast, in a functional structure, the head of eng doesn’t have the full power, because most decisions are not limited in scope to eng — they cut across eng, PM and UX. Now you get into endless meetings, decisions taking months, stakeholders not being clear on day 1 exactly what they want, different people insisting on different directions, and so on.
From your point of view as an employee, you want to have a lot of autonomy, since that lets you move fast. You make some mistakes, but that’s how you learn. You don’t learn by sitting across the table from other stakeholders and debating.
Checks and balances have a cost disproportionate to their benefits — they may prevent one mistake, but by slowing down 10 tasks. Or in general, prevent a few mistakes by slowing down EVERYTHING that happens at the company. This isn’t a worthwhile tradeoff. It’s like wearing a bulletproof vest to the supermarket in case you’re shot.
To build a successful product, you have to try out a lot of things, just as a scientist does a lot of experiences. Slowing down the process out of a misplaced goal of preventing mistakes leads to a worse outcome, not better. Trying to prevent mistakes is a bigger mistake.
Autonomy also makes you happy, along with mastery and purpose.
So, you want maximum autonomy, which means working in a divisional company.
But the concept of a divisional structure can be pushed down to lower levels, as Jason Crawford wrote in an excellent article about Amazon:
Jason also points out that with autonomy comes accountability. That’s again good: you don’t want to work in an environment where what you do doesn’t matter, because you will then stop improving yourself [1].
You want to work in a company where each team, even a team of a single-digit number of people, has as much autonomy as possible, not just the VPs and Directors.
Similarly, I’ve heard that Facebook has teams that are given metrics to optimise but have full autonomy to do that however they want.
Everything else being equal, I’d rather work at Amazon or Facebook than at another company of their size, like Google, Microsoft or Apple [2].
You don’t need to be a head of a division to benefit from this. Or work at a big company. Rather, Jason’s advice applies to companies of all sizes: if you work as an engineering manager at a small company, insist on full autonomy within a defined area.
What if you’re not a manager? You can still benefit from this advice: As an engineer, work at a place where, if you have an idea, you can launch an A/B test the same day without needing to get approval from multiple people. Don’t work at a company where you have to wait an hour or longer for a code review to commit a one-line change.
Work at a place with autonomy.
[1] No matter what you say you will do, because none of us is so powerful as to be immune to our environment. So find a good environment.
[2] Of course, everything else is not equal, and I’m not interested in working at Amazon, given their mistreatment of their employees. Neither am I interested in working at Facebook violating people’s privacy. So the point is not that I’ll work at a specific company, but that I’ll work at a place with a lot of autonomy.
