These thoughts were originally posted at http://ardentdev.com in 2010. I’ve moved them here in order to repurpose that domain for a software development podcast.
Remember the game Telephone? You whisper something in your neighbour’s ear, he whispers to his neighbour, she whispers to her neighbour, and so on all the way down the line. The last person announces the message she heard and everyone laughs when they discover how mangled the final message is from the original.
An eerily similar phenomenon occurs in software development as requirements flow from domain experts to business analysts to system designers (architects) to developers. Each communication channel in the process introduces new opportunities for information to be distorted.
I was digging through some old papers this week and found a sketch I made nearly a decade ago on the back of a Dilbert comic. I’ve prettied it up here as a reminder to all of us to always be watchful for potential distortions as requirements flow from users and stakeholders to the people who build and test the software:
The importance of good communication in the software development process cannot be overstated.
If you are passionate about building software and want to thrive in your career, hone your communication skills. Ask questions. Write things down. Repeat back what you’ve heard to validate it. Ask more questions if things don’t make sense. Communicate, communicate, communicate.
In 2009 I had lunch with an executive with a lot of experience managing developers. When I asked for his biggest piece of advice for professional developers outside of learning technology, his answer was to learn to communicate effectively.