Understanding Programmers: a primer for Business People


The first and the most important thing that a business person should know about programmers is that they are the most optimistic bunch of people you'll ever come across. A corollary to this is that estimates by programmers are always too low. While in every other profession managers are trying to make their team lower the estimates, every experienced manager of programmers does the opposite: by reminding programmers of all the aspects of the problem they haven't really considered he encourages them to expand their estimates in order to come at least close to a realistic plan. The next important thing to know about programmers is that there doesn't exist a mean programmer. I've never saw or heard of a programmer who'd deliberately make an unrealistic promise or plant a bug just to screw a business person. No matter how undesirable the outcome of programmers' actions seem to the business people, they should always keep in mind that the programmers never act out of malice. On the contrary, programmers are probably the most altruistic and good-intentioned people around. Not many other professions give away their work for free, while it's not only normal but actually admired if a programmer contributes towards open source projects.

The one thing that business people keep forgetting is that they got to their position not by being timid, but through their aggressiveness. Successful business people are almost by definition strong personalities capable of strongly influencing others. When a business person with such a strong personality confronts a shy and reserved programmer, the business person always gets what he wants. But unfortunately for the business person, he'll also get promises that the programmer cannot keep.

Finally, business people should understand that they actually look quite boring to programmers. Their problems with closing a sale or signing a contract are as interesting to programmers as problems with Cassandra or full disks are to the business people. If a business person wants a full dedication of a programmer, he should translate a business problem into a technical challenge, which is basically the only thing that arouses interest of programmers.

I think it is evident from all these that a business person and a programmer are usually just to different to be able successfully communicate and cooperate just by themselves. One of the main roles of a technical managers is therefore to bridge the gap between business people and programmers. The other option is to keep on calling programmers stubborn and business people stupid.