Fog Creek and 37Signals are probably more alike than either of us would care to admit (ha!) and I could see Joel writing a very similar article a few years ago when we had 20some people at the company. But what works there, or at FC, is not a one size fits all answer.
Having managers when there are 10 people are at your company makes no sense. The hierarchy starts out flat, you add a few more people and you're at 20, and the idea of making someone a manager seems like a waste and something a 'BigCo' would do. "We need people who get stuff done, not people who sit around doing nothing but managing", you think. Then you get to 50 people and everything breaks down. You wonder why people are frustrated they can't get things done, while other people are doing things that embarrass your company or compete with other things you are doing. And you realize your company isn't a special little gem that is wholly unlike every other company in existence. You need management.
Just make sure you give the devs a professional ladder and compensation structure that doesn't involve moving to management, because managing isn't something everyone is good at or even wants to do. And make sure that management knows their job is a support role to the people at the company who are making things happen, not the other way around.