Tuesday, July 30, 2013

Defer risks in your estimate

One tactic that is useful for keeping the cost of a project plan low is to externalize as many of the risks as possible from the main flow.

Identify risks and for each risk identify a trigger which will indicate when the risk is happening and the team will need to deal with it. Once you have this list of risks and triggers, associate a cost for dealing with each risk. Sometimes the cost will be in dollars, sometimes in days, often it's both.


You cannot just list the risks.  Each risk must have a trigger signifying when it is happening and that it needs to deal with it.   It is the triggers that get written into the contract.  Let's look at a fictitious example.



In this example you might say, "We can implement this report, if we can get the data from the XYZ system."  

What are some risks?  Well, the data might not be available when the XYZ people said it would be. The data might be in the wrong structure.  The data might be in the wrong units or format.  The data might be incomplete.  So, we could identify these triggers:
  • IF the data is not available on May 1st
  • IF the data does not fit the structural spec. version 1.1, March 3rd
  • IF the data is not in the expected units or ISO formats in spec. v1.1
  • IF the data does not contain a minimum of these fields...
From this list of risk triggers we can identify actions that are added to the contract to mitigate these risks:
  • IF the data is not available on May 1st
    • THEN 1 week will be added to the schedule and an additional day for each day after May 1st that the data is not available.
  • IF the data does not fit the structural spec. version 1.1, March 3rd
    • THEN delivery of the report will be placed on hold until an analysis of the delivered data can be performed.  This analysis will add 3 days to the schedule regardless of acceptance any other schedule changes due to discovery during the analysis.  Once the discovery is performed, the delivery of the report will be renegotiated.   This analysis can be comibned with the item below.
  • IF the data is not in the expected units or ISO formats in spec. v1.1
    • THEN delivery of the report will be placed on hold until an analysis of the delivered data can be performed.  This analysis will add 3 days to the schedule regardless of acceptance any other schedule changes due to discovery during the analysis.  Once the discovery is performed, the delivery of the report will be renegotiated.  This analysis can be combined with the item above.
  • IF the data does not contain a minimum of these fields...
    • THEN delivery of the report may not be possible.  A new assessment will need to be undertaken.  This will add a week to the schedule and regardless of the analysis it may be found that delivery is not feasible.   Renegotiation for the delivery of this report will need to be performed once this analysis is complete.
One of the Agile principles is "CUSTOMER COLLABORATION over contract negotiation" so it is much better to just have the customer in the room with you and to collaborate on the issues as they come in.  If that is not possible, then the tactic above is one way to deal with these risks to the schedule and to provide transparency into why something that was estimated as 90 days took 150 days to deliver.

This also gives you a way to bid the project at the lower price and to protect yourself should the contingencies become necessary.   And some of them will.

1 comment:

  1. This is great advice, Scott. It helps the client and the development team face down the risk head-on, instead of crossing our fingers and pretending it isn't there.

    ReplyDelete