Metrics Are Essential
December 15, 2006 —
(Page 1 of 2)
In software development, metrics suffer from a reputation as tools of abuse. A recent post by Joel Spolsky in his famous blog, Joel on Software, reinforces this perspective by retelling a Dilbert-like story often trotted out when metrics are discussed.
It concerns a management consultant with no experience in software development processes (as Joel puts it, a stunningly good-looking, bright, earnest chipmunk with 4.0s in Russian Lit from Harvard) who, after getting project metrics from the companys IT management and comparing them with an industry benchmark, points out that the developers are underperforming based on lines of code written per developer. After an expensive initiative to improve productivity, the developers learn to write more lines of code to do the same workthereby meeting their new goals. The net result is a costly decrease in productivity to fulfill metrics-defined goals. Ugh!
Everyone can sympathize with developers being held to a nearly meaningless metric. Just because lit majors have abused metrics in the past, however, does not mean that metrics should not be employed. To quote Lord Kelvin, You cannot manage what you cannot measure. (The actual quotation is much longer and elaborate, yet most sources attribute this shortened version to him.)
My experience with sites that use metrics is that the first time they pull up their data, they have the same revelatory experience developers do when they first run a performance profiler on their code: The issues and difficulties are different from what they expected. This is the first step in a process that enables developers and especially managers to understand their processes. It is the first step to remediation.
Metrics fall into two broad categories: descriptive and prescriptive.
Descriptive metrics are the ones you want: They are objective data points about the status of code or of a project. They include, among other measures, code complexity, defect counts (ranked by defect severity), code coverage, unit tests written, time and cost metrics for defect resolution, etc. Many of these are obvious. Clearly, managers want to know defect counts. And developers should want to know code complexity. (You might ask why. The agile model uses smells to identify where code should be refactored. One of the most important smells to recognize and fix is code that is overly complex. Complex code is difficult to understand, maintain and debug. Metrics such as cyclomatic complexity objectively measure complexity and automate identification of code that smells. Clearly, some routines such as parsers are inherently complex and dont lend themselves to much refactoring. However, running complexity measures on code helps identify routines that escaped detection but are in need of cleanup.)
Share this link: http://sdt.bz/29882
Most Read Latest News Blog Resources
Zeichick’s Take: Radio moves from analog waveforms to digital packets
Streaming radio highlights the need for streaming applications to be designed to take up as little bandwidth as possible
|
|
Taking enterprise architecture to the business side
Startup Corso is bringing out a cloud-based planning platform that ties into business plans
|
|
Appcelerator Acquires Cocoafish to Add Instant Mobile Cloud Capabilities to its Industry Leading Titanium Platform
Appcelerator Offers Messaging, Social, Location and Storage Mobile Cloud Services to All Mobile App Publishers
|
|
ComponentOne Releases a Collection of 40+ UI Widgets Powered by HTML5 and jQuery
ComponentOne has announced the 2012 release of Wijmo: a kit of UI widgets for HTML5 and jQuery development
|
Taking enterprise architecture to the business side
Startup Corso is bringing out a cloud-based planning platform that ties into business plans
|
|
Top five apps to manage your workload
Web applications offer new ways to track your “to-do” lists
|
|
Not so fast when it comes to testing in the cloud
Developers face outsourcing, virtual lab management and mobile devices as obstacles
|
|
Xceed releases UX-focused suite for Microsoft’s WPF
"Blendables" helps match user experiences to developer visions
|
Are you at risk for burnout?
Burnout is a severe problem and it can strike at any time. Here's how to tell if you are nearing the edge.
|
|
Agility, mom, and apple pie
If we're to evaluate the state-of-the-art in software development, we should start with the values espoused in the Agile Manifesto.
|
|
RIM woos developers with free tablet
How do you get more apps ported to the BlackBerry PlayBook? By giving every developer a free tablet, of course!
|
|
GitHire: Use Headhunters to Find Your Perfect Programmer
Are you a hiring manager tired of scouring the job boards? Check out this new service that will find 5 people interested in your jobs.
|
The Hidden Costs of Software Licensing
Moving beyond paper-based software licensing to more flexible, software-based licensing is a business decision. There is a growing trend tow...
|
|
Case Study: You May Need a Development Mechanic
As a contractor for a major financial player in Germany, SOBEGE, a German-based consultancy specializing in embedded IT and web services, wa...
|
|
Ensuring Software Quality at a Major International Bank
One of the world’s leading international banks has adopted AgitarOne technology for delivering generated unit tests for their Java software...
|
|
Load Testing Adobe Flex Applications
Adobe Flex applications may be different from applications you’ve worked with before. For classic HTML web applications, the server does all...
|