Building Principles

Published on

Here are the building/engineering principles that I generally subscribe to. As always, they are context dependent – different companies have different needs, a pre-product-market-fit startup has different needs than a scaleup, which again differs from an enterprise. You know the drill. And AI is changing the landscape of this again.

We put these together at TwentyThree with Rasmus, Pete and Balder.

Build for Now

Build for the problem and need that we have now. Don’t build for the need that we had yesterday, do not build for the need that we might have in the future.

We should learn from the past, and we don’t know what will happen in the future.

Get Feedback Fast

We won’t know how much value we deliver to a customer until our software runs in production. Find ways to deliver functionality incrementally and often so we can validate its usefulness.

Build for Maintainability and Change

Most software that goes into production stays in production for at least a few years. Core is even more than 10 years old!

Keep this in mind when building things. In a few years, we will be modifying the code we write today so we may as well make it easier on our future selves.

Some aspects to consider:

1) Is the code readable? In three years, will a person without context be able to modify it?

2) Build independent blocks with high internal cohesion.

3) Not all code is created to be equal; there are differences in requirements on library, product and ephemeral code.

But also: