Best Practices for Software Projects - Estimating Ever have a manager give you a brief description of a possible project and ask you for an estimate? After listening to the manager describe the project, you give him a "seat-of-the-pants" estimate, explaining that that it is a ball-park estimate based on what you've been told. To your surprise, you learn a week later that the manager has presented the estimate to a client and puts you in charge of delivering a complete solution based on the estimate you provided. You shockingly explain that the estimate was just a ball-park estimate and you need to learn the detailed requirements before you can provide a final estimate. The manager argues that it is too late for that, saying that the customer has already approved your original estimate and the manager expects you deliver what you initially agreed to. Reluctantly, you proceed with the original estimates. 12 months later, your manager calls you into his office and asks why you are already 4 months late delivering the project and wants to know how you could be so incompetent in your estimating (not acknowledging that it was his fault for communicating the ball-park estimate to the client in the first place)! Does this sound familiar? Unfortunately, this happens often. Most projects are underestimated by anywhere from 25 to 100 percent, and this is normally caused by providing preliminary estimates that are published as the "golden estimate". To provide a better estimate, you must make it all the way through the product design phase before publishing the estimate, where it will have an error margin of 25%. Researchers have found that
project estimates fall within a predictable range at various stages of the
software lifecycle. According to Boehbm 1995 (Cost Models for Future
LIfe Cycle Processes COCMO 2.0), your estimates will improve as the
software lifecycle matures: As you can see, it is practically impossible to provide an adequate estimate in the Initial Requirements stage, so don't fall into that trap. Below are some tips for providing better estimates:
Below are some helpful templates to aid you in developing software solutions on-time and on-budget:
About the Author
| |||||