Last Updated: February 25, 2016
·
1.254K
· jacaetevha

Estimating

I was recently asked to lay down the things I think about when estimating stories for development. Here's what I came up with. Given that a lot of this is second nature, I'm sure I've missed something in my attempt to get it all out of my head. ConstructiveCriticism is strongly encouraged.

Design

  • Will this story fit into the current design of the code?
    • best case scenario, generally lowers estimate
  • Will I need to refactor how we currently do things in order to accommodate this story?
    • probably the most common case
    • refactoring can sometimes add more time to the estimate, but not always
    • refactoring should always be done in context
  • Will I need to remove and/or rewrite significant portions of the code in order to accommodate this story?
    • should be rare, but these do happen on occasion
    • generally adds significant time to story, but not always (e.g. removing code can be quite quick and not add a lot of time)

Testing

  • What will the tests/specs look like for this story?
    • each category (developer, functional, integration, feature, other?) of tests/specs adds time and complexity -- but well worth it
    • not all stories require a feature test/spec per se (e.g. developer and functional tests/specs may be sufficient)
  • Will this story affect current tests/specs?
    • usually adds time

Research

  • What new research do I need to do for this story?
    • variable affect on story, but for the purposes of estimating it is assumed that this will add more time
  • Are there libraries/frameworks that will help with this story?
    • usually decreases estimate
  • Would this story benefit from a quick proof of concept (PoC) first?
    • adds time
    • usually separate from the story and written to include time (e.g. "take a day to investigate Foo" or "take a few hours to build a PoC to validate our approach")
    • sometimes these stories are written after work on the initial story has begun, in which case the initial story is paused in favor of the PoC and usually re-estimated based on findings
  • Do I have everything in place already and thus the need for new research is mitigated?
    • adds no time

Documentation

  • What sort of documentation will I need to reference in order to finish this story?
    • Is it readily available? adds little to no time
    • Do I need to find it? adds time
  • What sort of documentation will I need to write for this story?
    • usually adds some time
    • this can be a significant investment of time (e.g. documenting an API for external customers)
    • or not much time at all (e.g. just documenting an algorithm by copying and pasting some other resource)

Deployment

  • Will this story affect the current deployment scheme?
    • adds time
  • Will this story have no effect on the current deployment scheme?
    • freebie, obviously