Why Healthy Systems Prefer Fewer Exceptions

<Author/>

Hatched by <Author/>

Jun 08, 2026

9 min read

71%

0

The hidden cost of “just one more exception”

What do a bootloader warning and an open source license policy have in common? At first glance, almost nothing. One lives deep in the plumbing of a Linux installation, where a few package commands decide what the machine will boot. The other lives in the legal and social layer of software, where a community decides how code can be copied, changed, and shared. Yet both point to the same uncomfortable truth: systems fail not only when they are too rigid, but when they accumulate too many exceptions.

That is the paradox. We often imagine progress as adding flexibility, adding options, adding special cases for every edge condition. But every exception has a hidden tax. It makes the system harder to reason about, harder to maintain, and easier to misuse. The command to remove old kernel packages before installing a virtualization layer is not just housekeeping. It is a reminder that clean systems depend on deliberate simplification. Likewise, the hesitation around inventing a new license is not bureaucratic gatekeeping. It is recognition that every new exception in the legal fabric of free software imposes cognitive and practical costs on everyone else.

A system is not judged by how many special cases it can tolerate, but by how gracefully it can avoid needing them.

This is the deeper connection: technical infrastructure and governance both become fragile when they grow by exception instead of by principle.


Why complexity is often disguised as freedom

People usually ask for exceptions in the name of freedom. A custom kernel package, a bespoke boot setup, a new license for a new project, a one off rule for this particular situation. The appeal is obvious: tailor the system exactly to the need in front of you. The problem is that what feels like freedom at the moment of creation often becomes friction later, when someone else must understand, preserve, or extend what you built.

Think of a house with every room designed by a different architect. One staircase curves left, another rises from an unexpected corner, and the electrical panel is hidden behind a wall panel that only opens with a secret latch. Each decision may have made sense in isolation. Together, they create a place that is beautiful in theory and exhausting in practice. Software systems behave the same way. A machine that retains old kernels, mismatched dependencies, and compatibility artifacts is not necessarily more robust. It is often just more confusing.

Licensing reveals the same pattern at a social scale. A license is not only a permission slip, it is a coordination device. When a project uses a well understood free software license, others can quickly answer important questions: Can I modify this? Can I redistribute it? Can I combine it with other code? When a project invents its own license, the immediate gain in specificity is purchased at the price of ambiguity. Even if the text is clear to the author, the ecosystem must now spend time decoding whether it is actually compatible with the broader world of free software.

This is why proliferation matters. The problem is not simply that there are many licenses. It is that each new one forces every downstream user to do more interpretive work. Freedom that cannot be efficiently recognized by others often becomes unusable freedom.


The principle of legibility

A useful way to connect these domains is through the idea of legibility. A system is legible when the next person can see what it is doing, predict its behavior, and work with it without heroic effort. Legibility is different from simplicity. A thing can be complex and still legible if the complexity follows a clear architecture. It can also be small and illegible if it is full of hidden assumptions.

In a Debian based Proxmox installation, removing packages that would otherwise keep the machine attached to an older boot path is an act of legibility. The machine becomes easier to understand as a virtualization host because fewer unrelated artifacts remain to confuse future updates, kernel selection, or boot behavior. The point is not minimalism for its own sake. The point is to ensure the machine tells a coherent story about what it is for.

Licensing works the same way. A mature ecosystem gains legibility from standard forms, not because standards are magic, but because they create a shared interpretive language. If you are building on top of free software, the question is not, “Can I express my exact preferences in a bespoke legal document?” The better question is, “Can others understand my intentions without spending precious time on legal archaeology?” The more legible the answer, the more likely the code can actually participate in a commons.

Here is the mental model: every system has two audiences, the creator and the next operator. The creator optimizes for present intent. The next operator pays the costs of interpretation, maintenance, and repair. Healthy systems reduce the gap between the two.

The best design is not the one that says everything, but the one that says enough in the language the ecosystem already understands.


Exceptions are expensive because they multiply context

Why do exceptions become so costly? Because they do not stay isolated. An exception in one layer changes expectations in another. A leftover kernel package can influence boot order, update behavior, and recovery procedures. A custom license can affect compatibility, adoption, contribution, distribution, and corporate use. What seems like one local choice becomes many distributed consequences.

