The previous sections described sources of error arising from the project itself. The remaining sections in this chapter
One of the most common sources of estimation error is
Omitted work
Table 4-2 lists requirements that are commonly missing from estimates.
|
Functional Requirements Areas |
Nonfunctional Requirements |
|---|---|
|
Setup/installation program |
Accuracy |
|
Data conversion utility |
Interoperability |
|
Glue code needed to use third-party or
|
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,
|
Table 4-3 lists software activities that estimators often overlook.
|
Ramp-up time for new team
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
Creation of test data Management of beta test program Participation in technical reviews Integration work
Processing change
Attendance at change-control/triage meetings
Coordinating with
|
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
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
of the software to upper management,
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.
|
|
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