Improving software delivery in every organisation

When to fold ’em – how to avoid the sunk cost fallacy

Some years ago, I worked as part of a development team on a project to upgrade a tangled legacy system managing a company’s payment systems. Two months in, and we had very little to show for it – pages of diagrams that looked like spiderwebs, a few outages caused by failed attempts to untangle the pile, and a rising level of frustration.

That company had spent thousands of pounds, not to mention missed out on a bunch of other opportunities – and not got a good return on that investment. Stakeholders weren’t any happier than we were, and so we talked about what to do next:

We’ve learned some things about what we’re trying to tackle here. Let’s give it another couple of months and see if we can make any progress.

– Hopeful project manager

Of course, a month later, nothing had changed – it was the same team, with the same tools, and the same level of support. But we didn't look at how to make it better. Instead, we talked about "not giving up":

We’ve already sunk so much money into this. We can’t throw that away now. Let’s keep fighting!

– Hopeful project manager

This is the sunk cost fallacy in action – treating what you’ve already lost as a factor in the decision on what to do next.

Our brains were compiled in caves, and some of the software is very out-of-date. Today, we’re going to do some bug-fixing.

Let the project die – kill it, if you have to

But what is the bug? Aren’t you right to care about wasting money?

Sure, waste is bad. But if you’re looking at it in the past, it’s already wasted. Since the past loss is happening no matter what, only look at the future results if you want to make the right decision.

Let’s say this half-finished project of ours has cost £100,000 so far, and the cost of finishing it will be another £50,000. When complete, it’ll reward us with £150,000 of business value.

Alternately, we’ve got another opportunity that costs £20,000, but makes us £100,000.

Option A: Spend £150,000 total, get £150,000
Option B: Spend £120,000 total, get £100,000

And that makes option A look appealing – at least you make your money back, right? Option B looks like it’s a loss! But you can’t change the past, so your current decision is actually…

Option A: Spend £50,000, get £150,000 (x3 return)
Option B: Spend £20,000, get £100,000 (x5 return)

If you wanted to maximise return on investment – and you don’t have a time machine, option B is the rational choice.

In real life, decisions aren’t this clear cut – outcomes can’t be exactly predicted – but the same rule holds. Decide based on the costs and benefits from now on, because the past cost is already sunk, in both cases.

Lazy load those decisions

This is all a more specific application of one of the key parts of iterative development – we’ll learn as we go, so we’ll make better decisions later on. It’s important to stop, breathe and reflect, even when you’re in the middle of work, or you’ll miss opportunities to make the right decisions.

Once you’ve learnt this lesson, there’s still some work to do. Whether you’re an executive trying to encourage this in your culture, or a developer trying to make the right decisions, you need to understand the context.

Remember, making the rational choice isn't the only thing that motivates people. Don’t fall into the trap of explaining why abandoning a sunk cost might be the best decision, whilst neglecting the emotional attachment your colleagues may have to their work.

To make the right decisions, you need a culture that accepts failure and change, and many organisations aren’t there yet. Be bold and explain yourself clearly, and don’t despair if it doesn’t go perfectly straight away – that’s part of the process of getting better!

About the Author
Kyle Chapman
Software Engineer at Made Tech. Puzzle lover, simplicity addict, geek-speak translator.
avatar

We are hiring Software Engineers, Delivery Managers and Technical Principals. Find out more about a career at Made Tech.

About Made Tech

Our mission is to improve software delivery in every organisation. We work with our customers to deliver modern applications and help them move to a faster, leaner, and more agile software delivery model.