Back to the notebook

Software

Small tools, clear boundaries

A tool does not have to do very much. It does have to make its promises clear.

· 1 minute read

A small tool is easiest to trust when its input, output, and side effects are easy to describe. That description is often more valuable than a long feature list. It tells the next person where the tool belongs and where it does not.

Good boundaries make failure easier to understand. A conversion command should not silently replace its source. A report should distinguish missing information from a zero. A background process should have a visible owner and a predictable way to stop.

This is not an argument against automation. It is an argument for automation that leaves evidence. Record the version, keep the original when a transformation is risky, and make verification a separate step from execution.

The smallest useful interface is not always the shortest one. A little explicit structure can save a great deal of interpretation later.

Part of Field Notes, a journal about software, systems, and observations.