Ben Owen

Full time nerd. Professional eater of cake.

Effective Communication for Software Engineers

We've all heard the stereotypes about programmers having poor social and communication skills, but building high quality software solutions is a team effort and is as much about communication as technical skill and expertise.

From pre-sales technical consultancy, right through build, delivery and operation, you'll need to work with with a variety of other people - be it your colleagues the customer or your management.

  • Choose the right medium - email is ideal for formal communication that needs to be on record. A delicate conversation about the budget might be better as a face-to-face meeting.
  • Know your audience - the customer probably doesn't know what a “SQL query” is or what you mean by saying you've added a “covering index”. On the other hand, they'll probably be delighted to hear that the report that used to take 5 minutes to run now only takes 5 seconds.
  • Keep it simple - don't include unnecessary details that don't help to support your key message.
  • Know when to expand - contrary to the previous point, sometimes details are crucial. For example, the steps to reproduce a bug, and the information observed while debugging it.
  • Be clear and concise - don't let your point get lost in a wall of text. Bullet points are really useful for this. Leave the reader clear what you are saying or asking.
  • A picture says a thousand words - diagrams, flow charts, graphs etc are often more effective than text or speech.
  • Project confidence - this will help you to be taken seriously and to sell your ideas. However, make sure not to come across as arrogant.
  • Speak directly to the people who will use the software - remove opportunities for miscommunication and lost details.
  • Take the initiative - if you need an answer, ask the question. Arrange meetings, send messages, demo what you've built and ask for feedback. Don't wait for someone else to make it happen, or leave important discussions until the next scheduled meeting.
  • Empathise with others - if you were the customer, would you be expecting an update on your ticket by now?