Scoring and Evaluating Software Methods, Practices, and Results


been proven to cause harm in a significant number of applications that used them. This is not to say that they always fail. Sometimes, albeit rarely, they may even be useful. But in a majority of situations, they do more harm than good in repeated trials.

What is a distressing aspect of the software industry is that bad practices seldom occur in isolation. From looking at the depositions and court documents of lawsuits for projects that were cancelled or never operated effectively, it usually happens that multiple worst practices are used concurrently.

From data and observations on the usage patterns of software methods and practices, it is distressing to note that practices in the harmful or worst set are actually found on about 65 percent of U.S. software projects as noted when doing assessments. Conversely, best practices that score 9 or higher have only been noted on about 14 percent of U.S. software projects. It is no wonder that failures far outnumber successes for large software applications!

From working as an expert witness in a number of breach-of-contract lawsuits, I have observed that many harmful practices tend to occur repeatedly. These collectively are viewed by the author as candidates for being deemed “professional malpractice.” The definition of professional malpractice is something that causes harm that a trained practitioner should know is harmful and, therefore, shoukd avoid using it.

Following are thirty issues that have caused trouble so often that the author views them as professional malpractice, primarily if they occur for applications in the 10,000 function point size range. That is the range where failures outnumber successes and where litigation is distressingly common. Only one of fifteen lawsuits where the author worked as an expert witness was smaller than 10,000 function points.

Table 4: Candidates for Classification as “Professional Malpractice”


Defect removal efficiency < 85%


Defect potentials > 6.00 per function point


Reusability (uncertified with high defect volumes)


Inadequate cost tracking with “leakage” > 40% of actual costs


Excessive schedule pressure by clients and executives


Inadequate or deceptive progress tracking that conceals problems


Inadequate security controls


Inadequate inspections of requirements, design, and code


Inadequate defect tracking methods that starts late


Failure to estimate requirements changes


Error-prone modules in applications


Inadequate problem reports


Inadequate measurement of quality


Rejection of estimates for business reasons by clients or executives


Inadequate testing with low coverage


Inadequate risk analysis prior to funding


Inadequate cost estimating methods


Inadequate value analysis


Inadequate change control


Inadequate sizing prior to funding


Partial productivity measures that concentrates on coding


Lines of code metrics (LOC) for economic analysis


Inadequate governance by corporate executives


Inadequate requirements gathering


Cost per defect metrics


Inadequate customer support


Inadequate measurement of productivity


Generalists instead of specialists for large systems


Manual cost estimating methods for large systems


Inadequate test library control

It is unfortunate that several of these harmful practices, such as “cost per defect” and “lines of code” are still used for hundreds of projects without the users even knowing that “cost per defect” penalizes quality and “lines of code” penalizes high-level languages.

Collectively, many or most of these thirty harmful practices are noted in more than 75 percent of software applications =>10,000 function points in size. Below 1,000 function points, the significance of many of these decline and they would drop out of the malpractice range.

Summary and Conclusions
The phrase “software engineering” is actually a misnomer. Software development is not a recognized engineering field.

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.