Skip to content

Estimation & Scoping

We estimate in ranges, never a single number. A single number is a promise we can’t keep; a range is honest about uncertainty and still gives the client something to plan against.

flowchart LR
  I["Backlog item"] --> O["Optimistic (O)"]
  I --> M["Most likely (M)"]
  I --> P["Pessimistic (P)"]
  O --> E["Expected = (O + 4M + P) / 6"]
  M --> E
  P --> E
  E --> R["Quote a RANGE<br/>with confidence"]
  • Early scoping → T-shirt sizes (S / M / L / XL). Fast, good enough to shape a proposal or compare options before the backlog is refined.
  • Refined backlog → three-point / PERT per item. Estimator gives Optimistic, Most Likely, Pessimistic; expected value is (O + 4M + P) / 6, and the quoted range reflects the spread.
  • Roll up, don’t average blindly. Sum expected values; widen the range where risks in the risk register cluster.

Padding is explicit and named, never hidden inside estimates:

  • Integration with an external/third-party system we don’t control.
  • Client-provided assets, access, or content on the critical path.
  • New technology the team hasn’t shipped before.
Model Use when Risk sits with
Fixed-price Scope is well-defined and stable (tight MoSCoW, clear acceptance criteria). Us — so scope control and the change-request clause matter.
Time & Materials Scope is exploratory, evolving, or discovery-driven. Client — we bill actual effort against a range estimate.

Default: fixed-price for a bounded scope, T&M for anything exploratory. A hybrid (fixed for the Must scope, T&M for Could items) is common.

  • Firas Darwish (Backend Lead) owns estimation quality and signs off the numbers.
  • Firas Alhawasli (PM) owns the commercial framing — model, range, and padding as presented to the client.
  • Estimates feed the SOW; no SOW ships with a single-number quote.
👤 Owner: Firas Darwish🗓 Last reviewed: 2026-07-25

اقرأ هذه الصفحة بالعربية