As a contractor one of the most important parts of my job is communication, be it with managers, other developers or members of cross functional teams (I wanted a third thing). While I’ll freely admit that I’m not always the best communicator, it has improved over time and I can happy converse with most levels of the business.

One of the biggest mistaskes that you can make when doing this is to start a conversation using the wrong level of detail and forgetting to give the audiance context before they start. using the correct laguage is important as talking about low level implementation details is unlikely to help you project manager understand the issue.

However starting a conversation without first setting the context will only ever will only result in a miscommunication, no matter how good you explain the problem.

For example if I start by saying something like

Editing the hosts file make it impossible to retrieve the real data to cache so instead we are going to use proxy domain names

It is unlikely anyone will understand why this is important, so what is the solution to this?

For me it is laying out some background to the problem first, basically just explaining what issue I have encountered and why it matters to me:

I want to remove external dependancies from the cucumber tests

I can then start talking about my requirments and what I plan to do, this should start with high levels informatioon, going into detail if appropriate.

We want this to automatically cache the response, as a results we have the following approaches…

This ensures whoever I am conversing with understands why we are having this conversation before I start giving details or asking questions.

As I said at the start I don’t always communicate successfully, but I find tools like this ensure I succeed more regularly that I did previously.