You probably faced a situation where you had to make a decision. If not - congratulations on being a very lucky person. For mortals like me however, we have to make decisions all the time, from "what T-shirt should I wear today?" through "monolithic architecture or micro services?" to "interface or abstract class?"
So many options - some impactful, some inconsequential; some tiny, some huge; and yet they can paralyze you all the same. So let's not make any?
Naked and afraid
If you're a gamer like me, you've definitely heard of challenge runs - you play a game with a self imposed challenge, for example:
- You can only use a specific weapon.
- Pacifist runs where you can't kill any enemy.
- No hit runs where you can't get hit by any enemy.
To get my point across, I will focus on Naked Club Run challenge from Elden Ring.
Elden Ring is an action RPG game made by FromSoftware, who are notorious for making extremely difficult games, and Naked Club Run is a challenge, where you disregard any help from the game developers, and complete the game with no armor, no leveling up, and only with your trusty club.
This is an extreme example, because Elden Ring in and of itself is already a difficult game, and this challenge makes it substantially harder, but I want you to direct your gaze to the premise of this article - making decisions is hard, so let's stop making them.
The club is mightier than the freedom
Like any RPG, Elden Ring has a lot of character freedom, you choose your stats, armor, weapons, skills, and so on and on and on.
This freedom is great, but a lot of the time you sit and stare at your screen, comparing 2 weapons and trying to decide which one is better.
Weapon A hits harder, but Weapon B is faster and looks cool, but Weapon A is also longer.
Does this sound familiar?
TypeScript has better type safety, but JavaScript has no transpilation step and is more flexible, but TypeScript has better autocompletion.
One of many examples that I could come up with but I shan't. The Naked Club Run bypasses this decision making process, you have no choice, you have to use the club, and you have to make the best out of it.
What is your club?
In software development, your club could be a specific programming language, stack, creed, or even a tool that you use. There are many ways to limit your options, which in turn will allow you to explore the options you have left much deeper:
- Use a text editor instead of an IDE and use only what you know
- Use only anonymous functions, maybe take it a step further and try not storing any variables
- Use only one programming language for your entire stack (except JavaScript 👀)
- Limit your file size to only 50 lines of code (I tried this one and it REALLY forces you to adhere to SOLID principles)
But why?
Is it practical? This is a question you have to answer yourself, dear reader.
My take? Depends. In an enterprise environment, you have an already established architecture and patterns, your decision scope is most likely pretty narrow already and decision paralysis is the least of your worries. Greenfield personal projects on the other hand? Now that's where the pudding is.
So add this to your toolkit, and next time you struggle with decision making, try to come up with a challenge, see how far that will take you.
Got challenge ideas? Drop them in comments, I'm interested what y'all can come up with!
Top comments (0)