The ability to effectively communicate with others is a skill that has been vital to the success of the human race, and yet this is an skill that “computer nerds” have stereotypically been lacking. The fact that the stereotype exists seems odd to me, because communicating is quite honestly the majority of what we do. Maybe it’s just the awkward teen years spent obsessing over computers and technology that gives rise to it.

As just your average developer you’re often required to undertake many different forms of communication. We need to be able to explain our ideas to other developers, write technical documentation, and many developers still need to interact directly with end users.

We also have many different audiences that we have to communicate with including people such as management, QA testers, and systems engineers. The level of empathy required to successfully deal with such a diverse range of people is non-trivial, and a truly valuable skill to master. It’s such a big deal that in Dale Carnegie’s best-selling book ‘How to Win Friends and Influence People’, in part 3, chapter 8, he draws much attention to it.

If, as a result of reading this book, you only get one thing - an increased tendency to think always in terms of the other person’s point of view, and see things from that person’s angle, as well as your own - if you only get one thing from this book, it may easily prove to be one the stepping stones of your career
Dale Carnegie

For many developers, even the code we write is a form of communication. The whole idea of self documenting code is that the code portrays the intent of the original author, without any special outside expertise or knowledge necessary.

Most role models in the software industry are well known for their communication skills. Some write amazing books, some write really thought provoking blog posts, and some give really great presentations. The commonality here is that they’re known because of their ability to communicate effectively with an audience.

Good communication skills are just that, a skill. That means it can be learnt, and it can be taught. Practice certainly helps, though. A few years ago I wasn’t a very good communicator and there are still many forms of communication and social situations that I still have trouble with. But, with some effort, I have gotten a lot better at giving presentations and talks.

Good slides are probably one of the easier ways of improving your presentations. Looking at any good slide deck you will notice one really important feature; they’re terse. Apple’s approach to slides perhaps go a bit too far towards the picture gallery side of things for my liking, but if you watch some talks by great presenters you’ll notice their slides lack any real volume of detail.

Being mobile is also a great way to improve your presentations. Very few interesting talks I’ve seen have been given by a person that stands perfectly still in front of a lectern preaching. They pace the stage, they point at the projection, they interact with the audience. Stillness invites boredom, as does a lack of rhythm in your speaking.

These are some pretty commonly given suggestions for giving good presentations, but that’s for good reason. They’re also both fairly easy things to focus on when preparing or giving a presentation.