Program Estimation

Estimation for programs has multiple phases so that we improve estimates as we gain more confidence about requirements, Milestones, Epics, and Features. Estimation is not forecasting the time it will take to complete any item, estimation is intended to forecast the difficulty of the items so that over time we learn how long a team will take to complete a story based on the team's velocity.

What are Story Points?

Story Points are a measure of effort, they do not measure time. Story points should make estimating easier by considering only the effort it will take to complete a story relative to other stories. Then using the team's velocity over time, we can estimate when an item is likely to be completed. When assigning story points the team should consider the following:

  1. The amount of work - If you didn't have any distractions how long would it take to code it?
  2. Complexity of the work - Do I need to get an architecture review? Does this interact with outside systems?
  3. Risk Level - Is this a code path that has good testing? Does it have impact on other parts of the application?
  4. Testing Required - Are there any unit tests? Do we need a new test harness? How will I functionally test that?

Estimating and Program Phases

In the AVEVA Operations Information R&D Agile methodology, we have two states for any program where estimates will occur; they are Discovery and Committed.

Discovery Estimates

The Discovery phase is intended for teams to learn what they don't know so that they can build a skeleton backlog and estimate the large milestones. The Discovery phase is led by the Architecture team and staff engineers and monitored by the Program Manager. Once discovery has solidified enough for teams to create a high level backlog, the teams assigned will conduct a high level estimation session so that we can ballpark the effort to complete each milestone. The teams will estimate features to the number of sprints needed to complete each item. This estimate will be provided in the Discovery document.

Program - In Progress

Once the state of the Program is set to In Progress, the backlog items will be assigned to teams to complete. Below are a list of team activities in this phase relative to estimation.

Estimation Best Practices

  1. All teams will have a weekly estimation meeting.
  2. TPM, EM's & Staff Developers will groom stories at least weekly. Team should not have unestimated stories in their backlog, therefore in the beginning of the program more frequent estimation is expected.
    • Stories marked NEW will be refined and changed to Approved to indicate they can be estimated.
    • Provide the stories to be estimated by the team ahead of time to save time in the estimation session. Do Q&A in the discussion for the item in ADO.
  3. Features will be estimated in their entirety in an estimation session, testing is always part of the feature, unit, integration and functional.
  4. Only estimated items maybe placed into a teams sprint backlog.
  5. All PBI's will have tasks and tasks must have hours assigned to them
    • Tasks should be no more than 8 hours
    • Tasks should be detailed enough so that it's clear what work is being performed