2007-11-15

Developing software is a people thing

It has been said many times before; you probably do not need first class developers in order to produce first class software, but you need a first class team. I argue that if some or all of them are first class, then it makes it easier to create a first class team, as long as they can co-operate. The latter is vital. So, if we assume that the team members are proficient in the technologies used in the project at hand we can take a look on other vital aspects that makes a team work. The co-operation part.

How do we co-operate? One of the key components I would like to discuss is the ability to communicate. So to be more precise how do people, ourselves - us, communicate? Or, sometimes, the lack of it can be equally important to analyze. Most technically oriented persons would probably answer "by talking". Yes, talking is important, actually that is the technical part of it, and it can be analyzed. We do need to talk to each other. The actual talking and communicating in speech and text has been quite analyzed for great many years. Some of the basic ideas how this part of communication between individuals are described in various models, where the semiotic triangle is central. It describes how words, objects, concepts and symbols relate. There is also the area of pragmatics, describing how body language, gestures, utterances, etc. fit into the picture. Both of these alone can keep one busy for a very long time, these are interesting subjects indeed.

But, there are more subtler forces at work, some that might be very eluding - and apparently, not that much science seems to have been conducted in this area.

Why did he suddenly avoid eye contact? Why does he not want to speak to me? Why are she suddenly so angry? Well, I have this great idea but nobody seems to care after my presentation?

Are these questions you have asked yourself in a project? Encountered situations where similar scenarios have taken place? There must be something else going on. Enter our subconscious. Seemingly there is subconscious communictaion going on. Also, due to the evolutionary roots of our mind, there are certain reactions to certain behaviour - all in order to retain the integrity of the group (the team). It is all about group dynamics, but on a more subtle, subconscious, level. These are things we are not aware of. Simply, because we are deceiving ourselves not to notice what is going on. It is an autonomous function. One could argue that we actually run on autopilot more of our time than we might be prepared to admit.

How can I claim something as preposterous as the above? Well, I can't really, can I. I am not into psychology. However, I do meet, and have been working with, a great number of people from various parts of the world. What I have done is that I have read a very good and inspiring book on the subject. It is a book I can recommend, especially if you want to gain more knowledge in this area; "Why we lie: the evolutionary roots of deception and the unconscious mind" by David Livingstone Smith.

By the way; finding brilliant programmers can be hard sometimes. But, why not devise a test like the one posted here.





No comments: