SOFTWARE
Software Has Constitutions
Uru Onyemaobi
Software is governed not only by interfaces, databases, and APIs, but by constitutional rules that determine what is possible, what is permitted, and where authority ultimately resides.
The interface.
The database.
The API.
The features.
Software is often described through its visible parts.
These parts matter. But they never fully explain the system.
Often, we become so familiar with these layers that entire careers are spent inside them. We become experts in interfaces, databases, frameworks, APIs, and infrastructure.
But beneath these layers are rules.
Rules that determine what is allowed.
Rules that determine what can change.
Rules that determine what states are even allowed to exist.
Rules that determine which transitions are forbidden between those states.
Rules that determine what happens when two actions conflict.
Rules that determine who has authority over what.
Together, these rules form the constitution of the software.
The constitution may never be written down as a single document. It may exist across services, database constraints, domain models, permissions, and scattered conditions inside the interface.
But it exists.
Every software system has one.
The only question is whether it was designed deliberately.
A constitution is not the interface through which people use the system.
The interface presents choices.
The constitution determines which choices are valid.
It is the ground floor of the building.
Everything else is built upon it.
Interfaces change.
Services evolve.
Features come and go.
But none of them can exist before the ground floor does.
A button may allow someone to close a record. But the button does not decide whether the record can be closed, who may close it, or what closing it means.
Those decisions belong somewhere deeper.
One of the easiest mistakes to make is misplacing where governance originates.
When governing rules live inside the interface, presentation begins to control behavior.
A condition is added to one page but forgotten on another. A mobile application interprets a state differently from the web application. A future interface bypasses a rule because the rule existed only inside an old component.
The system no longer has one constitution.
It has several competing interpretations.
This is not merely untidy code.
It is a failure of governance.
A durable system separates what it is from how it is presented.
The interface may change.
The underlying rules should remain coherent.
A record should not become valid because a particular page allowed it. A state should not change merely because a button was visible. A person should not gain authority because one interface failed to check whether they had it.
The constitution must govern every path into the system.
This is why software architecture is not only about organization.
It is about authority.
Where does the final decision live?
Which layer is allowed to determine what is true?
What can the interface request, and what must the system independently decide?
These are constitutional questions.
They become especially important when software represents things that matter beyond the screen.
Responsibility.
Money.
Identity.
Permission.
Ownership.
Care.
Trust.
In these systems, a poorly placed rule does not only produce a technical inconsistency.
It can change what the system permits people to do and what it claims has happened.
The governing rules therefore deserve the same care as the visible product.
Often, they deserve more.
Interfaces are replaced.
Frameworks change.
Databases are migrated.
New applications are built on top of old systems.
A constitution should be able to survive these changes without losing its meaning.
This does not mean that constitutional rules can never evolve.
They can.
But they should change deliberately.
A new feature should not silently rewrite the governing behavior of the system. A design revision should not accidentally alter what a state means. A shortcut in presentation should not become a new source of authority.
Constitutional change should be visible as constitutional change.
That requires separation.
The interface presents the system.
The constitution governs it.
One may change how the system is seen.
The other determines what the system is allowed to become.