Every IT manager, CIO, HR person or recruiter will tell you that it is hard to find good programmers. This seems a little strange to me, because programming is really not that hard, once you catch-on. Of course, there are several pieces of advice that I could give you, that will make you a much better programmer. (look at my blog history for some examples)
Finding good programmers is about more than just finding good programmers. Ultimately, the reason that you are looking for a programmer, in the first place is because you really just want successful work and good return on investment. You think that a good programmer is the key. However, there is more to it than that.
Ingredient 1 – Engineer(s)
Before I get too far, let me clarify that there are some people who can program very well, but they are not necessarily good programmers. To be a “good programmer”, you have to make good programs. Not just programs that seem to run well, but rather, programs that are satisfying to the users.
I’d have to say, that there are a few characteristics that make somebody “the right kind of person” for programming. The most obvious would be: intelligence, desire and training. More important than those, I’d say that [having an analytical mind] is the key to making a good program (or any other engineering stuff). Yes, that is certainly the magic sauce. You see, being analytical can be pretty hard, even exhausting sometimes. Unfortunately, people who are great at analyzing stuff, tend to be incredibly boring and a lot of people hate to listen to them. It hurts to say it, but I think it is mostly true.
This has to be one of the hardest things for some people to do: Analyze something until every detail has been covered. It is exhausting and boring. It puts most people’s brains into naptime mode. Even smart, disciplined people struggle with it. If you aren’t both smart and disciplined, then fugeddaboudit.
Ingredient 2 – Visionary
Now, when you want someone who is fun to listen-to, how about entertaining comedic types like Jim Carey or Will Farrell? Oh yeah! They are pretty-much the opposite of most engineers. People like Jim Carey and Will Farrell are pretty ADHD and don’t typically have the discipline to focus and analyze something to death. Their creative energy is through the roof. But their ideas are bananas (which is fun). If you put them in charge of designing or planning something, they will make a flying motorcycle that shoots flaming monkeys out of the headlights. Fun, but totally impractical and even dangerous (probably illegal).
Engineers may seem boring, but they will make you something that is very safe and practical. Of course, it will be black & white or two shades of gray. Maybe, if you really push them, they will concede and cover 2/3 of it with red, flashing text, but only because you convinced them that it was super-duper important and you won’t be satisfied otherwise.
Getting creative types and engineering types to work together effectively, seems to take some kind of miracle. Both of these people grate on each other’s nerves and both types think they are superior, infallible and always correct. Neither of them does a great job of being in charge but you can’t tell them about it. They are too close to the problem and easily become emotionally invested. This makes it difficult to make good decisions.
Ingredient 3 – Manager
The guy who does a great job of being in charge is the Manager. Of course, most managers seem to be people who might come across as being not-too-bright. They might be brilliant, but they keep their cards pretty close. You might have known a few people like this from your high-school football or basketball team. The thing that makes these guys work so well, is the fact that they don’t seem to focus on thinking and problem solving. It just isn’t their thing. They follow orders, make plans and concentrate on sticking to the plans. If your creative people and engineering people cannot agree, the manager will intervene and break the log jam. If this results in a compromise that irritates everyone involved, then it is a win. The reason is because later, this irritation will be an incentive to resolve things peacefully next time, so the manager doesn’t have to broker an unpleasant compromise again.
It is hard for the manager to get drawn into a conversation and to become emotional, because he isn’t paying attention to the conversation. He just watches your physical cues, and tone-of-voice. When somebody starts giving indications that things are going badly, he intervenes and gets things back-on-track. Maybe he will write stuff down, but only if it pertains to a timeline, commitment or action-item on the part of somebody. Otherwise, his engine is in neutral, saving gas, like it is supposed to do.
Mix and Serve
So, what I have just described is the perfect harmony, to produce excellence. If you don’t have all 3 personality types, then your program/product is going to be missing a major ingredient. It will be a three wheeled car that can usually turn right, but sends showers of sparks if you turn left. Something is missing and your performance will suffer. You don’t really even need 3 different people to get this right. You can have two people (one of them, supplying two of these roles). Very rarely, you might find someone with all three traits (Bill Gates, Mark Zuckerberg, folks like that).
The reason that a team rarely has these three personalities is because of the natural conflict and discord that seems to be a regular occurrence. As you might imagine, it is much easier (and less stressful) to keep things happy and friendly. Do not mix these personalities, there is no conflict, and everything is peaceful and quiet, but there is also no combustion. It is also possible to find people who have these personalities, but those people often lack passion and intensity. So, they always yield, when the pressure goes up.
Excellence comes when you find the balance between these three. When you get that harmony, and you increase the volume, then the concert will begin.