Friday, March 21, 2008

why bosses are bad for you

Paul Graham on why You Weren't Meant to Have a Boss

The restrictiveness of big company jobs is particularly hard on programmers, because the essence of programming is to build new things. Sales people make much the same pitches every day; support people answer much the same questions; but once you've written a piece of code you don't need to write it again. So a programmer working as programmers are meant to is always making new things. And when you're part of an organization whose structure gives each person freedom in inverse proportion to the size of the tree, you're going to face resistance when you do something new.

This seems an inevitable consequence of bigness. It's true even in the smartest companies. I was talking recently to a founder who considered starting a startup right out of college, but went to work for Google instead because he thought he'd learn more there. He didn't learn as much as he expected. Programmers learn by doing, and most of the things he wanted to do, he couldn't—sometimes because the company wouldn't let him, but often because the company's code wouldn't let him. Between the drag of legacy code, the overhead of doing development in such a large organization, and the restrictions imposed by interfaces owned by other groups, he could only try a fraction of the things he would have liked to. He said he has learned much more in his own startup, despite the fact that he has to do all the company's errands as well as programming, because at least when he's programming he can do whatever he wants.


(Graham's argument is bolstered by an appeal to the habits of our prehistoric ancestors, as well as the social behaviour of various other species in the wild; this is a move that always strikes me as unlikely to strengthen an argument in need of support, but the piece strikes a chord.)

Jefferson argued that each generation should create its own laws. A Forefather malgré soi, he thought that no generation should be bound by laws drawn up by persons ignorant of the conditions to be faced. The drag of legacy code is downright unAmerican.

3 comments:

Anatoly Vorobey said...

It's gotten so bad that I consider any argument from "what was natural for our ancestors" to be suspect from the get-go. Graham's is no different.

One interesting detail that he glosses over:

And when you're part of an organization whose structure gives each person freedom in inverse proportion to the size of the tree, you're going to face resistance when you do something new.

But the correct measure, even if one accepts the premise, isn't the size of the tree - it's the depth of the tree, that is, the length of the chain of command from you to the CEO. The whole tree could be huge, but flat, allowing for quite a bit of freedom (somehow the phrase doesn't sound too alluring, I realize). Things are very different when there are 9 managers from a lowly programmer to the CEO, than when there are 3 - even though the company could, by all external measures, be a huge corporation in either case. The difference can be huge, as I've experienced.

Anonymous said...

Helen, thank you thank you thank you for bringing forth this excellent article!

There are many many MANY problems with the way technology corporations are designed to work, but this article clearly lays out the way to start thinking about it. Brilliant, and great find.

- Hassan

Glen S. McGhee, Dir., FHEAP said...

Actually, in a letter to James Madison, Thomas Jefferson recommended having a revolution every twenty years. Pretty astonishing admission, considering what they'd just been through, eh?