Skip to content
Marco Gerstmann

Simplicity Is Harder Than It Looks

Every few months, I fall into the same trap.

I become convinced that my productivity system needs an upgrade.

Maybe I should reorganize my notes. Maybe my folder structure could be improved. Maybe tags are the answer. Or perhaps I should switch to an entirely different workflow that promises to be more “future-proof.”

For a while, it feels great.

I spend hours refining the system. Everything looks cleaner, more organized, more sophisticated. It feels like I’m becoming more productive.

Then, a few days later, I realize something.

I haven’t actually been more productive.

In fact, I usually end up going back to the simpler setup I had before.

Not because it was perfect.

Because it quietly stayed out of my way.

Complexity Feels Like Progress

I don’t think this is unique to note-taking or productivity systems.

As engineers, we’re natural optimizers.

We enjoy finding cleaner abstractions, more elegant architectures, and more flexible designs. Solving these kinds of problems is part of what makes software engineering fun.

The problem is that complexity often feels like progress.

Adding another layer of abstraction feels productive.

Generalizing a component feels productive.

Introducing a new tool feels productive.

Sometimes, those changes are absolutely the right decision.

But sometimes, we’re only improving the system around the work—not the work itself.

Software Is Full of the Same Trap

I’ve noticed the same pattern in software projects.

A simple solution works.

Then we start thinking about all the things it might need to support one day.

Maybe this should become a generic framework.

Maybe we should split it into another service.

Maybe we should build a configuration layer.

Maybe we should make it extensible from the beginning.

Each decision sounds reasonable on its own.

Together, they can slowly transform a straightforward system into one that’s harder to understand, harder to maintain, and harder to change.

Not because any individual decision was wrong.

Because we kept optimizing for possibilities instead of today’s reality.

Boring Can Be a Feature

One thing I’ve learned is that the best systems often become invisible.

I don’t think about my text editor while I’m writing.

I don’t think about Git while I’m committing code.

I don’t think about my note-taking system when I’m capturing an idea.

The system simply supports the work.

Ironically, that’s also why these systems can start feeling boring.

And that’s often when I’m tempted to “improve” them.

A Question I Try to Ask Myself

Whenever I feel the urge to redesign a workflow or introduce another layer of abstraction, I try to pause and ask myself one question:

Does this make the work better, or only the system around the work?

I don’t always like the answer.

Sometimes I realize I’m solving an imaginary problem simply because solving it is more enjoyable than doing the actual work.

Final Thoughts

I’m sure I’ll redesign my productivity system again someday.

And I’ll probably convince myself that this time it’s different.

But experience has taught me something I keep forgetting:

Simple systems aren’t exciting.

They’re dependable.

They let you focus on what you’re trying to accomplish instead of constantly thinking about the system itself.

Whether it’s a note-taking workflow or a software architecture, I’ve found that simplicity isn’t the absence of sophistication.

It’s choosing not to spend complexity where it isn’t needed.


Next Post
Your Queue Will Deliver That Message Twice. Be Ready.