Welcome to Part IV of the Five Part Blog Series -- “Steps to Creating an OUM Estimating Model”.
In today’s blog, I will share with you, from my experience, the key steps in creating a reasonable, repeatable estimating model.
Steps for Developing an OUM Estimating Model
A. Assemble the Estimating Model Development Team
As discussed, the goal of an estimating model is to estimate a scope of work yielding consistent effort for consistent scope regardless of the experience of person or people creating the estimate. In order to achieve this goal, a team of diverse, experienced Subject Matter Experts (SMEs) must be assembled.
B. Defining the Scope of the Estimating Model
Before you begin building an estimating model, always clearly define what is in and out of scope for the estimate. Technology has become complex and product suites include multiple products and technologies. Be sure to clearly define and document the scope of what you estimate, and what you do not estimate. For example, if you are estimating integration effort for a particular product, you will need to define whether you are estimating the development of the entire integration, or simply the integration point (SOA enablement, API, etc) for your product.
C. Determine the Estimating Component Level
As you know, the lowest level of detail in OUM is the task level, but OUM also groups tasks into Activities. For the purpose of a bottom up estimate, you will need to determine what level of detail you want to achieve in your estimating model – either the task level or the activity level.
While the task level estimating model provides a higher degree of accuracy, the development and maintenance effort is increased. For the purpose of estimating, the activity level may provide the level of detail that you need.
Once you identify the estimating component level – either the task or the activity level -- you will want to identify those OUM tasks or activities that are typically in-scope for the estimating model.
D. Understand the Implementation Approach
You will not be successful in creating a reasonable estimate if you do not understand the implementation approach – in this case OUM. This is one of the most important steps in creating your estimating model, especially a bottom-up estimate.
As you identify your implementation approach, think about whether the estimating component is always needed (required) or if it is optional. If the estimating component is optional, then think about the conditions that will trigger it to be needed.
An estimating model will need to identify these conditions to add the optional estimating components and associated effort when the conditions are met.
E. Determine the “standard” effort and Identify factors that influence estimate
For each estimating component regardless of whether they are required or optional, determine the “standard” effort and the conditions that increase or decrease the standard effort. Here are a couple of approaches to doing this step:
- include a base number, and then ask questions to either add or subtract effort
- Identify a range of effort for each estimating component and ask questions to help determine where in this range of effort you need to be.
- Keep in mind that you can create a simple estimating model with each question influences the effort of one estimating component, or a more complex estimating model where multiple questions are asked to determine the effort of an estimating component, or one question influences the effort of multiple estimating components, or both ( multiple questions are asked which influence multiple estimating components’ effort). The correct level of complexity for an estimating model typically reveals itself during the development process. My advice is to start simple and add complexity where and when it is needed.
This step is the most time consuming and difficult for estimating model developers to perform. I normally see a lot of passionate discussion from the development team reflecting unique experiences and past pain! If you experience this when developing your estimating model, then take a deep breath and know you are on the right path!