Software Project Management
Software Project Management
SOFTWARE
PROJECT MANAGEMENT
T
he need for management is an important distinction
between professional software development and amateur
programming. We need software project management
because professional software engineering is always subject
to budget and schedule constraints. These are set by the
organization developing the software. The software project
manager’s job is to ensure that the software project meets these
constraints and delivers software that contributes to the business
goals.
Management Activities
It is impossible to write a standard job description for a software
manager. The job varies tremendously depending on the
organization and on the software product being developed. Most
managers, on the other hand, take responsibility at some stage for
some or all of the following activities:
proposal writing
project planning and scheduling
project costing
project monitoring and reviews
personnel selection and evaluation
report writing and presentations
The project budget may not cover the use of highly paid
staff. Less experienced, less well-paid staff may have to be used.
Staff with the appropriate experience may not be available
either within an organization or externally. It may be
impossible to recruit new staff to the project. Within the
organization, the best people may already be allocated to
other projects.
documents
demonstrations of function
demonstrations of subsystems
demonstrations of accuracy
demonstrations of reliability, security or
performance
overlooked tasks
users’ lack of understanding of their own
requirements
insufficient analysis when developing an estimate
lack of coordination of systems development,
technical services, operations, data administration,
and other functions during development
lack of an adequate method or guidelines for
estimating
A good cost estimate early in the project’s life helps the project
manager to know how many developers will be required, and to
arrange for the appropriate staff to be available when they are
needed. Several aspects of the project were noted as key
influences on the estimate:
The project budget pays for several types of costs: facilities, staff,
methods, and tools. The facilities costs include:
hardware
space
furniture
telephones
modems
heating and air conditioning
cables
disks
paper
pens
photocopiers
and all other items that provide the physical environment
in which the developers will work.
There are sometimes hidden costs that are not apparent to the
managers and developers. For example, studies indicate that a
programmer needs a minimum amount of space and quiet to be
able to work effectively. McCue (1978) reported to his colleagues at
IBM that the minimum standard for programmer workspace should
be 100 ft2 of dedicated floor space with 30 ft2 of horizontal work
surface. The space also needs a floor-to-ceiling enclosure for noise
protection. DeMarco and Lister’s (1987) work suggests that
programmers free from telephone calls and uninvited visitors are
more efficient and produce a better product than those who are
subject to repeated interruption.
Delphi Technique
35
Risk Management
Many software project managers take steps to ensure that their
projects are done on time and within effort and cost constraints.
However, project management involves far more than tracking
effort and schedule. Managers must determine whether any
unwelcome events may occur during development or maintenance,
and make plans to avoid these events or, if they are inevitable,
minimize their negative consequences.
The risk exposure is computed from the risk impact and the risk
probability, so you must estimate each of these risk aspects. Risk
exposure helps us to list the risks in priority order, with the risks of
most concern given the highest priority.
how the entire system will be tested, and who will perform each
type of testing.
training plan – usually prepared during development,
rather than after the system is complete, so that training can
begin as soon as the system is ready (and sometimes before), it
explains how training will occur, describing each class,
supporting software and documents, and the expertise needed
by each student.
security plan – addresses the way that the system will
protect data, users, and hardware; involves confidentiality,
availability, and integrity and explains how each facet of security
affects system development.
risk management plan
maintenance plan – discuss responsibilities for changing
the code, repairing the hardware, and updating supporting
documentation and training materials to the user. 38
EXERCISES
1. Describe how adding personnel to a project that is behind
schedule might make the project completion date even later.