Wednesday, March 18, 2009

Software Developers

Managing any sort of software development means, most importantly, managing software developers. Occasionally there will be other aspects to a software project such as the purchase of computers (servers and workstations), network and other computer components and even, occasionally, the design of custom hardware. Additionally, as described elsewhere in this book, there are aspects of all project management that involve managing customers and other stakeholders. But managing the implementation of the majority of software projects primarily involves managing software developers.

So it is worthwhile to have a discussion on what software developers are like: their personalities, their likes and dislikes, etc.

What I am going to describe in the next few BLOG entries are generalities, not absolutes. Generalities about people and their personalities are bound to have exceptions. Anyone would consider it to be a valid generality that the average professional basketball player is taller than the average person in the general population. All sorts of statistics could be provided to support this generality. But even a generality as obviously true as this one has the occasional exception (generally someone with a nickname like ‘Spud’ or ‘Tiny’) that is actually shorter than the average person in the general population.

So if I claim - as I do in the next BLOG entry – that programmers tend to be introverts, expect to occasionally find one who is actually very outgoing and extroverted.

We should expect that there will be exceptions to all of these generalities. However, I do think that the generalities listed on this BLOG are worthy of discussion because an understanding of them can help someone managing software development projects to understand the work habits and even the personalities of computer programmers.

In order to emphasize the value of each generality I list, I’ve also added a description of the implications of each characteristic in regard to managing software projects.

It is true that I have managed projects only while working for companies based in the Midwest (specifically Minnesota). However while managing those projects, I have also interacted with programmers from other parts of the country – particularly the Southwest (Arizona and California), the Northeast (New Jersey) and Southeast (primarily South Carolina, but also Georgia and Alabama). Though my experience is somewhat limited, I haven’t noticed any significant differences between the personalities of programmers in these different parts of the country.

I should also say that, though there are a couple of exceptions which I highlight, there is little in this section of the book that distinguishes standard software development from custom software development. Nonetheless, I believe that before continuing onto topics in which there are significant differences, it is important to understand these things about programmers.

That’s primarily because I don’t think that the average person knows programmers very well. While most everyone knows a computer programmer (be it their sibling, or their neighbor or even their spouse), if you would ask most people about computer programmers, they would generalize them as “pencil-necked geeks”. If the person they know who is a computer programmer doesn’t match that description, they probably think the person is an exception.

I’m personally not exactly sure what “pencil-necked geek” means. If I get any image in my mind, the image is Napoleon Dynamite. I don’t know any programmers who are quite like that. So if my understanding of that phrase is correct, I don’t believe that it really describes them very accurately. So in the next few posts I will share my own personal observations of what programmers are really like.

No comments:

Post a Comment