Today, I had a previous client post a Tweet that made my day.
“Just heard a woman trying to explain Rails to someone. Suddenly thankful for @refriedchicken, who speaks English and explains it well.” via @bullybully32
As a developer that statement means more to me than any compliment from peers on my code quality, testing discipline or any other technical aspect of my craft. To be a great developer you need to be able to cross that invisible line from technical geek to average joe when talking with clients and others that do not have a technical background. Being able to explain solutions and ideas in a manner that they can understand will alleviate frustration and help find solutions that otherwise would have been missed. If this is an area in which you struggle, there are somethings you can do to practice, learn and improve.
First, call your mom (or other friend/family member that doesn’t have a technical background) and ask them what they would like to know about what you do for a living. Then take 15 minutes and try to explain it to them in a way that keeps their interest peaked and has them asking more inquisitive questions. At the end of your conversation have them explain it back to you.
If, at any point, one of you become frustrated, this is a good sign that you should stop and rethink your approach. Find a subject that you have a common interest in and try to make an analogy between the two topics. Tying your explanation to a subject they have an interest can you a long way to keeping focus and excitement in your conversation. Also, taking a deep breath and a moment to relax will help keep frustrations from interfering with the learning process.
Remember conversations are a two way street. Take time to listen to their questions. When they start speaking, don’t tune out and start thinking about what you are going to say next. Listen. Their questions and inflections can give you clues to what they are struggling to understand even if it is not what their words are conveying. This is probably the most important aspect of communicating with others.
Listen. Breathe. Communicate.