Pascanilai

← Index

A Note on Small Things

2 min read#craft#software

I have a soft spot for the kind of software you could fit in a glove compartment. One file. A few hundred lines. A thing that does one thing, does it well, and then gets out of the way.

There is a particular dignity to such programs. They are not trying to become platforms. They are not engineered for the hypothetical user who will arrive in five years. They are done, in the old and unfashionable sense of the word — the sense in which a cabinetmaker is done, or a letter is done, or a meal is done.

The failure mode of ambition

The failure mode of ambition is that it delays everything. The twelve-file architecture, the pluggable backend, the clever little abstraction that anticipates three cases that will never arrive — these are the sugary foods of software, and they taste, at first, like progress. They are not.

Most of the useful things I have made, I made in an afternoon and never touched again. Most of the things I spent months architecting are, today, nowhere.

A short defense of finishing

There is also the small matter of finishing. Finishing is unglamorous. No one posts on Twitter about the boring last 20%: the edge cases, the error messages, the copy you had to write at 11pm because you suddenly realised the user would see it. But finishing is the only part that actually matters. A thing that is 95% done is 0% useful.

"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." — Saint-Exupéry

Take one of the small things you have been meaning to make. Do not plan the next version. Do not sketch the architecture. Write it this weekend. Finish it. Put it in the glove compartment.

Small things, finished, outnumber — and outlast — large things, begun.