Some issues of the free magazine Crosstalk arechock full of academic pieces about military software that are a surecure for sleep disorders. But sometimes there's an article that'sstartling in its brilliance. Last December Watts Humphrey published onecalled “AcquiringQuality Software” that's a must-read.
In it he defines six quality principles and metrics for evaluatingthem. The first is the most important: If a customer does not demand aquality product, he or she will probably not get one.
As I mentioned in this columnlast month, in my opinion the reason e-voting machines haveperformed so poorly in the past is that the FEC and local jurisdictionsdon't demand a measurable level of quality that's audited and verified.Nancy Reagan admonished youngsters to “Just say no,” a command just asadvisable for state elections officials. If the product doesn't meetstandards, just say no. Reject it.
That's important for all software acquisition and internaldevelopment. Set measurable and realistic quality goals and demand theproduct meets those goals. Simply do not tolerate software that doesn'tmeet the bar.
These quality maxims are the guiding principles behind Mr.Humphrey's PersonalSoftware Process (PSP). He was one of the architects of thewell-known CapabilityMaturity Model (CMM), used by some big companies to controlsoftware projects. The CMM is the heaviest of the heavyweightprocesses; it's hugely expensive to implement, and is thus notpractical for most organizations.
But Humphrey asked an interesting and profound question: “What can Ido to change the way I write code so it's measurably better, withoutgetting approval or funding from management?” The PSP is the result.It's a formal set of strategies that leads to better code.Incidentally, programs created using the PSP are cheaper than thosefrom programmers working without a process. Better and cheaper – worksfor me!
His book, “ADiscipline for Software Engineering” spells the process out. It's atextbook, though. Remember those? It has homework. Remember that? Don'tdo the homework and you'll get no benefit. The homework isn't easy,either. You're expected to write code and collect a lot of statistics,and then analyze those. The open source PSP Dashboard canautomate much of the tedium.
PSP sounds like big process but it isn't. Many have integrated itspractices with agile methods, such as, for instance, “Trendsin Software Processes: The PSP and Agile Methods,” butmembership in the IEEE Computer Society is required.
It is hard to get high-quality software. But it is possible, and PSPis one well-proven approach. It doesn't take the approval of your bossor any sort of corporate buy-in. It just takes a commitment to quality,and a level of professionalism which seeks better approaches.
Here's my challenge to you: why would you not give up the self-helpbooks for a time and learn the PSP? What's the downside?
Jack G. Ganssle is a lecturer and consultant on embeddeddevelopment issues. He conducts seminars on embedded systems and helpscompanies with their embedded challenges. Contact him at . His website is .
So where does this place the typical user of shrink-wrapped software? Your typical user of a PC for example? More often than not, we just get a PC on our desktops at work, or at home, and the expectation is that it works like a can opener.
So a couple of questions are in order:
-> How does one say NO to this?
-> How does one get a say in the quality of this product?
IF not already; I am sure there are a number of folks out there who know what types of software products I am talking about.
– Ken Wada