The old adage goes "you cannot manage what you cannot measure". True enough, but where do you start in implementing a measurement program? What information is really important? And, how do you decide what to measure and what will matter to others?
No one in this audience will disagree that metrics and ongoing analysis is a crucial element in effective software project management. However, metrics programs do have their
challenges. Let's admit it, metrics can be difficult, time-consuming and challenging to derive. Development managers will relate tales of woe of their teams spinning through cycles to pull out metrics lacking in relevance to the business. This approach to measurement is a thankless exercise that can paralyze the entire project team.
But, there is a light at the end of the tunnel. Experts recognize and are beginning to agree on the key components that make up an efficient and effective measurement program. And there are methodologies available in the market today aimed at connecting metrics directly to business benefit.
This rest of this article looks at the vital role metrics play in effective software project management; gives some guidance on metrics that experts in the industry consider to be fundamental to good software project management; and touches upon a industry-accepted methodology called GQM, that can be a valuable approach in helping project and development managers define and align measurement to business goals.
Three Application Development Trends
Before we talk solution, let's take a look at some emerging trends in application development. There are three main trends that I've noticed. The first is that project-based development is moving to a process-based approach where automated processes and workflows are required to be more fluid and must accommodate ongoing adjustments and changes . The emergence of agile methodologies, compressed delivery schedules, and the recognition that software evolves on a continuous basis are principal drivers
The next and related trend is the move from waterfall development to a more iterative development style. This methodology evolution is really in response to the speed of business transactions today. No organization can wait a year for a software project completion. Innovation must be rapid and ongoing.
Finally measurement within development organizations must make the move from ad hoc management reporting to real-time. The logic is there; if organizations are going to move faster and respond more quickly to business change - they cannot afford to wait
All of these trends indicate a dynamic shift in development towards greater speed, collaboration and agility (in the broader, business sense of the term).
So let's look at today's rapid application development environment and acknowledge that real time metrics should play a central role in keeping projects on course and making incremental efficiency improvements. For these purposes, let's define a metric in software development as the measurement of a particular characteristic of a program's, or processes, performance or efficiency. A metric is sometimes used directly and sometimes as an element in an algorithm calculating a more complex metric. For instance, in programming, a benchmark or milestone will include, or be driven from, metrics.
When you are talking measurement, it is important to realize that context gives the data meaning. It is not enough to know what a metric is, it is important to also know why the data is being collected in the first place and how that data, and the metric derived from it, will be used.
In addition, software measurement programs should allow project managers to quantify schedule, work effort, cost and quality performance in a way that is accepted and understood by the business. For many reasons, software projects frequently run over schedule and quality problems persist often derailing projects and some of this is attributable to a miscommunication or lack of appropriate and timely measures.
We attribute this challenge to the fact that most measurement programs employed for software project management rely on manual collection and manual analysis of data, or at the very least don't specify or point out that automated data collection would be beneficial. Today's fast paced business reality is all about having real-time, on-demand data representing actual activities instead of rough estimates and manual analysis. Manual measurement is just too slow. To sum it all up - metrics give software managers control and visibility and the more precise and real-time the metrics, the better the decision making capability of those managers and hence the better the project execution.
Four Benefits of Measurement
Overall, measurement provides four fundamental benefits - to characterize, to evaluate, to predict and to improve.
- To characterize - Metrics allow decision-makers to better understand
processes, resources and