Issue 2 - How to Reduce the Risk of Fixed-Price Estimates

Jeff De Luca's picture

De Luca on FDD Newsletter Issue 2

How to Reduce the Risk of Fixed-Price Estimates


In FDD the first three processes are one-time and form the project startup phase, while the construction phase is incremental. Between them is a key milestone. The FDD startup phase contains predictive metrics to project future effort based on early available indicators. Explaining this to the client allows the initial project estimates to be tested at the start of the project and the scope and duration to be negotiated as a part of the startup phase. At the end of this low-cost entry to the project, the project manager is in a strong position to proceed on a fixed-price basis. In these risk-averse times, the ability to accurately estimate development duration early and with high-confidence is more important than ever.

Feature Driven Development (FDD) comprises five processes that separate into two distinct project phases. The first three processes - Develop an Overall Model, Develop Features List and Plan By Feature are essentially "one time" processes and they form a project startup phase. The fourth and fifth processes - Design By Feature and Build By Feature - are incremental and comprise the project construction phase.

At the end of the startup phase, that is, after the Plan By Feature process has completed, you can set a big fat milestone in place that separates the startup phase from the construction phase. At this milestone (and with great knowledge) you estimate, price and negotiate the construction phase. This is a risk reduction strategy for you and your client and you explain this to the client before the fact. That is, before you start the project (in fact, I explain it as a part of the bid - it is a competitive advantage).

Let's look at why by considering just one of the predictive metrics in Feature Driven Development (FDD).

The FDD startup phase contains predictive metrics to project future effort based on early available indicators. One of the most useful and important predictive metrics comes from the Develop an Overall Model process. This metric says that for every two weeks of time you spend doing the modeling in the Develop an Overall Model process, there is six months of project construction phase time. That is, one week of Develop an Overall Model modeling is about three months of construction phase time, two weeks of modeling is six months of construct, three weeks of modeling is nine months of construct, and four weeks of modeling is about a year of construction phase time.

Therefore, if a client comes to you and says this is a six month project then you know you should spend about ten days in the Develop an Overall Model process (two weeks is ten working days). What this means is, for example, that by day seven (or thereabouts) you will know if you're in the ballpark or not. Using the six month example, if around day seven it is clear there is another week or so left in the modeling, then you can have the discussion with the client right then. Remember you have explained this predictive metric to the client before you started and the client has been in the room right with you as you've been doing the modeling (and the requirements and requirements analysis that goes along with object modeling). You can say something like "well, it's day seven and it's clear there's about another week and a half left in the modeling. This is a nine to twelve month project. What do you want to do?" This is a great position to be in as the project manager. The client has to either cut scope or "kaching!" (translation: ring the cash register). This approach takes all the confrontation out of it. There is no us and them, there's just "all of us." Together, you and the client have the knowledge to make an informed decision about scope and its very real implications.

Now remember that this is day seven of a six month project and you are able to make this informed decision that early (a predictive metric based on early available indicators). You haven't even cut any code yet.

Visibility. Early available indicators. Predictive metrics. These are all gifts for project managers and FDD has many of them - because it comes from the experiences of practitioners.

Having completed the startup phase you are in a great position to estimate a fixed-price construction phase at a nice big fat project milestone that separates the startup phase from the construction phase. You have all the knowledge gained from the first three FDD processes. That is, you've completed all the modeling and requirements analysis that goes along with it, produced the features list - which itself is a complete statement of the requirements, and then planned the entire construction phase accounting for dependencies, class and functional area complexities and pervasiveness, and for the skills of the developers on your team.

This is a terrific base of knowledge from which to estimate a fixed-price construction phase. Given the predictive metric from the Develop an Overall Model process (six months of construction time for every two weeks of modeling), and the fact most projects are a year or less these days, the startup phase is therefore typically a month or less. Often, the startup phase is within two to four weeks.

