Distinguished software engineer and professor of computer science – Barry Boehm – made many notable contributions to the field. One of those was Boehm’s Law: the cost of finding and fixing a defect grows exponentially with time.
With Boehm’s Law, the idea is to catch and repair faults much earlier in the software lifecycle before they can cause mass chaos. Here’s why Boehm’s Law matters and how it can help software-driven organizations avoid worst case scenarios.
Be the first to know about flaws
Ideally, your software team is the first to know when there’s an error in the system – not the millions of end users whose lives are turned upside down by a faulty piece of code. As we’ve recently seen, if a flawed update or new feature finds its way into production, it’s end-users – from airport passengers to investment bankers – who will be the first to find out.
It’s not only who first discovers the fault that’s important, it’s also the number of people. Let’s say one software tester discovers a fault before an update goes live. The update is delayed, but it gets fixed before end-users are impacted. More often than not, it’s the time pressure to deliver that leads to human errors. Earlier and more stringent quality assurance can catch errors before they go public.
Compare that with a rogue piece of code that brings down entire airlines, banking systems, and healthcare providers. Then there’s the embedded software you find in cars and coffee machines. If no over-the-air fix is possible, products must be recalled.
Why businesses need Boehm’s Law
The recent CrowdStrike outage will cost businesses over US$5 billion in financial losses, according to a report by Reuters. But this was no cybersecurity attack. A bad release wiped out tens of millions of Windows business users around the world. One faulty update slipped through the testing net, and if downloaded, only a slow manual process could put things right.
With millions of devices impacted, there was no quick fix. It’s a stark reminder of the imperative to balance speed of delivery with code quality. It’s also a validation of Boehm’s Law and the simple key to keeping down the cost of fixing software flaws before they spiral out of control.
During the outage, global air travel, healthcare, and banking sectors were significantly impacted. With flights grounded, transactions halted, and medical care put on hold, it wasn’t only revenue and profit margins paying the price – there was a secondary layer of damage to companies’ reputation and productivity.
Take a quality-first approach to development
By assessing and monitoring software quality throughout the software lifecycle, it’s possible to get oversight of errors earlier and take mitigating action before the worst happens. Think of source code analysis as the security gate to software testing. Software is never perfect, but nothing obvious should pass through undetected into the testing phase.
That’s why the lifecycle of software must be clearly defined. First, software requirements are set. Second, software must be designed to be maintainable and scalable over time. Third, it needs functional testing. It’s a simple solution: ensure better quality software code and spend less time and resources on functional testing, which, if you’re not careful, can easily consume half a development budget.
Take a quality-first approach to software development, and mitigate the cost of bad releases with BonCode’s consultancy-based solution for assessing and monitoring software quality. Discover more