How Boehm’s Law Helps Prevent Mass Chaos From A Single Software Flaw

by | Aug 27, 2024

B O N C O D E   B L O G

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

You may be interested in this:

How Source Code Analysis Can Be Used To Improve Project Management

How Source Code Analysis Can Be Used To Improve Project Management

Many large organizations perform code analysis on their custom software. In fact, with multiple software projects running at any one time, measuring code quality and visualizing it via dashboards is becoming a standard practice. But if that’s all you’re doing with...

Agree on your Definition of Quality – or everyone will fight for himself

Agree on your Definition of Quality – or everyone will fight for himself

Ask someone to define quality – whether in terms of software or any other product – and you’ll probably hear words like ‘good’, ‘high’, and ‘expensive’. These are the expected answers, but they evade the question. What does the word “quality” actually mean? And why is...