Page 45 -
P. 45

open. Writing down the assumption allows the team to go back and revise the estimate
                          later if it turns out the assumption is wrong—which means that it is vital that everyone
                          understands that the assumptions are allowed to be incorrect. That way, if the team esti-
                          mated that they would build a command-line program but later the decision was made to
                          go with a full user interface, everyone will be able to explain why the schedule is delayed.

                          Another benefit of discussing assumptions is that it brings the team together very early on in
                          the project to make progress on important decisions that will affect development. It’s all too
                          common for a developer to make estimates after reading the vision and scope document but
                          before ever talking to anyone about the details of the project. Even if she writes down her
                          assumptions, she has almost certainly missed many others. A moderated discussion of
                          assumptions gives the project team a very effective forum to discuss the unknowns of the
                          project. Identifying unknowns eliminates the source of many inaccuracies in the estimates.

                          One side effect of writing down the assumptions is that it puts pressure on the senior man-
                          agers to allow the project to be estimated again if any of the assumptions prove to be
                          incorrect. This is why the project manager should plan on having the vision and scope
                          document updated to include any new assumptions that were identified during the esti-
                          mation session. This gives the stakeholders and management a chance to review those
                          assumptions and accept or reject them very early on, before they have had a chance to
                          interfere with the development of the software. By having the senior managers review the
                          assumptions, a project manager can reduce a source of future project delays.

                          Distrust Can Undermine Estimates
                          Estimates can either be a source of trust or distrust between the project team and their
                          managers. If the team knows that they are given the opportunity to fully justify their esti-
                          mates, and that they will be allowed to reestimate if the scope of the project changes, that
                          they won’t be punished for making an honest mistake in estimation, then each team
                          member will work very hard to produce accurate estimates. In this case, estimation can be
                          an effective tool for team motivation. Estimates are most accurate when everyone on the
                          project team feels that he was actively part of the estimation process. Every team member
                          feels a personal stake in the estimates, and will work very hard to meet any schedule
                          based on those estimates.

                          Estimation is, by its nature, a politically charged activity in most organizations. When a
                          team is asked to create estimates for work, they are essentially being asked to define their
                          own schedule. Stakeholders need the project completed but usually do not have software
                          engineering experience, so they may not be equipped to understand why a project will
                          take, say, six months instead of three. For this reason, project managers must take care to
                          make the estimation process as open and honest as possible so that the stakeholders can
                          understand what’s going on.

                          It is common for nontechnical people to assume that programmers pad their estimates. They
                          often have a “rule” by which they cut off a third or half of any estimate that they hear, and
                          expect that to be the “real” deadline. They often feel, fairly or not, that the engineering team



                                                                                              ESTIMATION  37
   40   41   42   43   44   45   46   47   48   49   50