By Stephen Withers
September 24, 2007, 5:48pm PDT
Some managers love to look solely at numbers when assessing performance, and key performance indicators (KPIs) are right up their street. But how useful are they in the context of software development?
Strictly speaking, KPIs should not be confused with metrics in general. The term should bereserved for factors that really are essential for an organisation's success, and that can be directly influenced by the individual or group being evaluated. Just because some aspect of a job can be measured, it is not necessarily worth measuring.
While it may be tempting to regard simple measures such as the number of lines of code written and debugged per day as KPIs, that could be seen as an earlytwentieth century perspective that focuses on efficiency rather than effectiveness. In most cases, developers are not the contemporary equivalent of stevedores unloading ships by hand. The role of the modern Australian developer typically has a creative side that is not amenable to such mechanical measurements.
"It's not practical to have KPIs for software developers," said Guy Harrison, chiefarchitect for database solutions at Quest Software. "We don't have any form of KPIs ... for individuals."
The best developers are more like craftsmen than process workers, Harrison said. Creativity is needed to produce highly desirable software, and there is no good way to measure that. If you rated the best developers on function points per day, for example, they would probably get a low score,largely because they are likely to be assigned the most difficult parts of the project.
One problem with KPIs is that they can be self-defeating if they are not truly aligned with overall business objectives. Developers are smart, said Harrison, and will optimise their efforts to whatever you measure. That probably will not give the best outcome if you measure the wrong thing. A key goal is agelled, highly productive team, and that involves helping each other and sometimes working on foundations that are not amenable to measurement. Unsophisticated measures of individual output may work against that.
Around 10 years ago, software metrics were a hot topic and much effort went into finding which were important, but it turned out that none were, said Harrison. It might be appropriate to useKPIs for routine work such as report writing, but successful software companies are "trying to foster collaboration and excellence."
Shanker Krishnan, general manager, products and services at Mastersoft, has racked up over 20 years in the industry and believes metrics such as function point analysis and lines of code might have been worthwhile in the COBOL days, but are less suitable today.Owen Batt, technical director and co-founder of Smartpath said, "it's not a smart move" to use KPIs such as lines of code, as it is better to use fewer lines to achieve the same end.
However, "all of our staff members would have some sort of KPI" with associated bonuses or other benefits, he said, but they relate to longer-term targets such as completing a module within an agreed timeframe ratherthan day-to-day considerations.
Traditional KPIs are not relevant, agreed Greg Brady, general manager operations at VeCommerce. "They're probably not leading to the objective of reaching the [desired] outcomes of the business" and they tend to squash innovation and creativity.
Yet he is a believer in KPIs, as long as they are the right ones. VeCommerce -- which develops speech and telephonysoftware -- focuses on customer benefit and business outcomes, and therefore sets KPIs accordingly. They are negotiated with the customer, and then rolled down to development teams and other groups within the company. A prime example is meeting completion dates, with the opportunity to earn "early achievement bonuses."
Another involves the degree of automation delivered by the products, which is...