For the past eleven years, Michael Blaha and his colleagues at Modelsoft Consulting have been reverse engineering software as part of their evaluation of products. They looked at what they saw today and compared it with what they saw when they started. (“A Copper Bullet for Software Quality Improvement“)
If you’re in software management, this is going to be terrifying. So you better sit down.
- There has been only little improvement in database design quality, even though modeling and design tools have been increasing worked out over the past decade.
- Programmers don’t seem to understand how to model software.
- Most professors probably don’t understand how to model software, which means that they cannot teach it. “Models baffle many developers, who do not appreciate the leverage that modeling can provide in building applications.”
- Vendors only achieve a modest quality increase over in-house software groups.
The whammy: “database quality has improved little in 11 years….”
You gotta appreciate the irony of this. We spend and we spend and we spend, but we’re too stupid to make products that work. We can’t even improve database quality, which is a basic backend thing. It’s like plumbing or electrical wiring. Most people just assume it’s easy to do or don’t bother learning anything about it
Of course, I’ve been in on data design meetings where a quality design got scrapped because the stakeholders were represented by programmers who didn’t understand why it was superior. They were used to less rigorous designs or designs from systems put in decades ago, without the cross-platform, internet-time performance requirements and limitations of today’s systems. So maybe it’s just incompetent management. Which feeds my feeling that Elliott Jaques has it right.
Michael Blaha (Modelsoft Consulting Corp.), “A Copper Bullet for Software Quality Improvement“, IEEE Computer, Feb 2004, pp. 21-25.
Image Credit: Women workers at Ingersoll Watch Co. By Wm M Vander Weyde, ca. 1900. Via Library of Congress collection.