Fast, cheap, and good enough
system 1 vs system 2 — TCP vs UDP — obviously — why I’m not buying a car
Perfection is expensive. Most people know that, and normally act accordingly. The maxed out MacBook costs thousands more than the base model — and the base model sells more.
However, that price can sneak up in other ways. I was recently in the market for a new bicycle. Like a normal person, I had my requirements and budget, and found myself in the lucky (or unlucky?) spot of having numerous candidates. Searching for the perfect match was taking me days — when I realized it could spiral into weeks and months. I immediately went to the store next to me, tested one that was comfortable, and completed my decision. Is it perfect? Who cares.
SYSTEM 1 AND SYSTEM 2
Our brain has two systems of thinking, named by Daniel Kahneman and Amos Tversky as “System 1” and “System 2”. (Their creativity for naming system is as good as mine for naming variables. Or characters in The Sims.)
System 1 is the fast, automatic thinking. System 2 is the calm, rational type. 1 quickly answers easier queries, and occasionally gets them wrong. 2 takes its time with complex ones, wanting to be correct. Our muscle memory versus our deep focus.
System 1 is to blame for all our biases. If you ever caught yourself making an assumption or decision you never thought you would, you should blame your System 1. System 2 is less likely to do such a thing because it takes its steps consciously. As such, System 1 gets a bad rap. In Thinking, Fast and Slow, Kahneman goes through a long list of biases caused by System 1 and how to mitigate them. (As a rough summary: the solutions are not quite on improving System 1, but rather on noticing your biases, and using System 2 to consciously make the better judgement.)
There’s some nuance to it, however. In the very same book, Kahneman explains System 1 is the reason we’re alive at all. If there might be a tiger creeping on you for dinner, you don’t carefully look at the predator to assess danger — you run. Once your eyes sensor the animal, System 1 immediately makes the decision: “TIGER!!! RUN!!!!!!!!!!!!.” You’ll be perfectly fine if you ran away while there was no tiger. Being wrong in the other way, however, would be a life-ending mistake.
Hence, even with its flaws, we can thank System 1 for making critical decision fast. It is undoubtedly the hero that saves you from being run over when you’re crossing the street and a car runs a red light. But that doesn’t mean you want it making your investment decisions — you hit up your System 2 for that.
TCP AND UDP
TCP is the perfect communication protocol between two computers. Its ritualistic three-way handshake, sequence numbers, and congestion control ensure every message gets delivered, and they get delivered in the order they should. It is the System 2 of way of communicating. UDP is the more free-spirited version. Packets are sent and no time is wasted with guaranteeing they are delivered.
There’d be no email without TCP — messages needs to be perfect. And there’d be no Netflix without UDP — streaming needs to be fast.
Real-life applications are a bit more nuanced, because the choice is not binary between those two. An engineering team can decide to build their own. And in fact, it is typical to for companies to add logic on top of UDP in order to have some guarantees (Netflix might be fine with you fractions of a second of your show, but certainly not minutes of it).
You design your own protocol because you can’t have perfection and speed. But you can give up some of the former to get more of the latter. When faced with the limited resource (the acceptable latency), you realize many guarantees don’t matter that much. So you let go of them — and your service becomes fast and good enough.
TRADE-OFFS, OBVIOUSLY
Evolution led our brains to develop these two decision-making systems. The two imperative communication protocols also represent a similar duality of perfection versus speed. And it seems like a counter-flow to not at least try to mimic that in other situations.
As with all other things, there’s no black and white answer and we need to look at the trade-offs of each situation. But I wouldn’t have spent the time writing this just to state the obvious. My point is even though we may know that, we often forget we know it and overcomplicate things for no reason. Especially in mundane situations — completely apart from tigers.
We shouldn’t agonize over which phone to buy or where to have dinner — being wrong about that hardly matters. For such decisions, just pick something good enough and move ahead. And when trying to decide something seemingly important at work, just ask yourself what’s the worst that could happen if you pick an “incorrect” option. Getting things done and moving to the next step is worth ten times more than doing the current decision “optimally.” (And remember that always relies on the strong assumption that you even know what it truly is the “optimal.”)
More importantly, we shouldn’t agonize trying to perfectly satisfy requirements to handle every worst case. Doing so will probably be a regretful decision 99% of the time. You may be stoked on the other 1% of cases, but how much of a premium are you paying for those?
WHY I AM NOT BUYING A CAR
I live in San Francisco, a city roughly shaped like a 7 miles by 7 miles square. It’s compact.
A 20-minute walk radius from home takes me where I usually need to be. My office, grocery stores, most of my friends, park, and some shops and restaurants. Excluding the time I’m at home, I spend about 80% of my time within that 20-minute walk radius. A 20-minute bike radius takes me everywhere I usually want to be. My favourite restaurant and shops, plenty of parks, and even more friends. 98% of my time away from home is spent within that bike radius.
And I’ve thought about buying a car, because that’s the natural thing to do. Buying a car would get me everywhere I need to be, without dealing with Lyfts or transit schedules. It is the perfect solution for my target of reaching places faster (being generous to cars in the latter).
But cars are also the shittiest perfect solution. Moreso in SF. They are ridiculously expensive to acquire, maintain, and to park (both in dollars and, more importantly, time spend to find parking). To put these metrics into perspective:
a fantastic e-bike that truly suits most of your needs will cost considerably less than the annual prices of maintaining a car. Even if you get the car for free!
parking often takes 10+ minutes to find in SF, and that time can grow like Bitcoin in 2021. If you’re driving into a busy area, you’re likely to spend the same amount of time parking than it’d take to bike.
If 98% of my time away from home is in a 20-minute bike radius, the chance of me wanting a car would be at most 2%.1 And for those 2% of cases that cars the only option, solutions come naturally: Do I need to get somewhere while tired at night? Uber; road trip to Yosemite? Lyft rentals; wind in my hair while flooring a fast car in an empty highway? Turo and beg someone.
In one of those rare days, the cost of owning a car would, in that specific day, be less than the cost of dealing with the problem — Uber’s surge prices at night can be steep.2 But, those occasions are so infrequent. And on the long run, the not buying a car comes out much, much cheaper.
Solving for the 98% and improvising the 2% is much faster and cheaper than tackling all 100% at once.
The numbers are more illustrative than accurate. Just think of them as huge vs tiny probability.
In some cases of strong surge pricing, renting a city e-bike is clearly the superior choice. When leaving a crowded event in the Chase Center at night, I could have paid a fortune in an Uber and waited 15-20 minutes to be picked up. But baywheels stations are everywhere. So instead I paid $3 and bikes 12 minutes. Way more fun.