And frankly, people here seem to be happier with a little bit of middle management. Not middle management that's going to overrule the decisions they make on their own. Not symbolic middle management that only makes people feel important. But middle management that creates useful channels of communication. If my job is getting obstacles out of the way so my employees can get their work done, these managers exist so that, when an employee has a local problem, there's someone there, in the office next door, whom they can talk to.This is, of course, just one reason to have layers of middle management.
I was very surprised that someone as obviously bright as Joel would need to discover this for himself. Surely he would not have thought of running Microsoft the way he runs Fog Creek, and it is not unknown for software systems to have layers of abstraction to allow enable developers to manage its complexity, but I guess it is a question of knowing just when to add a layer of management.