Win a copy of Functional Reactive Programming this week in the Other Languages forum!

# To the authors: An overview

Nicholas Cheung
Ranch Hand
Posts: 4982
After reading the overview of the post, I have several questions:
1. What is the actual meaning of by number? Does the book go through those software engineering processes, by *quantifying* each of the processes?
2. Does MMF and IFM are costing methods about software development, or they are the mathematically models on software processes?
3. Cont with 2, if MMF and IFM are math. models, how accurate the costs are, based on their estimation?
Thanks
Nick

Jane Cleland-Huang
Author
Ranch Hand
Posts: 32
Well we coined the term "Software by Numbers" as a metaphor to painting by numbers. We thought this was appropriate because when you paint by numbers you first of all take the picture (ie the product) and divide it into smaller numbered pieces, that are then sequentially painted by referencing their numbers.
In IFM the 'pieces' are the MMFs, and the 'numbers' refer to the fact that for each of the MMFs that we identify we make cost and projection revenues. Developers already know how to make cost estimates, and business stakeholders/marketeers etc know how to make revenue projections. These 'numbers' together are used to calculate the Net Present Value for each MMF at various feasible delivery times. The NPV metric enables us to take into account the time value of money which is important for sequencing purposes.
So we are not trying to quantify the software development process. I think there are several other books that have addressed that issue, by for example trying to evaluate the ROI of software process improvement etc. IFM simply shows how to evaluate the cost and returns of various MMFs and sequence them accordingly.
Your third question raises an excellent point about how accurate these figures are. There are a couple of answers to that question. First, the level of accuracy is dependent upon your ability as an organization to project the value of your product. If you have statistical information available or historical data, this will help you to be more accurate. Secondly, IFM is an iterative approach. You make your cost and revenue projections to the best of your current knowledge. Based on that information you can identify what you think will be the optimal delivery sequence. You then start work on developing the first element(s), but prior to the next iteration you revisit any risks, costs, and revenue projections to see if anything has changed. If it has, you simply update your projections, reapply the IFM heuristics and make any necessary scheduling adjustments.
In this way, IFM enables you to keep your options open and to respond well to changes in the marketplace.

Nicholas Cheung
Ranch Hand
Posts: 4982

Developers already know how to make cost estimates, and business stakeholders/marketeers etc know how to make revenue projections. These 'numbers' together are used to calculate the Net Present Value for each MMF at various feasible delivery times.

But, how can these 'numbers' being consider during the calculation? We may need to determine some load factors, however, how can we obtain such figures?

IFM is an iterative approach. You make your cost and revenue projections to the best of your current knowledge. Based on that information you can identify what you think will be the optimal delivery sequence. You then start work on developing the first element(s), but prior to the next iteration you revisit any risks, costs, and revenue projections to see if anything has changed. If it has, you simply update your projections, reapply the IFM heuristics and make any necessary scheduling adjustments.

What kind of heuristics are used in IFM? Does you book cover this issues?
Nick
[ April 27, 2004: Message edited by: Nicholas Cheung ]

Jane Cleland-Huang
Author
Ranch Hand
Posts: 32
Our book describes a heuristic for prioritizing MMFs in order to optimize NPV. We need a heuristic because the number of feasible delivery sequences becomes very large as the number of MMFs increases. Even with some realistic constraints upon feasible sequencing, an exhaustive search through all possible sequences even for just 14 MMFs can take at least one hour (and that's on a really fast computer). The heuristic enables us to select close to optimal (or often optimal) solutions in a very short time.
One of the chapters in the book describes the heuristic in detail and discusses the underlying financial concepts.
We tested the results of the IFM heuristic on 600 sets of 14 MMFs and found that we get an average of 98.6% of the optimal NPV for a project - which is a pretty good result. We are currently testing it on larger data sets and comparing the IFM results to those obtained from using a Genetic Algorithm, which is well known for returning good results in large search spaces.