Praestat cautela quam medela – all that really means is “prevention is better than cure“. As I thought more about this topic, it seemed to me that good software development and good healthcare practices have more in common than I could have imagined.
As a rule of thumb, every hour you spend on defect prevention will reduce your repair time from three to ten hours. In the worst case, reworking a software requirements problem once the software is in production typically costs 50 to 200 times what it would take to rework the problem in the requirements stage (Boehm and Papaccio,1988).
Vaccines save millions of lives each year and are among the most cost-effective health interventions ever developed. Immunization has led to the eradication of smallpox, a 74 percent reduction in childhood deaths from measles over the past decade, and the near-eradication of polio – this is per the Gates Foundation.
These two facts read together tells us a lot about how we should approach the problem of better software development as well as effective disease eradication. Historically, we have always neglected the initial planning piece in all projects. More often than not, the tendency is to rush into the execution which is where the glory seems to lie. The need to showcase something tangible drives our behaviour in most cases or it is the need to meet impossible deadlines. According to a recent blog posted by Source Ninja in 2012, in the US alone, companies are spending almost £40 billion pounds annually on fixing defective software – about one third of the software market.
The argument between medical treatment and prevention is more polarized and maybe with good reason. While about 5% or less of the U.S. budget on health care is spent on prevention, the rest goes into treatment. However evidence shows that over the past several decades, immunization has achieved many things, including the eradication of smallpox, lowered the global incidence of polio by 99 percent and reduced illnesses like diphtheria, tetanus, whooping cough and measles. The treatment lobby has always argued that prevention is a long term play and current disease can only be addressed by immediate medication. And revenues from treatment
Where the argument for prevention in technology or healthcare starts to fall apart is in addressing a sudden crisis. System malfunctions, breakdowns, disease and suffering is right in front of you and needs to be addressed on a war footing. Even historic software glitches need not make prevention better; just improved early response mechanism (10 historical software bugs with extreme consequences). Unfortunately, the benefits of preventive actions are invisible.
The topic is quite vast and almost impossible to capture succinctly in a single post. Both sides have a convincing argument – more so the healthcare world than the technology one. However, the simple principle I am trying to illustrate is if we follow the path of prevention and early detection with the same rigour as we do the path to fix the problem once it has occurred, we would possibly have lesser problems to chase down. Time investing at the beginning will always pay more dividends, reduce software bugs, avert deaths and drastically improve the overall RoI of any software development / mass healthcare program.
Would be interesting to hear your views on the same.