Cognitive load is real.

Every dangling piece of code in our codebase increases our cognitive load. Every hack we did last week or last month stays in our mind, adding to that load, and then we make mistakes.

Our goal is to reduce cognitive load and automate as much as we can. Instead of just building features, we need to build systems and processes that take care of what needs to be done or changed when we build new things.

Discipline plays a very important role in this. When we have a lot of cognitive load, we tend to make mistakes. We have less bandwidth to focus on the problem at hand and instead think about all these edge cases. We should have the freedom to build features without worrying about regressions or breaking things.

Having better processes helps us reduce cognitive load and lets us focus only on the features. If we have a good testing process, we don’t have to worry about production bugs because we will catch them in the testing phase.

The same goes for code quality and organization. If we have a defined process for how we do things in the code, we can save several hours of back and forth trying to understand what a piece of code needs to do.

Just like a library organizes books alphabetically, we should organize our codebase in a way that is easy to understand and navigate.

Cognitive load is real. The more we reduce it, the better and faster we can build.