I think many people imagine that technical acumen and razor-sharp problem solving skills are the most important skills to be a successful consultant. I would strongly disagree. While these two skills are *absolutely* essential for success, I think they are less important than the ability to effectively communicate with your clients.

Effective communication is a skill that doesn't come naturally to most people – it has to be nurtured, practiced, and perfected. I could break down "communication" into a variety of sub-classes:

  • Presenting to a large audience
    • E.g. a conference session, or a large group of IT staff
  • Presenting to a small audience
    • E.g. a class, or a targeted set of IT staff
  • 1-<5 discussions with technologists (devs, DBAs, IT directors/managers)
  • 1-<5 discussions with executives (VPs, CXOs)
  • 1-1 discussions with technologists
  • 1-1 discussions with executives
  • Whitepapers
  • Design, analysis, or strategy reports
  • Status emails or general email conversation
  • Business solicitations

Each of these requires a different approach. Before any kind of client presentation, meeting, or phone call, or when crafting a report or email, I ask myself the following questions:

  • Who is my audience?
  • What am I trying to convey to them?
  • Is my message appropriate for the audience? (e.g. I wouldn't necessarily be discussing business implications of growth choices for the entire company's data tier with a developer, nor would I necessarily be discussing index tuning strategies for specific tables with a CIO.)
  • What politics and inter-personal/departmental relationships do I need to be aware of?
  • What would the ramifications be if my presentation/call/report/email was described or forwarded to another person/part of the company? (e.g. am I being asked to deliver some metrics/advice that would be unwelcome – but needed – in another department?)
  • Is my communication in the overall client's best interests?
  • Am I sure I have all the pertinent facts and details to be able to give my opinion credibly and correctly?
  • Am I 100% sure of the technical content of my communication?
  • Is my tone correct? (e.g. sometimes one needs to take the tone that 'you hired me because of my experience and knowledge, and in this case, respectfully, person X is incorrect' - but it needs to be done professionally.)

And of course everything needs to be concise, bullet-points instead of waffle-y paragraphs where needed, spel chcked, also grammer must be write actually two.

There's no excuse for incorrectness in written communications – many people have the opinion that sloppy communications indicates a predilection for sloppiness in other areas. I also subscribe to this view. Don't get me wrong – it's fine to have mistakes in tweets and the odd email – but consistent errors in emails, blogs and other professional communications doesn't look good. Seeing these things makes me cringe.

But so far I've only mentioned the consultant communicating with the client. The client's communication with the consultant is way more important. You have to be an 'active listener', where you're not just passively listening to the client but you're taking it in, processing it, making sure it makes sense, asking questions for clarification and so on. If you can't work out what you're being asked to do for the client then you're in trouble. It could be that the client isn't very good at explaining, in which case you need to restate what you think you've been asked to do so everyone's on the same page. Every few new clients we find we're following other consultants who didn't do what the client wanted because of communications issues, not necessarily technical deficiencies.

I am overwhelmingly pleased that I grew up into a manager and senior contributor in a fast-moving product group at Microsoft – there was no choice there but to communicate effectively (in all the various forms I listed in the first set of bullets above) – or be left behind – it was that simple. Trial-by-fire is a great way to learn.

If you don't have an opportunity like that, there are plenty of ways to practice – user groups, blogging, and whitepapers – and just making yourself be a better communicator wherever you work. And you might consider having a partner or colleague review certain key communications – Kimberly and I do that for each other all the time (like this blog post, for example).

Effective communication is an indispensable skill that I don't think enough emphasis is placed on in the tech community.

What do you think?