Tag Archives: Effort Estimation

How to Quickly Estimate Project Effort using Expert Judgement?

Motivation:

You need to quickly estimate effort for building an enterprise system.

Solution:
  1. Ensure that you have a requirements analysis document.
    This can be

    • list of artifacts or
    • a list of features or
    • a list of use cases or
    • a list of user stories or
    • a list of user interfaces or
    • a list of workflows with their steps.
      Note: Never conduct an estimation using expert judgement without any inputs.
  2. Break down each of item in the list into the following (but not limited to) tasks to create:
    • UI and navigation code,
    • database script or storage schema definition code,
    • API code,
    • business logic code,
    • data access code,
    • scheduler code,
    • unit tests code,
    • deployment script,
    • end-to-end test cases and test reports, and
    • user guide.
      Note: You do not need to break down a feature into tasks if you can estimate an effort to complete it with high confidence.
  3. Estimate the effort in man-days for completing each task.
    When giving an estimate for each task, think about

    • possible inputs validation and error handling aspect,
    • possible navigation framework preparation,
    • possible alternative scenarios of the feature related to the task,
    • possible encryption and decryption aspect,
    • possible attacks prevention (e.g. adding CAPTCHA, trimming special characters),
    • possible frameworks, libraries or external tools preparation, and
    • communication, meeting and status report for each task.
      Note: You should break down a task into sub-tasks if you are still not confident when giving an estimate for completing it.
  4. You do not need to perform the second and third step in a sequential order, just complete anything you can and repeat these 2 steps as many times as you like.
  5. If you cannot break down a feature into tasks or cannot give an estimated value for a task then you need to create a prototype or a proof of concept related to the feature.
  6. If you want to have a more accurate estimated value for a task then you should give 3 values for the task estimation: the best case value (optimistic value), the worse case value (pessimistic value) and the most likely value, then calculate the estimated value using the formula below.
    Estimated value = (Best case value + (4 X Most likely value) + Worse case value)/6
  7.  If you just need to give an effort guesstimate for a project containing too many requirements then you can group similar items together, then guess an effort for completing one item in a group and multiply this value with the number of items in the group, then repeat this guess and calculation for all the remaining groups.
  8. Include all communication, documentation and training effort into the guesstimate.