Ask us programmers our skill set and we can confidently iterate them. When required to document our skill set such as in a Curriculum Vitae (resume). We can objectively list them along with meta data about language competence. That’s great! nothing wrong with this, that is if communication with computers are the focus.
Software development does not occur in isolation, it occurs between other people. Some of those people happen to be programmers like us. Some of those people happen to be non-programmers. Herein lies the problem. Naturally this does not apply to all programmers, however speaking in general terms:
Why do us programmers communicate better towards computers than we do towards people?
It is often said that before one can begin to tackle a problem, it needs to be acknowledged first. Without acknowledgement we can not start to talk about the possible solutions. So the question is, are programmers aware of this problem in the first place? Further what are the possible root cases of poor communication abilities of programmers?
We need to start off with the programmer. It would be wrong to suggest that we can lump us all into fixed categories. But we can recognise some stereotypes that have been borne out of the general perception us programmers are responsible for.
At the root I believe it is our personality and attitude. I’m not a psychologist so I’m not in the business of trying to come up with why most programmers are what they are. If you haven’t yet take a Myers Briggs Type Indicator test, I highly suggest you do it. It would not be surprising that most of us are introverts (probably). But do we also have an artificially inflated ego too?
When these traits are combined together, perhaps this makes us shut off from those that do not meet our “level”. Further we don’t actively try and change ourself to better fit our situation.
If we had to work on a project that required a different language. We would have no issues to quickly adapt and learn the new language to solve the problem at hand. Then why does this same level of desire not exist when it comes to communicating with non-programmers?
Some things are difficult to change, I don’t think we can change from being an introvert. In fact there is nothing wrong with being an introvert. But we can change our attitudes. Better communication with non-programmers is our responsibility.
Everyone’s understanding is different, the level of detail that you go to must be dependent on the person you are communicating with. On the flip side, everyone understands big concepts, 1000 foot views. Start off at this level, then work your way down as needed.
We need to recognise our weakness before we can strengthen them. Learning to communicate more effectively with non-programmers is our responsibility.
When in Japan, speak Japanese