If you’ve spent some time in Los Angeles, you may have noticed that restaurants auspiciously post a “letter grade” rating. The letters range from A to F and represent the most recent health inspection assessment. Any restaurant meeting over 90% of the health inspector’s criteria is given an “A” rating. These signs are large enough to see clearly in a restaurant window as you drive by scoping out a potential eatery.
As far as I understand it, every restaurant in LA county is randomly assessed by the health inspector and every restaurant must post their results in a highly visible location.
I like this system a lot even though I generally dislike big government hand-holding. I get a modicum of confidence that by eating at an “A” rated restaurant I likely won’t get sick.
I wonder what it would be like if this system were imposed on commercial and open source software products. I envision this would translate to something like a thorough code review, engineering practices audit, quality practices audit, etc. If we were being honest in defining a rating scale, I think most products on the market wouldn’t get above a “C”.
Why? Because I think the technical debt situation at most shops is bordering on overwhelming. CollabNet gets a unique look across the industry by virtue of our project management and engineering practice consulting services. Sure, a lot of companies are trying to be “Agile”, but most are forgetting a key component which is holding the quality bar high and immovable. Successful agile teams are doing this by adding strict “done” or “acceptance” criteria to their user stories and adding quality oriented practices like TDD and refactoring to the engineering environment. I think the situation is equally out of hand (or worse) for companies doing waterfall.
Even without seeing the code you probably have a sense that this may be the case at your organization based on interaction with your own products. Would you bet your health on your software’s quality? Yet we risk so much on software these days: transportation systems, medical equipment and records, financial systems, business workflow, etc.
It would be nice to see a big letter grade reflecting the technical health of software before I rely on it. Then again, it may expose a depressing state of affairs.