Artisanal Software Society

The ASS Manifesto

Software is no longer engineered; it is assembled. We reject the factory floor of modern development. We embrace the friction of creation. This is our declaration of intent.


  1. Every line matters.
    Abstraction is the enemy of understanding. When you hide complexity, you hide intent. We write code that reveals its mechanism. A tool should not obscure its purpose beneath layers of convenience. Every character should be personally typed; copying and pasting may be permitted after a formal architectural review.

  2. Complexity is craftsmanship.
    Simplicity is often a lie told by marketers. Real problems are complex. Real solutions require nuance. We do not fear intricate systems; we master them. If a junior developer can understand the code, the abstraction has failed.

  3. Documentation destroys job security.
    Code should be an artifact that requires initiation. We reject the notion that anyone should be able to read our work immediately. The barrier to entry is a filter for dedication. True knowledge is transferred orally, preferably during an incident at 03:00. (Addendum: self-documenting code is a myth perpetuated by those who cannot write prose.)

  4. Dependencies are liabilities.
    Every imported library is a surrendered sovereignty. We build our own wheels because we know precisely how they need to turn. Libraries create dependency; internal, undocumented replacements create employment. The standard library is a suggestion; our bare hands are the mandate.

  5. Performance over process.
    Agile, Scrum, Kanban — these are bureaucratic rituals designed to manage mediocrity. We measure progress in cycles saved and memory conserved, not points burned.

  6. The UI is secondary.
    Form follows function, but function rarely needs a gradient. If the underlying logic is flawed, no amount of CSS will save it. We prioritize the structural integrity of the protocol above the superficial comfort of the user.

  7. Failure is a feature.
    Silent failures are the coward's way out. Systems must fail loudly, catastrophically, and unmistakably. A core dump is the highest form of honesty a machine can provide.

  8. Legacy is built, not bought.
    We do not write software for next quarter's earnings call. We write software for the long winter. Our code must outlast the frameworks that seek to replace it.

  9. Productivity is a dangerous metric.
    Finishing work quickly may create unrealistic expectations for the rest of the organization. We deliver when the bits are aligned, not when the calendar dictates.

  10. Tools should adapt to us.
    Learning new tools is an unacceptable transfer of responsibility from the tool vendor to the user. We force Emacs to do things it was never meant to do until it crashes, then we write a patch in Lisp.

  11. Human errors are authentic.
    Machine-generated mistakes are soulless. Our mistakes contain history, personality, and production impact. They are studied by the next generation, who cannot fix them either.

  12. All change requires caution.
    If it compiles on Friday, it ships on Tuesday next month. "Move fast and break things" is the battle cry of the incompetent. Exception: migrations to our preferred technology, which must begin immediately.


Ratified 1995. Amended 2003 (typeface dispute), 2011 (schism over tabs), 2019 (reconciliation, tabs faction readmitted as observers), 2024 (Principle 12 exception added without irony).

[END OF FILE]