To size the startup phase you take the modeling time and add about a week to cover the time to do Develop a Features List and Plan By Feature (it's important to remember that the predictive metric based on modeling time in Develop an Overall Model works in both directions; either to predict construction time based on completed modeling time or, as in this case, to predict modeling time based on initial estimates of overall project size). If the modeling time is four weeks, then add two weeks for Develop a Features List and Plan By Feature. Only drop this extra time below one week if the modeling time is less than one week.

You sell the two to four week startup phase as a high value, low cost, low risk entry for a project, after which you can promise a fixed-price construction phase with a corresponding commitment plan.

Clients like this!

You can choose to sell the startup phase as fixed-price itself or as time and materials. The predictive metric lets you get the construction phase sizing right and explaining this to the client at the start, allows you to vary the startup phase as you go based on actual time taken to do modeling. Remember that the startup phase is small - a week here or there is not a big deal relative to the size of the overall project. Explain the process to the client before you start and buy yourselves (you and the client) the flexibility to adjust the startup phase "in flight."

There are several other things I do within the startup phase that are not directly addressed in the FDD processes. I'll write about them in a future newsletter.


© Nebulon Pty. Ltd.
With thanks to the review team: Phil Bradley, Gavin Baker. The inital observation of the relationship between modeling time and project time comes from Peter Coad's 20 years experience as one of the world's best object modelers.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Data Correlation and Validation

There may be first time readers who find this, 1 week of modeling equals three months of development, hard to believe.

However, I have been involved in FDD projects over 5 years on 3 continents, in 4 geographic locations, in 3 industries, over 13 projects with 4 different teams, all of whom have had different backgrounds and different levels of experience and skill. The projects have been small (3 months) to medium (9 months).

The 1 week of modeling equals 3 months of development metric has held up remarkably well.

I have another complimentary one which is the UI effort is 40%-60% of the PD (business logic effort). This has also held up remarkably well across all projects.

David
--
David J. Anderson
http://www.uidesign.net/
The Webzine for Interaction Designers

Scoping using FDD methodology in UI design projects

David, I find your experience interesting, especially because you say it holds up in the UI design world.

I am interested to hear what kind of projects you have worked on - are they app development type, or web based UI and interaction design type? My area of interest is especially in your smaller projects, the 3 (or less) month ones. And in how the FDD devp metric holds up in those types of timelines.

And when you say add 40 - 60 % for UI, does it include client variables in preferences? In my experience, I find this to take the longest to nail down.

Apreciate any insights.

Regards,
AM

Data Correlation and Validation

Dave
Just a few clarifications.

When you talk about the metrics that refer to 2 weeka of modelling equalling 6 months of development time, please check that I am understanding it correctly.
1. The 2 weeks of modelling are done by product managers, architects and senior developers.

2. If they can develop a complete feature model in 2 weeks, we can assume that a 'reasonable' development team can implement the design in 6 calendar months

3. This is not 6 man-months of effort. This refers to a reasonable time frame in which the product features can be developed.

4. We still need to estimate the team size and skill set on the basis of the industry and the product being developed.

5. Our budget (fixed cost estimate) would be derived from Step 4.

6. I am not clear what the skill set of a UI designer should be. However, I like this approximation of 40-60% of PD effort, because we always found that we were underestimating UI effort when we had a metric of 25%. Usually, this translated into major changes in the UI when we were approaching some deadline.

Thanks and regards

G Krishnamurthy
New Delhi, India

Jeff De Luca's picture

My Answers

These are my answers. I'm not speaking for David.

1. The 2 weeks of modelling are done by product managers, architects and senior developers.

At a minimum the necessary roles are the domain experts and the chief programmers. The reality is that several other roles can be involved and on smaller projects it is usually all of the programmers (not just the CPs).

I should write more about this sometime, but I think you have the gist of it.

2. If they can develop a complete feature model in 2 weeks, we can assume that a 'reasonable' development team can implement the design in 6 calendar months.

Yes (BTW - it is a domain model not a feature model).

3. This is not 6 man-months of effort. This refers to a reasonable time frame in which the product features can be developed.

Correct.

4. We still need to estimate the team size and skill set on the basis of the industry and the product being developed.

Yes (although not sure that industry is relevant. depends on your definition of "product").

5. Our budget (fixed cost estimate) would be derived from Step 4.

Yes (and from other things).

Jeff

How To Reduce the Risk of Fixed-Price Estimates - Jeff's Answers

Thanks, Jeff.

Sorry about point 2 - I meant a domain model, not a feature model.

Well, yes, Point 4 should be on the basis of product.

Agree about Point 5.

Many thanks

G Krishnamurthy
New Delhi, India

1 week = 3 months (staff numbers)

Hi

with regard to this equation is it for each person doing the modeling there is 3 months work for each persons 1 week work.

ie 5 people did the model, that took 2 weeks so we have a 6 month project with a staffing level of 5. Or this is 30 months of work that can be staffed with a range of 1 to 5

Or should there only be 1 person doing the modeling and you know 1 week modeling for my design guru equates to 3 months work for my team of 5 engineers ?

thanks

Matt

Jeff De Luca's picture

Not man months

Hi Matt,

no it's not a man-month type of metric. It's an emergent type of metric. i.e. what has been observed over a great many years and number of projects is that 1 week of modeling time becomes 3 months of construction time. It assumes (correctly, as it is the majority case) that the project is reasonably staffed. I do understand how people can think "what if there was only one person doing the modeling and there are 50 available for the coding," but that's not a reasonable staffing level. So yes, just as only having 1 developer to do the construction would break the metric, so would having 1000 to do the construction - unless of course, these were the reasonable staffing levels in the first place.

Jeff

What is a reasonable staffing level?

Hi all,

I'm quite new on this forum, but not to FDD and DNC. I've been following this design and development methodoly trend since the second week the Coad Book was published and I'm still quite excited about it.

Anyway back to the topic. One thing that still lacks on FDD (at least in the literature) is a metric for evaluating the staff number that is needed (not the actual roles).

Is there anything about this written within the context of FDD?

I figure, that if the initial modelling phase effort can form the base for an heuristic to predict the time that is needed to complete the project, maybe there is a relationship between it and the staff number required. As I understand the modelling phase is used to measure the complexity of the project, at least partially.

Best regards,

Nuno Lopes
PS: Sorry for my bad written english skills.

Jeff De Luca's picture

Ratios in FDD

Hi Nuno,

I'm glad to see someone so excited about the DNC (better named the Archetypal Domain Shape). It's a tragedy that this hasn't been picked up and developed more.

Anyway... your question about numbers of people is interesting and this comes up, in various forms, pretty regularly. People seem to want some kind of formula that can be run ahead of time to establish how long a project will take and how many people are needed for it and so on.

I can understand the need - after all, when you are doing fixed price work the number of people you will need is a critical component of your cost.

However, software construction is a human activity and so people are really everything, and the variance in people is so great and the mix of people available is so specific to each project, that I do not believe such a formula is helpful. In fact, I think it's the wrong mindset to have regarding people.

Having said all that I can share with you some guidelines in terms of ratios, that I know from years of experience, work well. From these, I do believe it is possible to construct the sort of formula you've asked about - but at the moment I'm not convinced that's a good thing to do (for the reasons just stated).

In the Develop an overall Model process, three teams of three people each works best. You can do it with two teams and it's still ok, but going beyond three teams is to be avoided as you waste too much time (I'm skipping over quite a bit of background detail here).

