What was the last project that you estimated for effort? While we often associate estimation with work, we estimate projects every day. For example, we estimate how long it will take us to get to work via the interstate and how long it will take to cook dinner. Are you tempted to dive into the project because you know what it will take to complete? How much re-work accompanies your project?
Most recently, I went through a moving process. I went to the local Uhaul dealer and matched up the truck with the size home that I was emptying. I even went up one size on the truck, figuring there would be some extra boxes. While these “guesstimates” are good to give a mover an idea of what they may need, they are by nature fallible. Just because a truck says that it will fit a 3 bedroom home doesn’t account for all of the smaller items that add up. The lack of an understanding of what I was dealing with proved to be mistake number one during this initial scoping effort. Prior to beginning the truck load, the movers and myself reviewed each room to ensure that all would fit in the truck. The lack of a detailed inventory, or requirements, proved to be mistake number two. During the moving process, the movers kept indicating that it would be tight but they were confident that it was going to fit into the truck. The lack a validation and review method proved to be mistake number three. In the end, I had to rent a trailer to pull behind the truck, which required an additional three hours of effort and doubled the cost of what it would have been if I had enough information to rent a larger truck in the beginning.
During a software project, we tend to want to dive right into the project and “figure it out”. Doing this increases the chances of project failure. At CTS, we like to phase work to ensure that the client knows what they are going to receive at a particular cost at a certain time. While we work with different implementation flavors (including Agile, Hybrid Agile, Waterfall), you will hear CTS use the term Phase 1. Continuing with the truck example above, this Phase 1 effort helps to ensure that clients understand what size truck they are going to need. During a Phase 1 effort, CTS will assess the effort, interview stakeholders, document the vision, and provide a roadmap to accomplish the effort along with firm Phase 2 and budgetary Phase 3 estimates. During Phase 2, CTS helps to elicit and document requirements to ensure that clients know what will be going into the truck. Phase 2 confirms the scope, timeline, and cost for implementing the client’s request. Finally, during the Phase 3 or execution phase, CTS quality and project management processes ensure constant feedback and validation so that clients and CTS can jointly understand and make decisions regarding risks, schedule, scope changes, and cost impacts. This includes regular client status meetings, status reports, defined milestones, and internal quality management reviews.
Following a defined process adds some time to the upfront planning. While we all are tempted to dive into the project and figure it out, we need to take a step back to ensure that we will deliver a quality project that meets everyone’s expectations. If I had followed these processes outside of work, I would have saved time and money on my recent home project; don’t skirt the process for successful delivery. Follow the above process and make sure that you have the right size truck for your job.