In writing this article, I have spent countless hours trying to make my first draft work (ok, they aren’t countless, but it’s more than I care to admit). In doing so, I was folly to the very topic of the blog post itself – it happens to everyone, for none of us are perfect. So, let’s learn from this, take the meta-approach, and start over.
In for a penny, in for a pound
A common phrase, one we’ve all heard. And it makes sense, right? When you start something, you finish it, no matter how difficult or expensive, right? An investment has been made. But this common phrase can lead down a dangerous path – that of sunk costs, and the Sunk Cost Fallacy.
What is Sunk Cost Fallacy?
Sunk Cost is a concept in economics and business decision-making to define a cost that has been incurred and cannot be recovered. The Sunk Cost Fallacy is a behavioral economic phenomenon wherein it is decided that enough is invested already, that an effort should be seen to its conclusion. It's essentially the idea of "throwing good money after bad," as opposed to "cutting one's losses."
Throwing good money after bad
To provide this example, we can disassociate from the ethereal nature of software development (though the concepts still hold). Think about getting your car in for an oil change and finding out that the transmission is bad after the oil change is completed. The oil change is the sunk cost, but a transmission replacement is considerably more expensive. You'd begin evaluating the age of your car, the potential value of keeping it running, and the cost of repair versus replacement. This is the type of thinking you want to have in software development.
Avoiding Sunk Cost Fallacy in software development
Projects take time. As much as we’d like to avoid it, things will change during that time. We recognize that the world isn’t static. A concept known in military terms as VUCA (Volatility, Uncertainty, Complexity, and Ambiguity) is part of life and creates risk.
This means that during a project, there are times that work on a feature will have begun when an external event occurs (perhaps a 3rd party software is released, or a global pandemic alters priorities) that may require a business strategy change. In these types of events, the product owner needs to make a decision – to continue the path already laid out, or to change directions entirely, thus breaking through the sunk-cost trap. When this happens, it helps to have a partner that is as flexible as you need them to be.
How Emergent Software Can Help You Avoid Sunk Software Development Costs
As we've covered in our previous entries outlining our custom software development process, we’ve discussed how Emergent Software works specifically to reduce and minimize some of this risk. But if we're being honest with ourselves, there isn't a means to control said volatility, it’s a means to work acknowledging it. We recognize that priorities change, and we’re willing to change with them. The question comes down to you, the customer, and your recognition that the market may have pivoted, and you need partners able to change directions with you.
Agile Feedback Loop
Our continuous, regular demonstrations (often even showing incomplete work), enables you to see the direction that things are heading early and often, allowing for tweaks and changes. Some items may come out as they are unnecessary, some new items may come in – and we can work with that.
Better Stories for Better Results
Agile structures will help give you the best value for the time and effort being put in. As we break down your project into requests, we focus on the behavior of systems and leverage the outcome-based acceptance criteria to drive test-driven development to deliver faster.
Fail Fast and Cheap
Lastly (for now), we encourage our clients to embrace a model to fail fast and cheap. With the quick demo, we ensure that any work that has been started gets a review before completion. If something is wrong, we can catch it together early (before much money is spent). This pairs with relentless improvement as each point of “failure” (in quotes because that word doesn’t exist in my language) is a chance to learn. Future iterations on that functionality naturally occur faster, and usually have fewer breakpoints due to this learning process. This has proven to be a good way to cut your losses early and allows us to be more mindful of budget and time constraints.
Having a partner that keeps your budget in mind is critical to building the custom application that provides your team the most value. Looking for a new development partner? Contact Emergent Software today!
To enable comments sign up for a Disqus account and enter your Disqus shortname in the Articulate node settings.