Avoiding the Sunk Cost Fallacy
Learning how to let go, even when you've already invested so much effort
Unless you are Satoshi Nakamoto, it’s likely the every line of code you are currently writing will one day be obsolete.
Satoshi, the pseudonymous author if the first release of the Bitcoin codebase, is a rare exception. The Bitcoin codebase is not easily modified, and that’s a good thing if it is to live up to the claims that it is the soundest form of money ever conceived. The Bitcoin codebase doesn’t need continual improvements, it is widely considered to represent an optimal tradeoff between block size, transaction capacity, cadence, security, monetary policy and privacy.
Satoshi knew that he1 should resist forming a permanent attachment to the codebase. Despite pouring in so much time and passion to the project, he knew he would one day walk away from Bitcoin. Bitcoin does not need Satoshi or any other leader because a figurehead would have been a centralised point of weakness, contrary to the decentralised ethos of the project.
In April 2011, just over two years after the mining of the first bitcoins, Satoshi communicated that “I have moved on to other things…“, leaving Bitcoin to thrive and Satoshi to never be unmasked.
Sunk Cost Fallacy:
A People First approach to Engineering should be wise to the limitations of human thinking. There are many known human biases and fallacies which causes us to make bad decisions. We’ll begin a series of exploring these biases, starting with the Sunk Cost Fallacy.
The Sunk Cost Fallacy explains our tendency to cling to an endeavour, or an item, or an idea, based on the amount of time or money we’ve already invested into it, rather than on its present value or future potential.
We’ve slaved on the codebase for a project, invested our time and passion, and doggedly persist with it even when it might seem that the project is no longer viable. We wrongly favour a project or idea that we’ve already spent a lot of time on, over better alternatives.
Sometimes you have to know when to quit and devote your scarce time to an endeavour which will yield a better return. The more time you’ve invested, the more passion you’ve devoted, the harder it is to cut your losses and do something more worthwhile. We need to recognise when we’ve become far too attached, and take the bold decision to move on.
We have an emotional attachment and can’t let go, and this clouds our rational decision making. We may have worked on a Proof of Concept and wrongly favour our approach over better alternatives. Or we may be reluctant to refactor an unwieldy class that we invested so much time creating. We are reluctant to put the effort into learning a new programming language or architecture because we’ve already spent so much time learning an obsolete one.
A common example of the Sunk Cost Fallacy is where someone has spent some money to buy a ticket to an event, but when the date of the event arrives they no longer really feel like going, however the fact that the ticket is already paid for compels them to go. In decision making we should ignore sunk costs, but as humans they have a persuasive bias upon our choice-making. As humans we hate behaving inconsistently, so in order to be consistent we are irrationally influenced by sunk costs.
The sunk cost fallacy is what keeps us in bad relationships or toxic work environments, not bailing out of a bad stock investment or holding on to a Software Engineer we’ve recruited into whom we’ve invested considerable time and money training, who clearly has very little aptitude for the profession.
As Engineers, we like to see ourselves as rational decision makers, but it is important to realise we can be blinded by our emotions, unaware of the stupidity of our decisions. An awareness of the follies of our thinking may help us to overcome the emotional struggle of dealing with sunk costs. We are as irrational as any other human being and unless we realise that, our decisions will be led by our emotions instead of our intellect.
Avoiding the Sunk Cost Fallacy
In life we can be more mindful of our biased thinking, we can either take more rational decisions by coldly discounting our sunk costs when making a decision, or if the decision isn’t too consequential we can save the energy and willpower needed to override our irrationality, and just go along with some of our irrational behaviours.
In Engineering environments however, we are more obliged to be rational and may avoid the Sunk Cost Fallacy in the following ways:
Involve people in decisions who are not emotionally attached to the sunk costs.
Avoid knowledge silos where one person is tightly coupled to a certain domain.
Follow a principled approach to Software Design so that your code is flexibly structured to allow future pivots in thinking.
Learn to differentiate between a ‘dip’ in a project that you need to push through and a genuine cul-de-sac where it is more rational to forego any sunk costs and quit2.
Understand the Economics concept of Opportunity Cost, the tradeoffs between one course of action and another. By persisting in an activity with sunk costs, you’ll be denying another activity which could yield better results.
Remember the sage advice “don’t throw good money after bad”. Know when to draw a line under a failed endeavour and start again on something different.
Think of the teachings of Vietnamese Thiền Buddhist Monk, Thích Nhất Hạnh, about letting go of sunk costs: “Letting go gives us freedom, and freedom is the only condition for happiness. If, in our heart, we still cling to anything - anger, anxiety, or possessions - we cannot be free.”
See “moving on to other things” as a courageous, heroic virtue. Something to record in your Engineering Brag Log. Be like Satoshi.
“Don't stop thinking about tomorrow
Don't stop, it'll soon be here
It'll be better than before
Yesterday's gone, yesterday's gone”
Don’t Stop, Fleetwood Mac
In Software Engineering organisations, as with any organisation, we often find ourselves stuck with the old ways of doing things. We do things a certain way because that’s our culture, that’s how things are done here. This is a sunk cost. Organisations can be very resistant to changing old an inefficient ways of doing things. The people and processes of the past haunt the thinking of the present, creating painful sense of lethargy to those who would want to draw a line under the past and take us to a better future. You need brave leaders, ready to make bold moves, to discard the past for a brighter future.
One of the characteristics of humans is our adaptability. As Fyodor Dostoevsky wrote in The House of the Dead, “Man is a creature that can get accustomed to anything, and I think that is the best definition of him.” - we can adapt to many different environments, but this can be a curse. Our adaptability blinds us the the poverty of our situation, as with sunk costs we persist in a bad situation because we become attached to it, fully adapted to it, and we do not notice opportunities to improve our situation because we are so accustomed to the status quo. We must learn to notice when we are clinging to things, and find the bravery to detach.
There are always so many interesting activities we could be doing, many people we could be meeting, but we have limited bandwidth. Continuing an activity due to sunk costs is an irrational constraint on our bandwidth.
“All things must pass, all things must pass away” - George Harrison
Returning to the daily life of Software Engineering, we should look out for when we are becoming emotionally attached to that code written with our blood, sweat and tears and realised that unless we are Satoshi Nakamoto, almost every line of code we write will one day be obsolete. Despite writing the most uniquely permanent piece of software, Satoshi had the wisdom to let go and to “Move on to other things”.
The unique permanence of Bitcoin
The codebase for the Bitcoin protocol is very difficult to change, and that is one of its key properties which makes it the soundest form of money ever conceived. Changes are bureaucratic and must go through lengthy consensus processes. Many people wrongly think that better, and faster blockchain based currencies will replace the clunky old Bitcoin code. But Bitcoin is optimally designed as sound money and I personally believe that it will outlive all current forms of money, largely unchanged.
Long after fiat currencies have collapsed, as is inevitably their fate, and even after the fall of nations or a catastrophic apocalypse, there will still be a network of computers running the largely unchanged code, still reliably adding another block to the Bitcoin chain every 10 minutes, if only for nostalgic reasons. All thanks to Satoshi’s detachment from the code.
It is not known whether Satoshi was a male, female, or a group of people.
The Dip, by Seth Godin may help decisions on when to quit and when to keep going