Pre sales estimation - alexanderteplov/computer-science GitHub Wiki
We should estimate 3 important things:
- Scope. We have to identify the project scope. It's better to use points (Story / Functional / Use Case) for estimations. And remember Scope and Effort are not the same.
- Resources. We have to understand the team structure and create the resource plan.
- Schedule. After the first two steps, we create an elementary schedule. After adding Risks, we get the final schedule.
- All Assumptions and Constrains are identified and described (documented in the Proposal or SoW)
- If the MVP was requested as part of the project request for the proposal, define the minimal viable product (MVP) and the rest of the work separately (and document it in the Proposal or SoW)
- Acceptance criteria are agreed on and documented in the Proposal, SoW or master service agreement (MSA)
- The allocated resources are fully utilized but no significant overtime or overbooking is planned for resources
- If multiple production releases are planned, each release has its full development cycle in the plan (Requirements, Analysis & Design, Configuration Management/Development Environment, Implementation, Testing, Documentation and Customer handover)
- If fixed price estimation is requested, a detailed scope description and/or assumptions are provided, risks are assessed and turned into contingency in the plan. Contingency is expressed in both time and effort in the plan
- The project budget is reviewed and approved by the presales group or another “independent” group who can act as a quality gate for the estimate
- Any discounts or non-standard pricing (that are not based on the man days estimated and the rate card approved) are approved by a sales executive or an executive team member
- Include possible additional costs like environments/clouds, licenses, specific hardware/software, etc.
- If multiple vendors are involved, define vendor responsibility and dependency
- Plan offshore/onsite roles initially, include a travel budget
- Management effort included
- Manual testing included
- Automated testing included (if any)
- Performance testing included (if any)
- Support included or mentioned to be estimated separately
- Deliverables (documents, sources, binaries, etc.) list created
- Documentation creation (mentioned in deliverables) included
- Initial risk list created
- Assumptions list created
- Communications effort included
- Change request workflow described
- Reserve some effort for engineering quality (EngX)
- Consider onboarding (required training, setting up environment, getting access, knowledge transfer, etc.)
- While estimating team the capacity and delivery timeline - take into account constraints like working schedules (in particular GEOs), differences in time zones, national holidays, team vacations, illnesses, etc.