Saturday February 05, 2005 Study: Few bugs in MySQL database | CNET News.com
What is a bug anyway?
In a services contract for a bespoke software system it is a mismatch between requirements and the delivered software. More often than not it's a mismatch between expectations and the delivered software because the requirements were so poorly documented or the functional domain was not clear to the team. You could say unexpected outcomes are bugs. This might be true of uncaught exceptions. Generally, poorly written code that leads to memory leaks, race conditions or is just plain ugly is also called buggy.
If the software is not delivered to contract as is the case for open source then how do you measure it's quality? I don't know the environment that the MySQL software was tested and am not familiar with the company that performed the tests. Did the team develop a tight test harness to verify the documented functional requirements for the RDBMS? My guess is yes - to a level but there was more automated code profiling and checking for code cleanliness and security holes.
Don't get me wrong, I think MySQL is an excellent piece of engineering but I object to the often touted claim that open source software has a higher 'quality' than commercial products simply because there are more eyes reviewing it. Quality is ensured by a structured process of managing expected outcomes to delivery and that requires more than releasing your code for review. I agree that more eyes is a good thing not just to catch 'bad or ugly code' but also to get as many possible unique solutions to a problem is mostly a good thing - too many chefs and all that. Any good architect encourages peer review on their project, open source and commercial.
The only bug free software in the world is our old friend Hello World. Its functional design and expected outcome is well documented in every programming 101 book in history. With my expectations set I am assured Hello World is of excellent quality.
Of course someone could claim they expected "Hello World!" instead of "Hello World". Doh!!! My perfect software is riddled with bugs and 100% failure rate !!
The most awesome developer platform out there. True resource virtualization with zones and DTrace for hardcore performance tuning. Performance programming isn't what it used to be cheap memory and the availability of rapid application development tools. For those of us old enough to remember how to optimize memory allocation and read a stack trace DTrace is a huge step forward in program traceability.