Three lessons have stayed with me since, and I have watched every one of them play out again in other people's companies.

The first is to plan before you build. Before writing a line of code you need an honest answer to who will pay for this, how you will reach them, and what it is actually worth to them. In B2B especially, the people who love your product and the people who sign the cheque are rarely the same, and if you do not understand the buying process you will hit a wall you never saw coming.

The second is to test the market early. You can learn most of what you need before building much at all. A landing page and a small ad budget will tell you whether anyone clicks buy. A modest pilot will tell you whether it holds up in real use. And the basic arithmetic will tell you whether it can ever work: if it costs ten pounds to win a customer worth eight, no amount of good engineering fixes that.

The third is to know why you are doing it. Building to sell, solving a problem you care about, and making something for the love of it are all fine reasons. They also pull in different directions, and being honest about which one you are chasing changes almost every decision that follows.

The one that matters most

Above all, surround yourself with people who will challenge you. The ones who poke holes in your assumptions and make you defend them, rather than the ones who tell you the idea is great. Those conversations are uncomfortable, and they have shaped every project I have worked on since.

The hard part was never building the thing. It was being honest about whether anyone wanted it.

Twenty years on, the tools have changed beyond recognition. The lessons have not moved at all.