Skip to content

Exploring the future of tech and economics.

Go back

The power of system design

By Leo Traven

Edit page

TL;DR:

Building systems in our daily lifes

System design is not a discipline reserved for engineers; it also helps in daily life. You usually have three things: an input, a system that processes the input, and an output. Many daily routines follow that order. For example, cooking consists of having food and energy (inputs), cutting and mixing that food (processing), and a meal as the finished product (output). In this example, this is okay, especially if it’s done to relax.

Sometimes, there are more efficient ways to get a similar result without doing repetitive work. This is where the focus shifts from manual routines to constructing systems. By doing so, the role of the individual shifts from the processor to the architect. Usually, the goal is to decouple the time and effort of an individual from the desired output. Oftentimes running in the background, these systems can lead to productivity gains with little or no human input. A simple example of such a system is a spam filter that mostly prevents people from having to check each email separately. Another example would be automatically routing income to different accounts for different purposes.

At work, this can mean building systems that automatically detect data being uploaded, analyze it, extract information from it, and trigger actions based on the information. This is exactly where the magic of programming code lies. While being created once, it can be executed many times.

The problem of addition

Although such systems can be very helpful, they also tend to become very hard to maintain as they grow in size. When developing systems, the intuition is often to add parts to develop them further. As the number of moving parts grows, the complexity does so as well. If storage becomes limited, new containers are purchased. If a small subset of users wants a special feature, it is just added on top of the already existing code. If someone uses a tool incorrectly, its manual gets expanded. If we want to automate a process, we take an already existing Excel file and try to add an agent to keep it up to date. But what if we could just remove the Excel file and simplify the process before automating it?

We seem to think that creating solutions always means building new things, but every part, step, or rule introduces a new possible point of failure. This can make a system opaque and hard to maintain.

Removing, rather than adding

The solution to creating lean processes lies in the power of subtraction. For designing systems, you might want to take a look at the following process popularized by SpaceX, Tesla and others.

  1. Make the requirements less dumb. Question existing rules and constraints to ensure they are not based on outdated, incorrect, or overly cautious assumptions. Every requirement must come with the name of a person who takes responsibility for it. This avoids ending up in a situation where requirements from a few years ago from people already gone block the system. You can only talk to people, not to departments.

  2. Delete parts or processes. Aggressively remove components. If not at least 10% of deleted parts are ultimately added back due to necessity, the initial deletion phase was not aggressive enough. Make sure you never optimize things that should not exist.

  3. Simplify and optimize. Only after unnecessary components are removed should the remaining parts be refined and improved.

  4. Accelerate cycle time. Increase the speed and efficiency of the streamlined process.

  5. Automate. Implement automation only after the system has been thoroughly leaned out.

Keep it simple

Ultimately, building systems in our daily lives and at work is about reclaiming our time and energy. True efficiency isn’t found in creating massive workflows that require constant maintenance. It is found in simplicity. The next time you find yourself bogged down by a complex routine, a messy Excel sheet, or a convoluted workflow, resist the urge to build another workaround or add another rule. Instead, take a step back, look closely at the moving parts, and ask yourself: What can I simply remove?


Edit page
Share this post on:

Previous Post
The logic of product positioning
Next Post
Hosting the world