Each time you complete an estimate and again at the end of the software development, you should document the pertinent information that constitutes the estimate and record the lessons you learned. By doing so, you will have evidence that your process was valid and that you generated the estimate in good faith, and you will have actual results with which to calibrate your estimation models. Be sure to document any missing or incomplete information and the risks, issues, and problems that the process addressed and any complications that arose. Also document all the key decisions made during the conduct of the estimate and their results and the effects of the actions you took. Finally, describe and document the dynamics that occurred during the process, such as the interactions of your estimation team, the interfaces with your clients, and trade-offs you had to make to address issues identified during the process. Cost models, which are based on the actual costs of past projects, can be calibrated and their accuracy can be demonstrated by comparing the costs of your current estimates with both past project data and the actual costs of your completed project, thereby adjusting the model input parameters to improve future accuracy.
CONDUCTING A LESSONS-LEARNED REVIEW
You should conduct a lessons-learned session as soon as you can after the completion of your project while the participants’ memories are still fresh. Lessons-learned sessions can range from two team members meeting to reach a consensus about the various issues that went into the estimation process to highly structured meetings conducted by external facilitators who employ formal questionnaires. No matter what form it may take, it is always better to hold a lessons-learned meeting than not, even if the meeting is a burden on those involved. Every software project should be used as an opportunity to improve the estimating process.
The most accurate lessons-learned session would encompass three reviews. The first, known as the cause segment, is held after the estimate has been accepted and asks, “What did we do and what trade-offs did we make?” The second, or effect segment, evaluates the accuracy of the estimate and its process on a high-medium-low scale to assess “What were the effects of the shortcuts and assumptions we made, and should these changes be incorporated into our standard process?” The final meeting, the modeling improvement segment, considers how the models could be applied to more accurately reflect the process followed, the results of the project, and the quantitative values of key model factors at the completion of the project.
These sessions are important for answering questions that are critical to the organization and for providing the information needed to validate the accuracy of the cost models used. As a software manager, part of your responsibility is to improve the performance of your staff over time. To conclude the review, participants should be asked to use the lessons they have learned and to establish goals for their next project.
MODELING IMPROVEMENT SEGMENT
Because software estimation models provide a basic framework for estimation, they should be refined or calibrated to the maximum extent possible in order to produce the best estimates possible. Model refinement is conducted to both improve the accuracy of estimates and to better suit the people, processes, and products that are typically encountered. It can also improve the estimating process by providing information necessary for pre-configuring the model, thus shortening the learning curve on any given estimate. The estimation team at the completion of the project usually conducts the modeling improvement segment.
Step Eight: Generate a Project Plan
Step Ten: Track Project throughout Development