How to Keep Your Boss from Sinking Your Project 9
simple command-line interface. The way to resolve this discrepancy is to make an
assumption one way or the other, just for the sake of the estimate. By writing down
that assumption, the team makes a promise to revisit the issue later. The written
assumption also gives the users and stakeholders important information about
decisions they will need to make if they want to change the scope of the project.
By documenting these assumptions, everyone is forced to think through all of those
issues that they would otherwise gloss over. During the estimation meeting, write
down these assumptions as they are brought up, and then compile them into a brief,
easy-to-digest document after the meeting is over.
The estimation session should produce this list of assumptions, as well as a good
discussion of how you and the others arrived at them. During the meeting,
everyone should talk about the assumptions they need to make in order to put a
number on the project. Your boss and the stakeholders should be made to feel
comfortable participating in this discussion as well; many of those assumptions
will often turn out to be nontechnical, or about the expectations of upper
management. Try to keep in mind that while your boss and the stakeholders are not
technical, they do have a perspective that you need to understand. The things that
these people say at this meeting can make the difference between success and
failure for your project, so the more comfortable you can make them, the better off
you will be in the long run. This meeting will also help everyone gain a much
clearer understanding of the complexity of the project. The list of assumptions will
help a great deal later on when you run into problems and have to guide the team
through difficult project changes.
Make an Informed Selection of a Software Process
Before the team begins building the software, everyone needs to agree on exactly
how it will be built. There are many ways to approach a software project. The only
way that a manager can really understand what’s going on in a software project
after it gets underway is to have a general understanding from the beginning of
how it will be built. He needs to be satisfied that everyone involved in building the
software is in agreement on this, and that they have all of the resources they need
to follow that approach.
Most companies that build software already have an approach to building it: it’s
called a software process or software development lifecycle (SDLC). A software
process is a set of activities that, if performed, will result in working software that
meets the needs of the stakeholders and users. A typical process includes activities
from many different areas of software engineering: requirements management,
project planning, quality assurance, risk planning, project monitoring,
configuration management, subcontract management, process improvement, and

Get How to Keep Your Boss from Sinking Your Project now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.