The ratio of domain experts to chief programmers in the Develop an Overall Model process should be about 1:3. That is, ideally, one domain expert per modelling team.

These are guidelines. Have I done it with less teams and more teams and with more domain experts - yes I have. But the ratios and numbers I've given you are, in general, the optimum.

In terms of the development team itself, the ratio of chief programmers to programmers should be around 1:4. 1:3 is ok as is 1:5 - out of that range is, in general, problematic.

Jeff

Example

So this example computation would be reasonable:

You do 2 weeks of modeling with 3 domain experts and 9 chief programmers. Then you do 2 weeks for building the feature list and plan by feature. So you have 5 months left for the construction phase. The construction phase is done by the 9 chief programmers and 38 programmers.

You would end up with a project size about 9+9*5+38*5=250 person months effort.

Is that the right way of thinking?

Stefan

Clarify 1 week Modelling to 3 Month Construction

Is P2-Develop Features List and P3-Plan By Feature included in the 1 week develop overall model process? If not, how long does P2 and P3 take?

Jeff De Luca's picture

No, Develop Features List and Plan By Feature are not included

The predictive metric is for Develop an Overall Model only.

The newsletter above says the following:

To size the startup phase you take the modeling time and add about a week to cover the time to do Develop a Features List and Plan By Feature (it's important to remember that the predictive metric based on modeling time in Develop an Overall Model works in both directions; either to predict construction time based on completed modeling time or, as in this case, to predict modeling time based on initial estimates of overall project size). If the modeling time is four weeks, then add two weeks for Develop a Features List and Plan By Feature. Only drop this extra time below one week if the modeling time is less than one week.

Feature-List as part of contract?

What will form the contract? The feature-list, the overall-model or another kind of requirements specification?

Stefan

Jeff De Luca's picture

Yes, that's what I often do

Hello Stefan,

sorry for the delayed reply but I was unexpectedly off work and offline for several weeks.

This depends on the situation, but yes I usually have the features list be part of the statement of work. They are client-valued and that list is simple functional decomposition of the domain, so it is easy to use as a baseline for changes (as one example).

Jeff

follow me on Twitter