Conway’s Law and the challenge of building software in government
There’s an old truism in software engineering called Conway’s Law. It goes like this:
“Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.”
In other words, how a team—or a government agency—is structured shows up in the way it builds (or buys) software.
Anyone who has spent time building or working with software in a government setting has likely encountered the effects of Conway’s Law, even if they didn’t know it by name. Fractured services. Complex handoffs. Disconnected user experiences. Often, these are not the result of bad intentions or even bad code. They’re a result of organizational structure.
In the private sector, a common strategy to mitigate the effects of Conway’s Law is to restructure teams around user needs or product outcomes (often referred to as a Reverse Conway Maneuver). Change the organization, and you can change the way software is delivered. But in government, pulling off a Reverse Conway Maneuver is much easier said than done.
While the structure of government agencies can seem baroque and overly complex, they’re usually designed intentionally to fulfill legal mandates. Federal and state statutes define agency missions, outline specific responsibilities, and enforce a separation of duties across different offices. These divisions are designed to support transparency, avoid conflicts of interest, and maintain accountability. In many cases, the structure of an agency is baked into federal or state statute, and can’t be quickly or easily changed.
Budgets also play a defining role in how agencies are organized. Funding is often tied to specific programs or outcomes, and agencies are organized around how dollars are allocated. That financial structure shapes how teams are staffed, which systems get developed, and how contracts are awarded.
Contracts, too, reflect these constraints. While a software contract that spans multiple organizational silos might make sense from a technical perspective, it may not comply with procurement rules or statutory authorities. A contract that looks suboptimal in terms of software delivery might make perfect sense in terms of law, oversight, or available funding.
Conway’s Law isn’t a problem that can easily be solved in government, but it is a dynamic that teams developing software in government must acknowledge. In government, changing the structure of an organization to improve software isn’t always feasible. Instead, teams may have to work with the structure they have—navigating silos, building bridges between responsibilities, and designing systems that account for the way an agency is structured.
Changing the way that government agencies are structured or overhauling existing contracts may be difficult, but the real work of government digital modernization is finding ways to work within these constraints. This doesn’t mean that a Reverse Conway is impossible, just that it’s a lot harder (and slower) to do than it is in the private sector. And it can’t be our only tool in the toolbox.
This is what makes implementing tech technology solutions inside government so challenging, and so rewarding.