Messed Up Communication Messes Up Everything
Tags: architecture, cleancode, programming
Published: 2022-10-05 18:25:07

## Communication Is Core Challenge
Of course, communication is at the root of all business challenges. 

## We Can't Be Sure What Other Is Thinking
That's because we never really know what the other person knows or thinks even though we may be communicating directly to him. For Software Development, there are two things we can focus on in an effort to make our projects move more smoothly.  There are two core challenges to communication.

## Two Core Challenges of Communication
- Creating a common understanding
- Capturing the appropriate details

### Creating Common Understanding
Why do we have meetings? It's so we can discuss things.  Why do we discuss things?

### Three Reasons For Discussing Things
The following three things are probably basic drivers for the most meetings.
- Obtain a baseline of understanding : Determine what others think or know about the subject
- Get to a common understanding about the subject under discussion
- Decide on a plan of action - what will we do after the meeting?

## Meeting Failure
The problem that often occurs is that a team can generate thousands of words and hundreds of ideas in a short meeting. 
 
Often, a stakeholder will take a dev team into a meeting to explain what she wants from the product. Numerous ideas are discussed and people are nodding their heads and the meeting feels like a success. However, no one can actually be sure that they all have the same understanding of what the stakeholder wants. It is very likely that they do not have a common understanding.

### Were the Salient Details Captured?
Also, consider how most teams capture the details of a meeting. Maybe someone jots down some notes. 

The stakeholder may pause and ask,

>  "Are the devs getting this so they can create the functionality?"
 
Very sharp devs who have a lot of experience can probably wing it and get fairly close to some percentage of the desired functionality. The problem is that there are so many details. How do you capture it all?

#### Many Devs Just Want To Write Code
Other devs are completely disinterested in this entire process: they just want to write code.

## Ugh! Communication 
Designer / creative types (Software Developers, portrait painters, song writers, etc) don’t normally want to talk a lot. That’s because they are busy making stuff.  These devs know that talking about the details and gathering the requirements is Business Analyst work.

At times software developers require extremely specific details and creating and gathering this kind of detail can be: 
- Difficult to get from business users 
- Boring (from a Dev's viewpoint)
- Extremely difficult to track
- Easily forgotten
- Did I mention boring? :) 
 
For all of these reasons (and more) Software Developers try to ignore these things. After all, software developers want to be about the business of writing code. 

However, writing the wrong code isn’t helpful, even though it can feel like progress. 

> "Hey, I wrote some code that does some stuff." 

## You Can’t Wait Until You Have Everything 
The counterpoint is that you cannot wait until you have everything before you start coding, because you will never have everything. 

## The NextLevel Software Developer Book
In this book I will provide exact details and example documents that you will want to use to
- Track your requirements
- Communicate your (Software Developer) understanding of the problem (problem definition)
- Communicate your design
- Many other important project details

Good communication leads to better understanding and awareness of the 5 Ws &H of the project (who,what,why,where,when & how).

We'll continue discussing how to best communicate in tomorrow's blog entry.

## What Have Been Worst / Best Communication Scenarios You've Seen?
Do you have stories of communication break-down? They happen a lot.