No measurement means no feedback, which means your chances of success are minimized. Success is possible without formal measurement but it is much easier with formal measurement.
Formal measurement raises productivity by 20.0% and quality by 30.0%
A best practice is one that increases your chance of succeeding, it does not guarantee it. It has been established that formal measurement is a best practice, so why do so few people do it?
cost and organizations are petrified of incurring costs without incurring benefits. After all what if you institute a measurement program and things don't improve? In some sense managers are correct that measurement programs cost money to develop and unless measurement is executed correctly it will not yield any results.
But is there a downside to avoiding measurement?
Inadequate progress tracking reduces productivity by 16.0% and quality by 22.5%
Failure to estimate requirements changes reduces productivity by 14.6% and quality by 19.6%
Inadequate measurement of quality reduces productivity by 13.5% and quality by 18.5%
So there are costs to not having measurement. Measurement is not optional, measurement is a hygiene process, that is, essential to any process but especially to software development where the main product is intangible.
History has show that it is much more cost effective to execute a hygiene process than take a chance of something very bad from happening, i.e. disease or your teeth falling out.
There are hygiene practices that we use every day in software development without even thinking about it:
- Version control
- Defect tracking
Formal measurement is a best practice and a hygiene practice
The same way that developers understand that version control and defect tracking is necessary, an organization needs to learn that measurement is necessary.
When you don't have enough formality then processes take longer and by extension cost more. When you have too much formality then you have process for processes sake and things will also take a long time. Any organization that implements too much formality is wasting their time, but so is any organization that does not implement enough.
For every formal process that makes sense, there is a spectrum of implementations. The goal is to find the minimum formality that reduces time and costs. When you find the minimum amount of formal measurement you will accelerate your development by giving yourself the feedback that you need to drive your development.
What to Measure
hours that the developers sit at their machines is as useful as measuring productivity by the number of cups of coffee that the developers drink.
Another useless measure is lines of code (LOC), in fact, Capers Jones believes that anyone using LOC as a measurement should be tried for professional malpractice!
Measuring the the three things mentioned above will improve productivity and quality because there will not be a negative effect on your organization:
- measuring progress tracking (productivity +16.0%, quality +22.5%)
- estimating requirements changes (productivity +14.6%, quality +19.6%)
- measurement of quality (productivity +13.5%, quality +18.5%)
- Activity based productivity measures (productivity + 18.0% , quality by 6.7%)
- Automated sizing tools (function points) (productivity + 16.5% , quality by 23.7%)
- Measuring requirement changes (productivity + 15.7% , quality by 21.9%)
So to answer the question: who needs formal measurement?
- Jones, Capers. SCORING AND EVALUATING SOFTWARE METHODS, PRACTICES, AND RESULTS. 2008.
Articles in the "Loser" series
Want to see sacred cows get tipped? Check out: