Loading...

The Paradox of Freedom

December 20, 2023
3 minutes to read
Share this post:

Hi,

The Paradox of Freedom: The more options we have, the more anxious we become that we chose the wrong thing.

~ Mark Manson

Mark Manson is not a software developer. He is an author. His bestseller: “THE SUBTLE ART OF NOT GIVING A F*CK”

He provides self-help for people who hate self-help books. In this paradox, he refers to life decisions. For example, many people find it hard to enter into a love relationship via Tinder. The options are so vast that with each date, you think you might have something better.

This paradox is also found in software development

I noticed this recently when I tried to understand authentication in an application. I was only identified by machine authentication.

How is it ensured that Service 1 is allowed to talk to Service 2?

When I looked into the repository, I saw code. A lot. Of. Code.

The problem is actually simple. I just expected a simple BasicAuth with hard-wired secrets. But what I found was an implementation with many options. It was supposed to be the same implementation for any authentication. Whether it’s machine, customer, API user, or developer. All needs were to be met with the same implementation.

Such solutions have their price. They are hard to understand. Do all combinations of features actually work? I don’t even know. There might be tests. Probably not.

Too many options in our implementation limit freedom.

My goal - after understanding - was to rotate the credentials. But I couldn’t. It was too complex.

Another example: The choice in the CD Pipeline

Just today, I looked at the CD Pipeline in a project. Here too, actually a simple task. A specific version is to be deployed to a specific system.

Intuitively, I would expect two choices. What should be deployed where. However, the pipeline offers eight options. Do I really want to deploy? Should the following sub-pipeline be triggered? Should only a Dry-Run be performed? Do I want an extra manual approval before deployment?

There are many questions. And every time I want to run it, it costs me mental capacity. I can’t help but read everything and think about it.

There are too many possibilities. I don’t have more freedom. I have less.

And what if an error occurs because of my choice?

I would feel terrible. After all, I could have decided differently. But if all the options are already made for me and then an error occurs, then I am more constructive. It was then a bug of the system. Not of the user.

Perhaps you’re also thinking of a system that offers too many options. How about cutting them down? You will feel free.

This is the last issue of the newsletter for 2023. Next year it continues here and I am already looking forward to it :-). , have a good new year and thank you for your loyalty!

Rule the Backend,

~ Marcus

Top