Software by Numbers Low-Risk, High-Return Development
By Mark Denne and Jane Cleland-Huang
, Upper Saddle River, NJ: 2004
The book presents ideas on the financial analysis and scheduling of software development projects. The authors present a framework for evaluating software value, not just cost. The mechanism helps to schedule the components of the project to maximize its value to the customer. The framework is entitled the Incremental Funding Methodology (IFM). It knits together already-existing ideas from Agile Software Development and finance into a new structure. The structure greatly enhances any software project planning process - both Traditional and Agile.
Software has traditionally been considered a cost. However, work is progressing in the industry to change that point of view. Mr. Barry Boehm is quoted in the book as stating that '..software development is not a cost...but a value creation activity."1 Mr. Boehm additionally says "Software By Numbers is a significant new contribution to value-based, financially responsible software engineering."2
All project managers want to be successful. They want to deliver a project on-time and within budget. That is a tremendously difficult task. The current process of calculating returns on a software development project only considers the costs of completing the project. Here is no mechanism for the project manager to consider the value to the customer, in explicit financial terms, of the delivery of a software system.
Mark Denne and Jane Cleland-Huang provide a framework for a rigorous financial analysis of the value created by a software project. The project manager is able to calculate the costs and revenue streams of various components of a project. Supported by this financial analysis, the manager gains the ability to make better informed decisions about project components and how to best schedule them for maximum value.
The framework uses the following ideas/concepts:
- Minimum Marketable Feature (MMF)
- An MMF is a distinct feature of the system that delivers significant value to the customer. The value can be measured in terms of revenue generation, cost-savings, competitive differentiation, or enhanced customer loyalty. The MMF can be identified as a module, a system use-case, or a client-identified feature depending upon whether the development process is traditional, object-oriented, or agile.
- Present Value Calculation (PV)
- This is the traditional financial analysis tool of calculating the time value of money. Cost and revenue streams are discounted to derive the net present value (NPV) of the individual components of the software projects.
Each MMF is analyzed for its NPV based on separate beginning periods. For example, an MMF could be started in month one, two, three, etc during the lifetime of the project. The NPV of each separate start-time revenue stream is calculated. These separate values are placed in a table for each of the components and is called a Sequence Adjusted Net Present Value (SANPV).
- Incremental Funding Methodology (IFM)
- The IFM brings together the MMF and SANPV ideas with other techniques to create a method for analyzing and scheduling software components into a value-maximizing project. The basic steps in the method are as follows3:
- Define project level strategies such as
- length of the analysis and development phases;
- duration of each development and analysis period; and
- discount rate.
- Identify candidate MMFs and evaluate them for their ability to deliver value to the customer.
- Identify cost and revenue figures for all tangible MMFs.
- Identify and evaluate equivalency values for intangible MMFs.
- Select an architecture and break it into elements (AE) and construct cost figures for each.
- Evaluate the business and technological dependencies between each of the MMFs and AEs. Construct a precedence diagram showing these dependencies.
- Construct an SANPV table for each MMF and AE.
- Select an appropriate weighting factor depending upon the project's characteristics.
- Apply the IFM Weighted Look-Ahead Heuristic to identify the optimal sequence of scheduling components for development.
- Review the schedule and adjust for critical project metrics such as maximum cash investment needed, time to break-even, and project-level return on investment (ROI).
The book explains each step and technique in detail so the working manager will be able to begin using the IFM right out-of-the-box. The authors also show how the IFM can be used in both the traditional development method such as RUP as well as how to incorporate it into Agile development methods.
The value of this book is summed up in the phrase - "Informed Decision Making". The Incremental Funding Methodology enables the project manager to make better decisions about planning a project. The framework enables the manager to make explicit - through established financial analysis techniques - the costs and revenue streams for components of the project.
The framework is a blending of several individual ideas that I have worked with separately but never put together in this manner. I am an Investment Officer working with present value concepts for 20 years. In addition, I am a software engineer with experience at both the programming and the project planning level. The book caused me to slap my forehead and exclaim "why didn't I think of that?"
As a manager it allows me to make explicit my calculations to show how I perceive value in the project and how I will deliver it to the client. It allows me to make clear my underlying analysis so I can better able to convince the executive(s) and the client of the value to be delivered.
Software By Numbers presents ideas molded together in a framework that provides greater information of the value of individual project components. Armed with that knowledge the project manager can make better, informed decisions about planning a software development project. The improved decisions will increase the manager's ability to complete the project on-time and within budget. I recommend this book for software project managers.
- page 3.
- front book cover.
- Appendix B