Item 19: Keep it Simple

I've read lots of Product Requirements Documents and explanations of code that use incredibly sophisticated, very technical language. While they sound very impressive, I always walk away feeling like I either:

  1. Did not learn as much as I could
  2. Needed to work extremely hard in order to truly understand what was being said.

I feel like as developers we've been deluded into thinking that, since we're judged by our peers based on the complexity of the problems that we solve, we need to strive to convince others that what we're doing is complex, by using complex language, complex reasoning, and complex jargon and logic. However, this gets us into a lot of trouble when talking to stakeholders since stakeholders do not care about how complex the problems you're solving are; they just want it solved.

Communicate your ideas as simply as possible

Reddit's "Explain Like I'm 5" is a good litmus test to see how well you're communicating your ideas: could somebody without any expert knowledge of programming or your product domain understand what you're saying or writing?. For example:

  • Do not use programming jargon, unless your stakeholders are programmers.
  • In fact, use the jargon within the field of your stakeholders, as that will make things easier tounderstand.

The science here once again comes from the realm of evolutionary biology and behavioral economics (BIBLIO: Khaneman). It turns out that using your brain requires lots of effort, and humans – like all other animals – try to expend the least effort possible to accomplish a task. The simpler your communication is, the less effort people have to use when receiving it. The less effort people have to use when receiving it, the easier it will be to understand. The easier it is to understand, the higher the likelihood of things not being lost in the mix are.

I think François de La Rochefoucauld sums it up nicely when he says (BIBLIO: Rochefoucauld)

We should say things that are natural, simple, and more or less serious, depending on the temperaments and inclinations of the people with whom we are speaking––not pressing them to approve what we have said, or even to answer it. When we have thus satisfied the requirements of civility, we can voice our own feelings without any prejudice or stubbornness, while showing that we are trying to base them on the opinions of our listeners.