This is the real hidden tax of exceptions: they increase context size. Every person who touches the system must carry a larger mental model to avoid breaking it. That tax is invisible when a system is small and everyone remembers the reasons. It becomes crushing when the original author is gone or the project has grown.

Consider a practical analogy. A library that uses a standardized cataloging system can be navigated by any trained librarian. A library that invents a unique filing scheme for each shelf may feel clever at first, but soon nobody can find anything without the original creator’s help. Likewise, a software stack that adheres to recognized conventions can be updated, audited, and migrated by others. One that relies on a patchwork of exceptions becomes a museum of local decisions.

This is why “just this once” is a dangerous phrase in engineering and governance. It is nearly always spoken from the vantage point of the present, while the costs are paid by the future. The bootloader does not care about your temporary convenience. The legal ecosystem does not care about your aesthetic preference for originality. Both reward restraint.

The lesson is not that novelty is bad. It is that novelty should be introduced at the highest level of leverage, not in the low level plumbing that everyone else must inherit.


A better test: does this need to be unique?

There is a simple but powerful question that can prevent a lot of unnecessary complexity: Does this actually need to be unique, or does it only feel unique because I am close to it?

Many teams fail this test. They create custom deployment processes because the standard ones feel unfamiliar. They write custom licenses because existing ones feel like compromises. They preserve old packages because removing them seems risky. In each case, the urge toward uniqueness is often a substitute for deeper work: learning the existing pattern well enough to use it, or refactoring the system so that the standard pattern fits.

That does not mean standards are always sufficient. Sometimes a genuinely new situation requires a new mechanism. But the burden of proof should be high. A new license, for example, should not be a statement of artistic identity. It should be an answer to a real incompatibility that cannot be solved by existing options. Likewise, keeping old packages around should not be default inertia. It should be a conscious choice with a clear recovery or compatibility story.

Here is a practical framework:

  1. Start with the shared default. Use the most recognized, conventional option that fits.

  2. Name the actual constraint. Are you solving compatibility, performance, governance, or aesthetics?

  3. Measure the downstream cost. Who has to understand this later, and what extra context will they need?

  4. Prefer removal over accumulation. Every retained artifact should justify its own existence.

  5. Create exceptions only when they lower total complexity. A special case is worthwhile only if it reduces the system’s overall burden, not just your immediate discomfort.

This framework applies cleanly to both machines and institutions. The same instinct that removes obsolete kernel packages from a Proxmox host should also guide how we think about legal and social infrastructure. Maintain only what serves the current architecture. Let the system become more coherent, not merely more personalized.


Key Takeaways

  • Treat exceptions as liabilities, not trophies. Each one adds hidden maintenance, interpretation, and compatibility costs.
  • Optimize for legibility. A good system should be easy for the next person to understand and operate.
  • Use shared standards whenever possible. In software and licensing alike, recognized conventions lower coordination costs.
  • Remove what no longer serves the architecture. Old packages, obsolete assumptions, and custom one offs often linger long after their usefulness has passed.
  • Ask whether uniqueness is necessary or merely expressive. Novelty should solve a real problem, not simply satisfy a desire to be different.

The deeper ethic of clean systems

There is a quiet moral dimension to all of this. Systems that minimize exceptions are not just more elegant. They are more generous. They respect the time of future maintainers, downstream users, and adjacent communities. They make it easier for others to participate without first deciphering a private language.

That is why the issue is bigger than package management or license choice. It is about the ethics of building things that others must live with. A clean boot path says, in effect, “I have made this machine easier to trust.” A well chosen standard license says, “I have made this code easier to use without legal anxiety.” Both are acts of stewardship.

The deepest insight may be this: good systems do not merely support freedom, they make freedom portable. They allow intent to survive beyond the author’s presence. They turn private cleverness into public reliability. And they do it by resisting the seductive but costly habit of special casing everything.

So the next time you are tempted to preserve one more old package, invent one more custom rule, or draft one more bespoke license, ask a different question. Not, “Can I make this exact?” but, “Can I make this legible?” In the long run, that question is usually the difference between a system that merely works today and one that others can still trust tomorrow.

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