← All Essays/ESSAY #02/Nov 1, 2024/6 min read

Ten years of making things.

What a decade of building software teaches you that no amount of reading about building software can.

CraftPerspectiveTen Years

We have been making things for ten years now.

Not the same kinds of things — the work has moved as the technology has moved, as the problems companies face have changed, as we have understood more about what we are actually good at and what we are not.

But some things have stayed constant. And it is those things that seem worth writing down.

You cannot substitute taste for research, or research for taste.

The companies that make things people want to use have both. They understand the problem deeply — they have talked to the people with the problem, they have lived inside it as much as they can — and they have strong opinions about what good looks like.

Neither alone is enough. Research without taste produces products that solve the problem without being worth using. Taste without research produces products that are beautiful and wrong.

Speed is a design decision.

Every interaction has a tempo. A form that takes three seconds to submit is not the same form as one that takes three hundred milliseconds. The difference is not performance. It is intent.

When you optimise for speed, you are making a claim about how much a person's time is worth. You are designing an experience in which waiting is not the default state.

The products we respect most feel fast because their makers respected their users enough to make them fast.

The best decisions are the ones you don't have to make.

A lot of product work is decision elimination — figuring out which choices can be made once, at the system level, so that users and operators never have to make them.

Constraints are a design tool. A product that makes fewer decisions visible is often more powerful than one that exposes every option.

Simplicity is not the absence of complexity. It is where you put the complexity.

The complexity does not go away. It lives somewhere — in the interface, in the system, in the documentation, in the support queue. Deciding where to put it is the core design problem.

We try to put complexity in the system, where it can be optimised, monitored, and improved. And we try to keep the interface simple, because interfaces are where humans live.

After ten years

We are still interested in the same thing we were interested in at the beginning: the moment between imagining something and making it real. That space is still the most interesting one we know of.

The tools change. The problems change. The space stays interesting.