Back to lab notesWorking principles
Working principles3 min read

A small tool can be a complete idea.

A focused app does not need to become a platform. It needs to finish a useful job and leave the person using it in a better place.

Imagine a tool that renames a folder of photographs. You choose the files, preview the new names, and apply the change. It remembers the pattern you prefer. It tells you when two names would collide. Then it gets out of the way.

There is a temptation to see that as the beginning of a larger product. Perhaps it needs a library, a sharing service, a team workspace, and an assistant to organize everything.

Perhaps. But the original idea might already be enough.

A small tool is not necessarily an unfinished large tool. Sometimes a narrow purpose is the thing that makes it worth keeping.

Finish the job, not the feature list

For the imaginary photo tool, completion does not mean adding every possible naming option. It means making the whole task dependable.

Can someone understand what will change before committing? Are the original files protected from accidental overwrites? Does cancellation leave things in a sensible state? Can someone discover a mistake and recover from it?

Those details belong to the core job. A social feed does not.

This is the distinction I would use when deciding what to build next: does the addition help someone finish the existing task, or does it introduce a different task that happens to be nearby?

Both can be worthwhile. They should not be mistaken for the same decision.

Make a boundary you can explain

A useful boundary describes the experience rather than an arbitrary number of features.

For this tool, it might be: rename a selected group of files safely, without reorganizing the entire collection. That sentence leaves room for thoughtful improvements while keeping the product recognizable.

A new naming pattern could fit. So could a better preview. A cloud library would need its own argument.

The boundary is not a permanent ban on growth. It is a way to notice when the product is changing direction, instead of discovering it after six unrelated settings have appeared.

Small still deserves care

Keeping the scope narrow is not permission to neglect the unglamorous parts. Clear errors, readable text, keyboard access, and honest explanations matter even when the interface fits in one window.

The same goes for maintenance. A small application can still depend on another service or need updates when its environment changes. Fewer features do not remove that responsibility.

What they can do is make the responsibility easier to describe. You know what the tool promises. You know which paths need attention. You can make a deliberate choice about the work you are willing to support.

Let growth come from a real need

Before adding a feature, write down what someone cannot finish without it. Try to describe the missing outcome without naming the proposed solution.

If the answer is that users cannot tell which files changed, improve the result summary. If the answer is that the product feels too small, there may not be a user problem to solve yet.

There is room at WunderSpark for software with a modest footprint and a complete purpose. A tool that does its work clearly, reliably, and without asking for the rest of your afternoon is a useful thing to have made.

That is a different question from when an experiment is ready to become a product. Readiness asks whether the work deserves someone else’s trust. Scope asks how much work it needs to do.