All notes
3 min read

Small tools are still products

A script becomes a product the moment another person has to understand what it does, trust its output, and recover when it fails.

Product EngineeringInterfaces

There is a tempting gap between a useful script and a polished application. I used to think crossing that gap mostly meant adding a nicer interface. Now I think the real change is taking responsibility for someone else's uncertainty.

The questions a tool should answer

  • What can I give it?
  • What is it doing right now?
  • Can I trust this result?
  • What should I do when something goes wrong?

Progress states, examples, validation, and useful errors are not decoration. They are part of the system's behavior. A small tool that answers these questions can feel more complete than a large app that leaves them ambiguous.