Humans in an open office

Open office space can be compared to a Docker container. Contained within the office scope, we can find people who are processing work. They get inputs and deliver outputs. They interact with each other like apps with APIs would, and they can also process work individually.

The server ports of a human are the senses (touch, sight, smell, taste, hearing) which are exposed to all the elements within the office scope. A closed office would reduce that scope. Any call through those ports can be async or sync.

The consciousness of a human runs in a single-thread similar to how Javascript would. We can say that each person is working in a task at a time. When a human gets interrupted, their thinking process loop will remain blocked for the duration of the external call. This type of interruption would be called a synchronous communication like an in-person meeting, phone call, Skype, etc. Which will result in a delay of the completion of the person’s task.

In the sub-conscious mind, humans are already multitasking in their bodies by breathing, self-balancing, seeing, digesting, etc. On the conscious mind, multitasking can lead to race conditions which can delay the overall task completion. If the delay is long enough, the tasks can timeout, getting nothing done.

Thanks to the Information Age now we have asynchronous communication like Slack, email, Jira, GitHub, etc. This type of calls work like a Javascript promise or callbacks which won’t interrupt person’s thread, instead they will get processed when the person is idle.

For sake of immediacy, a synchronous call would be more effective for the person B, but it would have the cost of blocking the single-thread of person A. Additionally, it would take some overhead time each time the thread resumes. This could introduce some extra state (distraction) in the process that could cause defects (or bugs).