The World from the Bottom

The trouble with being the lowest level programmer is that you don't always get to make important decisions. If you've read Andrew Grove's "Only the Paranoid Survive," then you know that sometimes it's the people on the bottom who have the clearest picture of what's going on. This doesn't seem intuitive. The man at the top has the high level view. He is always looking at the whole project. The man on the bottom can only see his one little piece.

Well here's an example. Imagine you're a manager and you've come across a bike. You think, "Hey, this is great! I can ride to work. I'll get there much faster. I can give one to all my employees so they can get here faster too." You might also think of some other things you can do with bikes too, like selling them to other people or using them to help transport packages. But your insight into the usefulness of a bike probably stops there. As a manager, (unless you've worked with bikes before) you see the bike from far away as a single entity. It's one unit that you can put to use for some purpose.

Now maybe you're paying someone to do some work on the bike. The bike was ugly, or it was too small, or you just wanted someone to test it out. As your new employee becomes intimate with the details of the bike, he'll see things that weren't obvious to you (or anyone else). First he notices that the speed of the bike is limited; so, he suggests adding multiple gears - gears that can be shifted while cycling. Then he notes that if the handle bars were lowered, the body was made of lighter material, and the tires were thinner, you could turn it into a race bike. He also thinks of an easy way to turn the bike into a two person bike. And reflectors on the wheels and handle bars would be nice.

So why was the employee able to think of these things? It's because he was working on the bike, and he was working with the individual components. Seeing something as a whole is not always better. It's just gives you a different vantage point. Now consider an infinitely more complex software project. There will be many different people working at many different levels. And it may be near impossible for any one person to understand it all. Some of the best ideas will probably bubble up from the bottom. It will be the people on the bottom who have insights because no one else really has any understanding of what is going on down at that level. Keep that in mind the next time you hear those voices from down under.