Through the years several customers have asked us the following question:
“How did you estimate our software development project?”
Following an explanation on how we estimate custom software development projects at Wovenware.
At Wovenware we take a team approach when estimating a software development project. This means that several resources with different experiences and backgrounds are involved in our project evaluation process. These resources are usually:
- Someone from the Executive Team
- One or more Senior Software Developers and/or Senior Software Architects
- A Project Manager
The first step on any project estimate process is to understand the software requirements needs of the specific software development project. The Project Estimate Team members are selected based on the specifics of the software requirements. Depending on the complexity of the project, the Project Estimate Team may meet in person with the customer to discuss the project requirements or a member of the team that has met with the customer explains to the team the specific project requirements.
Once all members of the Project Estimate Team understand the requirements, the team breaks into an individual estimate exercise. During the individual estimate exercise each team member will perform a separate project estimate using his or her favorite appraisal methodology. We always encourage the Project Estimate Team members to perform the estimates using several of the appraisal methodologies.
Some of the appraisal methodologies we use are:
- Duplicate Methodology – If a similar project has been developed at Wovenware we use the similar project actual project plan as a base for the new project estimate. We then modify the base plan with the specific tasks involved in the software development we are appraising.
- Grouping Methodology – We group all functionality in sets of similar functions. That is, if we identify 10 screens in the application we may group the functionality as: documentation, meetings, 4 easy screens, 4 normal screens, 2 difficult screens, testing, deployment, and project management. Once we have the groups we assign a number of development hours to the group. That is, easy screens will take 2 days, testing will take 4 days, etc. Then we multiply the number of members in the group by the number of estimated development hours. For example, 4 easy screens will take 8 days (4 *2 = 8). Finally, we add all the development hours to arrive at our project estimate.
- Detail Methodology – This is the methodology that usually takes the most time to complete, as a detail project plan is developed to estimate the project. Each project task is identified, individually estimated, and a detail project plan is prepared.
After all team members complete their individual estimate exercises a group meeting is held. Every team member presents his or her estimate and an estimate table is created. The estimate table contains the estimates of all team members. Usually the variance between the individual estimates is trivial and an estimate range can be presented to the customer. That is, let the customer know that the software development project will take between A and B.
If the variance between the individual estimates is significant then the Project Estimate Team performs a group estimate using a Detail Methodology. The resulting estimate is then presented to the customer.
It is not easy to estimate a software development project. Experience is the most important skill when performing a custom software development estimate. That is why only people with significant experience in software development projects can accurately estimate a software development project.
If you are a customer of a software development project always ask how your project was estimated and the experience of the people that estimated your project. The success of your project may depend on this.