Motivation:
You need to quickly estimate effort for building an enterprise system.
Solution:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- Include all communication, documentation and training effort into the guesstimate.