To Err is Human – The Case for Buy Over Build in Hard Real-time Database Management Systems
Conventional wisdom on the internet averages there are anywhere from 7-50 errors in every 1000 lines of code. Given that hard real-time systems are safety- and mission-critical, the room for error goes down to zero.
A paper by Watts S. Humphrey, founder of the Software Engineering Institute and the Capability Maturity Model, examined the results of studies at IBM and TRW on the relative cost of correcting defects at various stages in the development cycle. Humphrey asserted that the time to find and correct each coding defect during the test stage ranges from 2 to 20 developer hours.
This cost of remediating defects illustrates the tremendous savings likely to accrue from using off-the-shelf database management software for any modestly complex and demanding function. Exactly where this tipping point lies depends on the variables in the cost and complexity equation (i.e., labor cost and volume of code that will need to be written to meet the functionality required). Generally speaking, it is probably best to stick to solving line-of-business problems, versus solving general computing problems that have already been solved, like operating systems, database systems, web servers, and the like.
Already-debugged off-the-shelf software should inject no new defects into the project. Some might argue that using the API of an off-the-shelf software package also means writing a bunch of lines of code to use that API, and that this will also introduce bugs. But this misses the point that, regardless of whether the data management code is roll-your-own or off-the-shelf, application code still has to be written to use that data management code. So, the argument is a non-starter: you’re going to write the application code, either way.
Several programmer-years went into the initial release of eXtremeDB in 2001, and tens of programmer-years since. Therefore, it’s impractical to think that equivalent functionality, or even a meaningful subset, can be created from scratch in the few programmer-months that would constitute a ‘lower cost’ even at the lowest possible developer compensation levels.
It’s also worth mentioning that it is not possible for de novo code to be as stable/reliable as code that has been in production and field-tested for 20+ years.
The prior point is a convenient segue to the observation that a database management system takes time to develop, and more time to test, whereas off-the-shelf software is usable immediately. In today’s fast-moving world, lost time equals lost opportunity.
We encourage you to try eXtremeDB/rt. Desktop evaluation packages of eXtremeDB/rt for Linux, MacOS, QNX and Microsoft Windows platforms are available for free no-hassle download. Learn more about the programming interface and various real-time and non-real-time features of eXtremeDB/rt. After you have tried the desktop version, we hope you’ll contact us for a free trial of eXtremeDB/rt tailored to the needs of your RTOS.