Friday, February 20, 2015

Dispassionate-Programmers


This article is one in a series. See the introduction here.

All of the personalities that I have presented thus far have been people who were impassioned in their work. They have been the kinds of people that became software engineers because there was some aspect of the job that they really loved. Most of those people would create software whether they were paid for it or not. That's not the case, though, with the type of developer that I am presenting today. Today I'm going to discuss the dispassionate ones. The word "dispassionate" can evoke some negative connotations, but that’s not the way I intend it. Sometimes dispassion is a great thing and is precisely what you need.

For the dispasssionate-programmer, software-development does not fill a psychological void. To them, the code that they write is just a series of instructions to a machine--a collection of ones and zeros. It's not an artistic creation. It's not an extension of who they are. They don't have strong convictions about the right way to write code, just as they don't have strong convictions about the right way to program a VCR (yeah, I know--I'm dating myself). If their code works as desired, they have completed their task and they can proceed to the next one. It's just a job. That isn't to say that they are less proficient than their impassioned counter parts. They may be just as skilled; it's just that they aren't emotionally invested. 

Not all dispassionate-programmers are dispassionate for the same reasons. Some of them were born that way. They never had a true passion for software development. They just chose software development as a career for any number of dispassionate reasons. Some dispassionate-programmers, however, haven't always been that way. Some of them were impassioned, once-upon-a-time, but have lost their passion over the years. Either way, the result is the same. 

Dispassionate-programmers have no particular interest in architecture and design. Tell them how you want the product designed and they will be happy to implement it precisely to your specifications. They may, of course, be perfectly capable of developing the design too, but they'd be just as happy if you didn't ask them to do it. For them, the design stage can be a hassle. Rather than just writing the code, they will, inevitably, have to consult with some impassioned developers who might have strong, and often conflicting, opinions about how it should be done and, honestly, they just don't care. They don't want to listen to other developers squabble over the best design. They don't want to be pressured into giving their opinion. They know once they do, it's just going to get dragged through the mud anyway. 

Dispassionate-programmers are a vital part of any development team. When you assign multiple impassioned engineers to the same project, it can sometimes actually decrease productivity. But, when you pair one of them with a dispassionate-programmer, it can more than double their performance. Not only does the dispassionate-programmer follow the other's lead without argument, but flaws in the design can be found, and fixed, sooner. Dispassionate-programmers can work well on their own, but they will typically be more valuable when working under the direction of an impassioned engineer. Let an impassioned engineer set the design and let the dispassionate-programmer help with the implementation.  They also tend to excel at what other developers might consider to be mundane tasks, like data conversions and report writing.

If a dispassionate-programmer volunteers an opinion on a design, pay careful attention to what they say; they wouldn't offer their opinion unless they thought it was important. Their impartiality may be providing them with some clarity that is escaping the others. Don't make the mistake, though, of coercing the dispassionate-programmers into being involved in design sessions when they show no interest. Don't assume that their disinterest is a flaw that needs to be fixed. Embrace it and learn to use it to your team's advantage.

2 comments:

  1. This one can be easily confused with a symptom from some other issue. Sometimes those who seem impassionate may be experiencing some other emotion in their current situation and are just not responsive. Unless you have known this developer for a long time, be careful not to classify them too quickly.

    ReplyDelete
    Replies
    1. Great point. Some people have very strong opinions about things but just bottle them up. If you wrongly assume that someone like that is dispassionate, and treat them as such, you can exacerbate their discontent.

      Delete