We Shape our Software and Afterwards our Software Shapes Us

Chris Lord
The Startup
Published in
5 min readJan 22, 2019

--

Over 50 years ago, Melvin Conway published an observation that now bears his name: the design of software tends to reflect the structure of the organization that builds it.

To the extent that an organization is not completely flexible in its communication structure, that organization will stamp out an image of itself in every design it produces.
— Melvin Conway in How Do Committees Invent?

It’s been a surprisingly robust bit of conjecture, considering it dates back to the early days of computing and work on software like COBOL and ALGOL compilers. Much has changed about the software we build, but anyone who works in the industry knows Conway was right. And recent studies confirm it.

But focusing too much on Conway’s law obscures his conclusion: “Because the design which occurs first is almost never the best possible, the prevailing system concept may need to change. Therefore, flexibility of organization is important to effective design.” Our organizations are not destiny and our designs are not doomed. Both are malleable, and changes in one will affect the performance of the other.

Conway’s Law in Reverse

Organizations that are strongly committed to a design can see their own structure mold to fit. At Runnable, an organization that was somewhat hierarchical was reflected in an architecture that was somewhat modular. The team made a conscious decision to move to a microservice event-based architecture and over time saw Conway’s law run in reverse: “Now we have a more flat organizational structure than we used to have…We didn’t consciously decide to head in this direction — it happened naturally as a result of the architectural decisions we made.”

Exploiting Conway for Fun and Profit

Software design can follow the structure of an organization, or it can lead it, but is it possible to obtain a specific design by the deliberate arrangement of the organization?

At Just Eat, they did just that. After realizing their monolithic ecommerce architecture could not support their pace of change, they embarked on a redesign around modular microsites — and restructured the teams to mirror the new architecture. Their alignment of the organization helped achieve the desired design outcome and reduced the chance that unintended artifacts would creep in.

Our Buildings Shape Us

Conway’s law introduced us to the connection between organizations and software, and we’ve seen that duality work in both directions, intentionally or not. But there is a deeper connection between people, software and organizations that I think goes less noticed in our attention to Conway’s law.

I was recently in London and had the chance to visit some of the legacies of Barry, Soane, and Churchill. Barry and Soane were architects of much of 19th century London including the Palace of Westminster. And Churchill was, well, Churchill: poignant and pointed, which was brought to life in the Churchill War Rooms I toured.

Reproduced with the permission of Parliament

Charles Barry designed the Commons Chamber based on the original meeting space in St. Stephen’s Chapel, and preserved the intimate and adversarial arrangement where each side sits opposite facing the other.

We shape our buildings and afterwards our buildings shape us.

— Winston Churchill on The House of Commons Rebuilding

When the Commons Chamber had to be rebuilt following its destruction in 1943, Churchill insisted on maintaining the opposing benches instead of the more popular horseshoe design, arguing that that original design was fundamental to parliamentary democracy: “We shape our buildings and afterwards our buildings shape us.” The behavior that architecture enables — or inhibits — alters the lives of those who inhabit it.

So too with Software

At Armored Things, we embrace the principles of Reactive Systems and have designed our decentralized platform around independent asynchronous actors, data pipelines and messages. The easy scaling, relaxed communication constraints and resilience in the face of change are properties we like in our software as much as we do in our daily lives.

Shaping software at our startup…and being shaped by it

Without intending to, the organizational culture we’ve created at Armored Things follows human-scale versions of the software we’ve built — and for many of the same reasons.

Event Sourcing for Humans

At the heart of our organization is a Kafkaesqe message bus for humans, Slack. Channels are our topics to which we post and share a lot. We also have a cadre of bots and integrations that feed, act on and republish information. Everything that happens in our team gets published to a channel: every JIRA change, GitLab action, CI update, operational alert, social media mention, document edit, calendar event. Everything. If something is missing, we add it.

This makes working out loud — another key aspect of our culture — almost automatic: there is a persistent observable log of what each of us is working on (and when) that we annotate and comment as we go. Work is visible before it is done and narrated as it evolves.

We are Living in a Materialized World

(And we are all materialized views, with apologies to Madonna).

Each of us subscribes to what we need and processes messages independently based on our capacity and availability. We catch up when we want, ignore the less relevant, and replay a bits of forgotten history. While that means we each have our own optimized representation of what happens, we are eventually consistent with the other.

This allows us to reduce many of the traditional consistency checkpoints and management overhead. In real terms, we have little hierarchy, fewer meetings, better coordination, and full transparency.

Growing a team can be challenging, but our accidental design seems to be working. Since closing our seed round in July 2018, we’ve welcomed 13 new team members, mostly in engineering. Each has access to the full history of what we’ve done and why, and each brings new ideas and improvements to our cultural design, which is always a work in progress.

Organizational flexibility is, after all, what Conway had in mind 50 years ago.

This story is published in The Startup, Medium’s largest entrepreneurship publication followed by +414,678 people.

Subscribe to receive our top stories here.

--

--

Chris Lord
The Startup

CTO and Co-Founder at Armored Things | Former Head of R&D at Carbon Black | Cybersecurity Geek | Decentralization Solutionist | Mentor | Dad