How Can Conway’s Law Avoid Conflicting with the DevOps Movement?

Organizational structures are created by business leaders.  A constellation of specialists in theory can be very productive for modular codebases where the work is distributed intelligently.

Conway's Law is "[a]ny organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure." Conway's Law indirectly asserts that the Unix philosophy of having things be modular is achievable best by loosely-coupled groups rather than tightly-coupled groups (such as an aggregation of mini-groups into one business unit) according to WhatIs.com.

The book Building Microservices by Sam Newman says 'Eric S. Raymond summarized this phenomenon in The New Hacker’s Dictionary (MIT Press) by stating “If you have four groups working on a compiler, you’ll get a 4-pass compiler."' (1)

Software developers know that in the context of compilers, the fewer passes a compiler needs, the better it is.  Each pass takes time, and code must compile quickly as there are many compilers to choose from, and in business, time is money.  Based on this literature about Conway's Law, theoretically, one group would not create a four-pass compiler but rather a sophisticated one-pass interpreter or an efficient two-pass compiler.

For the sake of argument, two or more groups could not be more tightly-coupled than if they were all to merge into one group.  To heed the warning from Conway would be to have fewer small groups in favor of one large group. Conway's Law suggests that such a group (a single large team) could create unmodular (tightly-coupled) code. Readily breakable or easily divided code (with logical separations of functionality) adheres to Demeter's Law

"It only takes two branches performing a refactoring in a tightly coupled codebase to bring the entire team to a halt when one of them merges" (Continuous Delivery, page 410).

In some ways it seems that the DevOps trend toward generalization and merging disciplines could lead to monolithic codebases that are not modular. With any paradigm shift, such as that of the recent DevOps movement, potential disadvantages need to be considered and mitigated. By reducing silos and promoting individual generalists in one team, modularity should not be forsaken. You will need to maintain the codebase.

Communication between I.T. professionals and groups presents a serious set of potential problems. There is a rule called Brook's Law that is defined as "[a]dding more programmers to a late project makes it later" (The Cathedral and the Bazaar, page 34). According to Eric S. Raymond, "Brook's Law is founded on experience that bugs tend strongly to cluster at the interfaces between code written by different people, and that communications/coordination overhead on a project tends to rise with the number of interfaces between human beings" (The Cathedral and the Bazaar, page 34).

The latest trend is to shun DevOps departments in favor of bringing systems administrators into the same group as software engineers.  Departments can be seen as barriers that inhibit collaboration for addressing weaknesses and leveraging strengths.  Gene Kim illustrates the benefit of having one department rather than two or three. (2) 

The popularity of full-stack engineers (as opposed to traditional, pure programmers) is at least partially attributable to the adoption of DevOps business culture.  Full-stack engineers, as jacks-of-all-trades, can leverage automation and be mindful of security at crucial stages of their development given their versatility in solving problems from the beginning with developing a platform until the end (after the CI/CD release to production).  Generalists work in a variety of environments contributing to platform, security, software, and database development. With knowledge of each specialty such as programming, networking, databases, and security itself, the shift-left paradigm (where security is designed at an early stage in the life cycle of development as opposed to an afterthought near the release of the product) can be implemented.

As one considers the role of individuals in groups, she can look at Nietzsche's Beyond Good and Evil where the author delves into a human as being a part of nature. (3)  In the same section of this book that the reference to being a part of nature is in, Nietzsche states that ideas can project themselves onto something else that was not originally intended. (3)  This Nietzschean concept of unintentional idea projection is consistent with Conway's view that the organizational structure will mirror the technical dependencies of products it creates.  The underlying product may unintentionally reflect the organization's communication systems (a man-made idea, and a whole composed of subcomponents).  (The Nietzschean concept of humans being part of nature is also analogous to Conway's view that branches of a business combine to be a greater whole.)

Enterprises use DevOps for compliance, and in some cases regulations affect how labor is divided. "For software developers, the big problem comes in Separation of Duties. Basically, SarbOx says that a software developer should not have ANY kind of write access to production systems that can affect the financial reporting of the corporation." (This quote was taken from https://www.toolbox.com/tech/programming/blogs/what-does-the-sarbanes-oxley-act-mean-to-developers-061904/.)

Keep in mind if a company will be Sarbanes-Oxley compliant, its developers should not have access to production systems that deal with corporate finance reports. This means you may need dedicated release, build, DevOps or Site Reliability engineers to deploy the code to production for corporate finance reporting applications.

Some companies error on the side of caution and ensure that development in production does not happen (according to this external posting). Many small companies do not need to be Sarbanes Oxley compliant.

Adam Smith in the Wealth of Nations discusses dividing labor into distinct stages (or branches as he calls them), to maximize productivity (see the third paragraph of book one, chapter one for an example about pin makers).  If certain professionals focus on distinct operations (a collaboration through specializing in modular aspects of substages of the production process), Smith says that the total output of the workers will be much greater than the sum of individual efforts to manufacture useful pins with no collaboration from the beginning of the process to the end.  According to Smith, output can be multiplied with each laborer specializing in one segment of the product manufacturing process.  According to Oxford Journals however, the business concept of modular organizational structure comes from Nobel Prize winner Herbert Simon who happened to be a computer pioneer.  Simon's conclusion is consistent with Smith's recommendation for the division of labor with modular stages for each worker.  In Simon's book The Sciences of the Artificial, he describes an anachronistic parable based on ancient Greek characters dividing labor in the enterprise of creating timepieces (http://en.citizendium.org/).  The ancient Greeks, who influenced the philosopher Friedrich Nietzsche, valued moderation. 

Overwhelmingly we know the benefits of both modularity and DevOps culture.  We can reconcile the need for loosely-coupled groups with the ostensibly opposite DevOps commitment toward eliminating subgroups altogether.  If Conway's Law is correct, companies must be moderate in their application of DevOps culture for the sake of promoting modularity as extremist implementation of DevOps has not been championed by anyone.  Relatively uncoupled groups of specialized experts and/or unspecialized (generalist) professionals can be placed into a company's DevOps operations to leverage automation with sufficient knowledge of infrastructure as a part of the development life-cycle for secure and efficient operations.  The prescription is Greek: moderate adoption of DevOps culture is key.

Footnotes
(1)  The hyperlink and underline inside the single quotes were not part of the original quote.
(2)  At the 29 minute mark of this video, Gene Kim shows how an organization changed the number of teams from two to three, and then from three to one.  The organization did the best when it had the fewest number of departments (one team).
(3)  The passage referenced here is as follows:  'Stoicism is self-tyranny—Nature will also allow herself to be tyrannized over: is not the Stoic a part of Nature?... But this is an old and everlasting story: what happened in old times with the Stoics still happens today, as soon as ever a philosophy begins to believe in itself. It always creates the world in its own image; it cannot do otherwise; philosophy is this tyrannical impulse itself, the most spiritual Will to Power, the will to "creation of the world," the will to the causa prima.'  This is taken from Beyond Good and Evil by Friedrich Nietzsche.

Leave a comment

Your email address will not be published. Required fields are marked *