Communication Pathways in Software Engineering

Taha Khan
2 min readMay 23, 2022

--

One recent tidbit I’ve noticed is that a company’s software systems are a representation of the internal communication pathways within the company.

What does that mean? Basically, the different teams/organizations/business units need to communicate and collaborate in an efficient forum[1] to keep track of who is solving what problem and how. By doing so, a company can be efficient with its resources[2]. Also, with increased collaboration, the employees can grow as they are introduced to different ideas.

This idea is better stated by Melvin Conway in his adage:

An organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.

- Conway’s Law

One illustration is the user experience (UX) decisions in different apps from the same company. For instance, let’s say you’re using an iPhone and there are 2 different apps from the same company.

  1. To change the settings for app 1, you have to go to the options menu within the app.
  2. To change a similar setting on app 2, you have to find the app within the Settings app on the iPhone.

The above illustration shows that the company’s communication pathways are disjoint, the UX designers from different parts of the company are not working together to come up with standards across the company.

Additionally, the end users are not getting a delightful experience, as the UX is not consistent. A user coming from app 1 or app 2 to the other would have to re-train themselves.

Appendix

  1. Efficient forum: Having a solution doc review with the entire company might make sense in a small startup but not when there are tens or hundreds of teams. An efficient forum scales better when senior managers/engineers spread their ideas/solutions across other organizations and external information within their own organization.
  2. Efficient with its resources: Think about two different teams within the same company solving the same problem (sometimes concurrently) without knowledge of each other.

--

--

Taha Khan

Software Engineer by trade. Solving complex problems with simple solutions at Amazon Alexa.