Metrics-Driven Enterprise Software Development: Effectively Meeting Evolving Business Needs, by Subhajit Datta ISBN 9781932159646
Creating metrics for describing the process of software development is not as difficult as it may first appear, there are countless aspects of the creation of a properly functioning enterprise application that can be measured and used to create a dataset. The (very) hard parts are in locking down the assumptions and definitions used on the front end of the metric development as well as effectively using the metrics to understand and manage your development process. As William Bruce Cameron said, “Not everything that counts can be counted, and not everything that can be counted counts.”
In this book Datta puts forward solid arguments for the development of a software development process based on detailed knowledge metrics. The problem is that some of them are based on questionable and puzzling data points. There is the Morphing Index, which tries to measure how the design of a software system changes or morphs over time and initially is the ratio of the total number of components to the total number of messages. A more “advanced” form of this metric assigns weights to the components and messages in an attempt to assign them relative values. Other such metrics, such as the AEI (abstraction, elision and indirection) score are developed.
The best line in the book appears shortly after the first definition of the Morphing Index. It is “The Morphing Index in its present form is rather naive, but it tells us something, and something is better than nothing. The problem is of course that we are unsure what that something is and whether it is something that we can base major decisions on. That is questionable and not really resolved. The bottom line is that despite the many attempts to place software development on a mathematical and engineering foundation, it is still very much an art form.
Like many books that try to quantify what is largely a psychological, social and political experiment wrapped within a computing project, there are good and bad points in this one. The development of a software development process is always a positive thing, but as even Datta admits, metrics used the wrong way can be poison.