What captivated me about Heisenberg's Uncertainty Principle, was not just the principle itself, but its fundamental nature. It was not the lack of advancements in equipment that prevented the simultaneous measurement of position and velocity.

It was nature herself, no matter how sophisticated your measurement equipment is.

Take a pause and think about it. How profound it is. Nature has given us constraints to operate in, non-negotiable constraints.

There is a similar law in software design known as Conway's law.

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

— Melvin E. Conway

Conway stated this law in 1967, but its power was appreciated only when micro service-based architecture became mainstream. Since communication structure is organization structure, people were stunned when they saw how closely service architecture resembles org charts.

Like the uncertainty principle, this law is fundamental and does not depend upon tooling advancement. 

There have been various attempts to change organizational structure to meet technology needs, especially in the name of agile self-organizing teams. It's futile and breaks the core premise of technology to serve the business and not the other way around.


Domain Driven Design: Celebrating the Constraints

Organizational constraints exist because that's the effective way to operate.

For example, when I worked for a bank, the production database's unapproved look-up of celebrity account information was subject to immediate firing. I am sure this rule was the same when this bank had mobile branches on a stagecoach in the nineteenth century.

In DDD, these clusters, where everything is aligned to a specific function, are called domains. A service (or a set of services) only has meaning when looking from the perspective of a domain; therefore is called bounded context. Each bounded context can be a fiefdom with its own rules and model.


Business vs. Engineering

At the aforementioned stagecoach bank, I noticed another interesting dynamic. The engineering and business teams were like water-tight compartments despite being on the same floor. In addition, in all my working experience, I experienced the most organized requirements with minor scope creep there.

This puts into question the idea of self-organizing teams, an agile tenet that sometimes is taken too far. Within a domain or, even more specifically, within a bounded context, self-organizing teams work like a charm. When you cross those boundaries, technology needs to align to respect those boundaries.


Icon_Preview-1How to overcome established boundaries between product managers and software engineers with the power of ephemeral environments and preview URLs

One boundary which needs to be navigated skillfully here is between product managers and engineers. Product managers typically either have to sit next to developers (breaking the natural boundaries) or wait for the release to happen before they are able to give feedback.

The Roost platform solves this problem.

It provides product managers the ability to provide live feedback on a release with the power of preview URLs. It's done during the critical path of a release rather than asynchronous process. 


Rishi Yadav

About Rishi Yadav

Rishi is the CEO and Co-Founder of Roost and has over two decades of experience in leading enterprise application teams. He is a published author and active blogger.

Please Share this Blog

You may find these blog posts of interest too.

The Fascination of Writing Scripts: How Developers are Holding on to Their Favorite Toy
The Fascination of Writing Scripts: How Developers are Holding on to Their Favorite Toy
August 31, 2022

As a software engineer, I know firsthand the importance of two critical activities in addition to writing code: writing ...

Press Release: Roost.ai Joins the Green Software Foundation
Press Release: Roost.ai Joins the Green Software Foundation
August 31, 2022

Roost's Carbon-Aware Environments for Sustainable DevOps Help Enterprises Get Closer to Net Zero Emissions San Jose, CA ...

A New Approach to Managing DevOps Pipelines | Replace Test Environment
A New Approach to Managing DevOps Pipelines | Replace Test Environment
August 31, 2022

Replace Rusty DevOps Pipes with Dynamic Pre-production Environments When I bought my home a decade ago, I was asked whet...