Communication: The Undeveloped Skill
As a profession, we are not known for our communication skills. Logical computers are so much easier to understand than emotional people. To fully excel, though, we must be able to do both effectively.
Most outsiders view us as interpreters, translating descriptions into a form computers can understand. This is not all we do, but developing this skill will make several other aspects of our job easier.
Why Communication Is Important?
Requirements are usually vague. We actually need to translate ideas into a form computers understand. A well placed conversation can improve our understanding of the goal, which in turn may transform a complex solution into a simple one.
Early in my career, I was asked to convert a list of strings into an html table with the elements sequenced vertically. HTML tables are much easier to sequence horizontally than vertically. Those were the requirements, though, and I spent a good deal of time making them work.
Several days later, I was chatting with the author of those requirements. I commented on the difficulty, it turns out that he didn’t actually care about the direction. I could have easily avoided that effort with a five minute conversation.
I’m always right. I know my idea is going to work, I’ve got a vision and all variant suggestions be damned.
This is extremely dangerous. We need to accept that there might be flaws in the idea, and listen to the feedback describing those flaws. We don’t want to spend weeks building something, only to discover it was the wrong thing.
Pretotyping, or doing the bare minimum to prove the idea will work, is a great technique in addressing this problem. We want to create the possibility of feedback as early as possible.
Enemies accumulate and make life way too hard. It may seem reasonable to piss a few people off now to get something done, but it will make future interactions harder. And there will be future interactions, the interest rate on a loan against our reputation is always too high.
How Can We Get Better?
The Software Craftsmanship movement says that we should practice outside of work to hone our skills. Toastmasters is an organization dedicated to just that. I’ll be joining in August, and I suggest you do too.}