|
|||||
Software
Project Management
(CS615)
LECTURE
# 2
1.
Introduction &
Fundamentals
1.5
Goals of
Project management
Project
management is the discipline of defining
and achieving a set of goals
while
optimizing the use of
allocated resources (time,
money, people, space,
etc).
This includes planning,
scheduling and maintaining progress of
the
activities
that comprise the project.
Project management is normally reserved
for
focused,
non-repetitive, time-limited activities
with some degree of risk and
that
are
beyond the usual scope of
program (operational) activities
for which the
organization
is responsible.
Project
management software describes the
tools to efficiently coordinate
and
automate
the various project management
component processes.
Project
management
software generally offers
extensive reporting features,
such as day-
to-day
status updates of project progress,
scheduling and dependency trees,
and
system-generated
alerts when schedules slip
beyond pre-set tolerances.
Most
project
management tools include web-accessible
interfaces so that
employees
can
access features of the
software relevant to their
needs, and functionality to
allow
managers to share resource pools
without overbooking.
1.6
Project
Characteristics
1.
Temporary
Temporary
means that every project
has a definite beginning and a
definite end.
The end
is reached when the
project's objectives have
been achieved, or it
becomes
clear that the project
objectives will not or cannot be
met, or the need
for
the
project no longer exists and
the project is terminated.
Temporary does not
necessarily
mean short in duration; many
projects last for several
years. In every
case,
however, the duration of a
project is finite; projects
are not ongoing
efforts.
2.
Unique, Product Service or
Result
Projects
involve creating something
that has not been done in
exactly the same
way
before and which is,
therefore, unique
and
distinct. Projects create:
·
A product
or artifact that is produced, is
quantifiable and can be either an
end item
in itself or a component
item
·
A
capability to perform a service,
such as business functions
supporting
production
or distribution
6
Software
Project Management
(CS615)
·
A result,
such as new knowledge. For
example, a research and
development
project develops knowledge
that can be used to
determine
whether
or not a trend is present or a new
process will benefit
society.
The
presence of repetitive elements
does not change the
fundamental uniqueness
of the
project work. For
example:
·
A project
to develop a new commercial
airliner may require
multiple
proto-types.
·
A project
to bring a new drug to
market may require thousands
of doses of
the
drug to support clinical
trials.
·
A real
estate development project
may include hundreds of
individual
units.
·
A
development project (e.g.,
water and sanitation) may be
implemented in
five
geographic areas.
5.
Aims/Tasks/Purpose
The
projects are designed to
achieve specific targets defined in
terms of aims,
tasks or
a purpose. The nature and size of the
project depends upon
complexity
of the task, realization of
the aims and scope of the purpose
any
organization
wants to achieve. In short
project has to be aimed for
achieving
certain
tasks in a given time
frame.
6.
Limited
Time Scale
The
projects are always designed
considering time constraints.
Extension to
the
project completion dead
lines are always discouraged as
time overrun,
costs
extra and in some cases
opportunity cost for not
completing a project is
too
high.
1.7
Four
Project Dimensions
Software
project management is an umbrella
activity within software
engineering.
It begins
before any technical
activity is initiated and continues
throughout the
definition,
development, and support of computer
software.
Four
P's have a substantial
influence on software project
management- people,
product,
process, and project.
·
People
must be
organized into effective
teams,
motivated to do high-quality
software
work, and coordinated to achieve
effective communication.
·
The
product requirements must be communicated
from customer to
developer,
partitioned
(decomposed) into their constituent
parts, and
positioned
for work by the software
team.
·
The
process
must be
adapted to the people and the
problem. A common
process
framework is selected, an appropriate software
engineering paradigm
is
applied, and a set of work
tasks is chosen to get the job
done.
7
Software
Project Management
(CS615)
·
The project
must be
organized in a manner that
enables the software team
to
succeed.
Effective
software project management focuses on
the four P's: people,
product,
process,
and project. The order is
not arbitrary. The manager
who forgets that
software
engineering work is an intensely
human endeavor will never
have
Success
in project management. A manager who
fails to encourage
comprehensive
customer communication early in
the evolution of a project
risks
building
an elegant solution for the
wrong problem. The manager
who pays little
attention
to the process runs the
risk of inserting competent
technical methods and
tools
into a vacuum. The manager
who embarks without a solid
project plan
jeopardizes
the success of the
product.
⇒ People
In a
study published by the IEEE,
the engineering vice presidents of
three
major
technology companies were asked
the most important
contributor to a
successful
software project. They answered in
the following way:
VP 1: I
guess if you had to pick one
thing out that is most
important in our
environment.
I'd say it's not the tools
that we use, it's the
people.
VP 2: The
most important ingredient
that was successful on this
project was
having
smart people...very little
else matters in my opinion....The
most
important
thing you do for a project
is selecting the staff...The
success of the
software
development organization is very,
very much associated with
the
ability
to recruit good people.
VP 3: The
only rule I have in management is to
ensure I have good people
real good
people-and that I grow good people
and that I provide an
environment
in which good people can produce.
Indeed,
this is a compelling testimonial on
the importance of people in
the
software
engineering process. And
yet, all of us, from
senior engineering
vice
presidents to
the lowliest practitioner,
often take people for granted.
Managers
argue (as
the preceding group had)
that people are primary, but
their actions
sometimes
belie their words. In this
section we examine the
players who
participate
in the software process and
the manner in which they
are organized
to
perform effective software
engineering.
1.
The Players
The
software process (and every
software project) is populated by
players
who can
be categorized into one of five
constituencies:
1. Senior
managers who
define the business issues
that often have
significant
influence on the
project.
8
Software
Project Management
(CS615)
2.
Project (technical) managers
who
must plan, motivate,
organize,
and
control the practitioners
who do software work.
3.
Practitioners who
deliver the technical skills
that are necessary to
engineer
a product or application.
4.
Customers who
specify the requirements for
the software to be
engineered and
other stakeholders who have a
peripheral interest in
the
outcome.
2.
End-users
Who
interact with the software
once it is released for production
use.
Every
software project is populated by people
who fall within
this
taxonomy.
To be effective, the project team
must be organized in a
way
that
maximizes each person's
skills and abilities. And
that's the job of
the
team
leader.
3.
Team Leaders
Project
management is a people-intensive activity, and
for this reason,
competent
practitioners often make poor team
leaders. They simply
don't
have
the right mix of people
skills. And yet, as Edgemon
states:
"unfortunately
and all too frequently it
seems, individuals just fall
into a
project
manager role and become accidental
project managers."
[EDG95].
The
cultivation of motivated, highly
skilled software people has
been
discussed
since the 1960s (e.g.,
[COUBO] [WIT94} [DEM9B]). In
fact,
the
"people factor' is so important
that the Software
Engineering Institute
has
developed a people management capability
maturity model (PM-
CMM),
"to enhance the readiness of
software organizations to
undertake
increasingly
complex applications by helping to
attract, grow,
motivate,
deploy,
and retain the talent needed
to improve their
software
development
capability" [CUR94].
The
people management maturity model
defines the following
key
practice
areas for software people:
recruiting, selection,
performance
management,
training, compensation, career
development, organization
and work
design, and team/culture development.
Organizations that
achieve
high levels of maturity in
the people management area
have a
higher
likelihood of implementing effective
software engineering
practices.
The
PM-CMM is a companion to the
software capability maturity
model
that
guides organizations in the creation of a
mature software
process.
⇒ The
Process
9
Software
Project Management
(CS615)
In a
fascinating book that
provides an economist's view of
software and
software
engineering, Howard Baetjer.
Jr, comments on the software
process:
Software
development is a social learning process.
The process is a
dialogue
in
which the knowledge that
must become the software is
brought together and
embodied
in the software. The process
provides interaction between
users and
designers:
between users and evolving
tools, and between designers
and
evolving
tools [technology] It is an iterative
process in which the evolving
tool
itself
serves as the medium for
communication, with each new
round of the
dialogue
eliciting more useful knowledge from the
people involved.
When
you build a product or
system, it's important to go
through a series of
predictable
steps a road map that helps
you create a timely,
high-quality
result,
The road map that you follow
is called a `software
process' .
Software
engineers and their managers adapt
the process to their needs
and
then
follow it. In addition, the
people who have ties defined by
the process
requested
the software play a role in
the software process.
At a
detailed level, the process
that you adopt depends on
the software you're
building.
One process might be appropriate
for creating software for
an
aircraft
avionics system, while an
entirely different process
would be
indicated
for the creation of a web
site.
From
the point of view of a
software engineer, the work
products are the
programs,
documents and data produces as a
consequence of the
software
engineering
activities defined by the
process.
A
software process provides
the framework from which a
comprehensive plan
for
software development can be
established.
A small
number of framework activities
are applicable to all
software projects,
regardless
of their size or complexity.
A number
of different task sets-tasks, milestones,
work products and;
quality
assurance
points-enable the framework
activities to be adapted to
the
characteristics
of the software project and
the requirements of the
project
team.
Finally,
umbrella activities such as
software quality assurance,
software
configuration
management, and measurement overlay
the process model.
Umbrella
activities are independent of
anyone framework activity and
occur
throughout
the process.
10
Table of Contents:
|
|||||