Skip to content

Datastores EPIC delivery times - estimation methodology

Purpose:

This issue explains the methodology followed to estimate the Datastores EPIC work, our team capacity and finally an estimated delivery time per EPIC, taking into account the different work priorities.

1. Estimate the work. For every EPIC:

  1. Break down every EPIC into issues, representing all the work in scope. Separate the DBRE and SRE work in different issues (for the estimation) as much as possible.
  2. Use Gitlab's /estimate functionality to add time estimations for each EPIC issue.
  3. Select all the issues in the EPIC, export to a Google sheet (via cvs).
  4. Filter by the issues by open. Transform the estimates to days (with decimals). Add up the total EPIC work estimated for DBREs and SREs, separately.
  5. Add the EPIC and the two work estimations to the "Datastores Roadmap Delivery estimations" Gsheet, sheet "EPIC estimates", EPICS column.

2. Estimate the team capacity per week:

This can be done once a month approx, updating Out of the Office, vacation days and more, frequently (Gsheet rows 3-17).

  1. Fill in the DBRE and SRE team member names.
  2. Fill in Week numbers and Dates in the different columns, representing the desired time period.
  3. Fill in the EOC periods for every SRE, and the planned OOO (Out of the Office) for DBREs and SREs.
  4. The project work capacity (see "Estim DBRE proj work capacity" and "Estim SRE proj work capacity") will be calculated automatically.
  5. A few assumptions have been taken for these calculations (for now), be aware of them:
    • Estimate of sick/absent days to subtract from total team capacity (%): 5%
    • Estimate of help-required/calls/unplanned/other work, to subtract from the project work capacity (%): 20%
    • Incident Review and CA time has already been subtracted from the SRE project work, using the EOC rows.
    • An estimation of 10 bank holidays (OOO) per person/year has also been included.

3. Calculate the final delivery dates, per EPIC:

  1. Go to the spreadsheet EPICs section and distribute the work estimated, in days, across the following weeks/months, for every EPIC.
  2. Check constantly the Rows "SRE/DBRE Capacity Left". The idea is to distribute the work estimated for every EPIC in an even way across the upcoming weeks/months, so the value for these Rows stays as close to zero as possible.
  3. Once we are happy with the results, the work estimation distribution per EPIC will tell you when every EPIC delivery finishes, according to the designed delivery plan.
  4. Update the EPIC estimated delivery date in the EPIC in GitLab, and in EPIC of EPICs page.

4. How to estimate EPIC deliver times, on an ongoing basis:

Every time a new EPIC is included in the team Work in progress or Up Next sections, we will:

  1. Go to point 1 of this description and follow the steps, for the new EPIC.
  2. Roughly review the team capacity estimations in point 2.
  3. Readjust the delivery plan, following the steps in point 3.

And voila! We have our new delivery time estimations for the new EPIC.

5. Google Sheet example:

Here you can see an example of a populated "EPIC estimates" sheet:

Screenshot_2020-12-23_at_10.36.36

Edited by Alberto Ramos