4.5 Omitted Activities
The previous sections described sources of error arising from the project itself. The remaining sections in this chapter turn to a discussion of errors that arise from the estimation practices.
One of the most common sources of estimation error is forgetting to include necessary tasks in the project estimates (Lederer and Prasad 1992, Coombs 2003). Researchers have found that this phenomenon applies both at the project planning level and at the individual developer level. One study found that developers tended to estimate pretty accurately the work they remembered to estimate, but they tended to overlook 20% to 30% of the necessary tasks, which led to a 20 to 30% estimation error (van Genuchten 1991).
Omitted work falls into three general categories: missing requirements, missing software-development activities, and missing non-software-development activities.
Table 4-2 lists requirements that are commonly missing from estimates.
|
|
---|---|
Setup/installation program | Accuracy |
Data conversion utility | Interoperability |
Glue code needed to use third-party or open-source software | Modifiability |
Performance | |
Help system | Portability |
Deployment mode | Reliability |
Interfaces with external systems | Responsiveness |
Reusability | |
Scalability | |
Security | |
Survivability | |
Usability |
Tip #17 | Include time in your estimates for stated requirements, implied requirements, and nonfunctional requirements—that is, all requirements. Nothing can be built for free, and your estimates shouldn't imply that it can. |
Table 4-3 lists software activities that estimators often overlook.
Ramp-up time for new team members Mentoring of new team members Management coordination/manager meetings Cutover/deployment Data conversion Installation Customization Requirements clarifications Maintaining the revision control system Supporting the build Maintaining the scripts required to run the daily build Maintaining the automated smoke test used in conjunction with the daily build Installation of test builds at user location(s) Creation of test data Management of beta test program Participation in technical reviews Integration work Processing change requests Attendance at change-control/triage meetings Coordinating with subcontractors | Technical support of existing systems during the project Maintenance work on previous systems during the project Defect-correction work Performance tuning Learning new development tools Administrative work related to defect tracking Coordination with test (for developers) Coordination with developers (for test) Answering questions from quality assurance Input to user documentation and review of user documentation Review of technical documentation Demonstrating software to customers or users Demonstrating software at trade shows Demonstrating the software or prototypes of the software to upper management, clients, and end users Interacting with clients or end users; supporting beta installations at client locations Reviewing plans, estimates, architecture, detailed designs, stage plans, code, test cases, and so on |
Tip #18 | Include all necessary software-development activities in your estimates, not just coding and testing. |
Table 4-4 lists the non-software-development activities that are often missing from estimates.
Vacations | Company meetings |
Holidays | Department meetings |
Sick days | Setting up new workstations |
Training | Installing new versions of tools on workstations |
Weekends | Troubleshooting hardware and software problems |
Some projects deliberately plan to exclude many of the activities in Table 4-4 for a small project. That can work for a short time, but these activities tend to creep back into any project that lasts longer than a few weeks.
Tip #19 | On projects that last longer than a few weeks, include allowances for overhead activities such as vacations, sick days, training days, and company meetings. |
In addition to using the entries in these tables to avoid omitting parts of the software or kinds of activities from your estimates, you might also consider looking at a Work Breakdown Structure (WBS) for the standard kinds of activities to be considered. Section 10.3, "Hazards of Adding Up Best Case and Worst Case Estimates," discusses estimating with a WBS and provides a generic WBS.
No comments:
Post a Comment