How To Manage These Two Types of Decisions To Reinvent Yourself
Some decisions need to be made slowly, while others require a faster approach
📣 Announcement
Hi Friend! My Family member is coming from Asia so I'll be taking a break from writing to focus on work, construction, and self-reflection. I'll be back in mid-December or early next year ✌️.
We are to focus too much on making decisions instead of taking action.
Part of the reason is that we are too afraid of the consequences of those decisions. Those consequences are irreversible.
That's the problem with decisions. The stakes always seem high. Loss of time. Loss of money. Loss of ego.
And, if nothing else, loss of self-esteem. Because it sucks to be wrong.
But in fact, most decisions are reversible.
I was reading Working Backwards by Colin Bryar and Bill Carr about the culture and insight behind Amazon's success, and one note on one of the chapters stood out to me.
He said that Jeff mentioned in the shareholder meeting in 2015 that one of the impediments to innovation within the company is to treat "one-size-fits-all" decision-making.
"Some decisions are consequential and irreversible or nearly irreversible - one-way doors - and these decisions must be made methodically, carefully, slowly, with great deliberation and consultation. If you walk through and don't like what you see, not the other side, you can't get back to where you were before. We call these Type 1 decisions. But most decisions aren't like that - they are changeable, reversible, and two-way doors. If you've made a suboptimal Type 2 decision, you don't have to live with the consequences for that long. You can reopen the door and go back through. Type 2 decisions can and should be made quickly and by high judgment individuals or small groups."
Prime was a two-way door decision. If a prime particular combination of subscription, free shipping, and quick delivery had not worked, we have kept tinkering with the formula until we got it right. In fact, Prime was not our first go at solving the problem - it was preceded by another two-way door decision, Super Saver Shipping, which eventually morphed into Prime. The Fire Phone, on the other hand, was more of a one-way door decision: upon withdrawing it from the market, Amazon did not turn around and say, "Okay, that happened, now let's try another phone."
When faced with a decision, there may be better approaches than blindly following the Lean software development principle of deciding as late as possible. Sometimes, there is an easy-to-reverse choice available to us that we should consider. Most of us focus on the potential regret we might feel if a decision doesn't work out, even if it's something we want to do.
Looking back, we often regret what we did not do instead of what we did. It's the missed opportunities, like not starting a business, not changing careers, or not making a move, that we wish we had taken. Generally, we don't regret what we did, even if we made a huge mistake because we can always fix it. We regret that we didn't take a chance on ourselves the most.
Reversible vs Irreversible Decisions
Technically, all decisions are reversible; it is just how expensive to reverse that decision.
What distinguishes type 1 decisions is that they are not easily reversible. Sometimes, the cost of going back is so high that it's either unviable or expensive.
You distinguish type 2 product decisions if the cost of going back is similar to or lower than the cost of delaying and overthinking the decisions.
Example of Irreversible Decisions
Purchasing a real estate property.
While not impossible to reverse, it would have been prohibitively costly. As with any decision that involves a lot of money — the biggest check I've ever written, I dove into the details, wanting to understand everything.
At first, I was hesitant to make the purchase and waited until the bidding war was over. However, when interest rates rose, the deal became much more attractive. I kept hearing from people who have experience buying real estate that the outcome of the interest rate is worse than the uncomfortable bidding war.
Therefore, I bit the bullet, sold most of my stock shares from Disney, and bought my first property.
Looking back, it was the best decision I made in my life.
Decisions that will hurt Your Reputation
Not defending your actions or your words in the project initiation, which loses trust in the team.
If you keep making false promises, the team will lose trust in putting more projects in you. Therefore, these promises require careful thought to understand the underlying problem of the system.
To translate to software development, many engineers overestimate how easy a project will be without diving deep into the underlying complexity. Only later did they find that other unknown system parts require more time. We are dealing with abstract systems that are constantly changing as we change them. Therefore, saying something like, "It is trivial," or "This can be done in X amount of days," creates unnecessary pressure around your development time. Now you have the time pressure to accomplish this task in X amount of days, or else you must renege on your promises. The best way to frame what you tell others regarding estimation is to word it based on "unknown" and complexity. If they pressure you to estimate a project based on X number of days, you should think carefully about how long this can be done, but add an extra buffer to what should be done. For instance, if you think the project can be done in 5 days, you should put an extra 3 days of buffer and say, "it is estimated in 8 days, but this is a rough estimation should no accidental events occur".
Solving the Problem without Understanding the Problem
Taking the time and energy to solve problems you don't know are problems. Then you show it to your boss or customer, and they get a sour look while you explain this awesome feature you added that they did not ask for and don't need. You spent the time and energy, even refactored, and there's no way of returning it. Do as much as you think you need and no more. If you need more, then do more, but don't do more, and discover that less would have been okay.
Not properly designing an interface will create a high-cost mistake. In my previous article, How to Design a Resilient API that Prevent Site Incident (link), the API represents your contract with your clients and plays a crucial role in the design of your system. If there is a need to modify the API contract, it may require creating a migration or even redesigning the entire system, affecting both your and the client's systems. Hence, making decisions on a good API contract is an irreversible decision. It should be made with care.
Example of Reversible Decisions
Most decisions that are not as expensive to reverse are reversible. Making slow decisions is more costly than fast ones in these kinds of decisions.
Determining Which Type of Database to Use in a Project
Although the database was a big part of the system design consideration, some people even think it is costly. However, if you are building a new service that hasn't proven product-market fit, it doesn't matter how you design your system.
Simplicity and as indirection as possible will be the best for fast iteration. However, tinkering around the best database for the new service will be more costly than shipping the product to market to gather user feedback.
Levels. FYI, a career site for professionals has around 1-2 million unique users every month. It started out without any backend or any fancy infrastructure. The site uses Google Sheets for its database. This helps them start simple, iterate, and frugal from the beginning. By not needing any operational maintenance on the database server and saving money on setting up all the APIs on a cloud service, they can build the dynamic site and bootstrap their idea faster.
Doing lots of research on a product that you want to purchase
I do a lot of research on the product I want to buy. Every single one, either a small purchase or a big one.
For instance, if I want to buy running shoes, I would go through reviews over reviews to distinguish which product is more appropriate for my needs, my foot size, and my purpose. Then, I'll tinker with it for more days to ensure that I really NEED this product before buying it. Although this frugality behavior is conducive to making prudent, logical decisions, I have wasted a lot of my mental space and time doing all the research - where, in fact, you will only know if the product is really good by actually trying it.
Nevertheless, this behavior can also avoid a lot of impulse shopping, increasing your saving rate in the long run. Therefore, make a necessary judgment on whether or not to purchase.
Naval realized that he would never be worth more than he thought. "No one will pay me more than I think I'm worth." Therefore, he would pick an hourly rate he thought he was worth and say, "I am never going to squander my time for less than this." Then, if he has to return something and is standing in line, and it is below his hourly rate, he will throw it away or give it away. This story teaches that these decisions you make are reversible, and the worst you can do with these types of decisions is to put more time into thinking about making these decisions.
Deciding Which courses or the Order of Learning New Knowledge in your Professional Career Journey
Too often, people ask, "What should I learn next once I have mastered functional programming?"
Well, the first thing is that there are always ways to go deeper and deeper into functional programming. You can either deepen your knowledge in functional programming or learn something else that helps improve your knowledge in your professional career. Once you learn about all the category theory and how to think about writing your application functionally, you are in the black belt of your functional programming journey. However, does that journey end in itself? In martial arts, a black belt means you are highly proficient in the basic techniques and principles of functional programming. However, that doesn't indicate that you are an expert. In fact, it is just the beginning. That doesn't mean that learning all functional programming knowledge is meaningless. Being able to think functionally helps you become a profound software engineer, and most of the clean code is predicated on thinking about applications in a functional way.
We are often stuck in analysis paralysis, where we look at the review of which courses to take and try to optimize which steps to take next that will incur immense impact. In fact, those orders and decisions are reversible - meaning, you can take the K8 course to deepen your knowledge of K8 infrastructure and then take that communication course to better your leadership skills. If you realize that K8 infrastructure courses are not conducive to your professional learning journey, you can quit and do something else.
The key here is to be biased towards action. Making the action and reversing the action is far better than not making any action at all.
Tips for Managing Your Decisions
When making decisions, there are two types of risks: irreversible and reversible. The biggest risk to irreversible decisions is to decide too early, while the biggest risk to reversible ones is to wait until the last minute.
Jeff Bezos said that making decisions with about 70% of the information you wish you had is usually sufficient. Waiting for 90% is often too slow. It's crucial to be able to recognize and correct bad decisions quickly. Being wrong can be less expensive if you can course-correct, but being slow will always be costly.
To save time, it can be helpful to use the phrase "disagree and commit." If you strongly believe in a particular direction, but there is no consensus, you can say, "I understand that we disagree, but would you be willing to take a risk with me? Disagree and commit?" This phrase acknowledges the disagreement while encouraging a commitment to move forward. Since no one knows the answer, getting a quick yes may be the best way to progress.
Recap
Decisions can often seem overwhelming, requiring our full attention and commitment. However, within the complexity of every decision lies an essential truth: they are not just frozen moments in time but rather dynamic threads that weave the narrative of our lives. The fear of consequences can often cloud our judgment and cause us to hesitate. We may believe that once a decision has been made, it is set in stone and cannot be changed.
It's important to remember that most decisions can be reversed, and the best way to make decisions is to take action. Sometimes, you'll make the wrong decision with a two-way door, but that's okay. Trust yourself to figure out how to respond and react. Remember that you'll emerge on the other side with more skills and experience.