|
|||||
Software
Project Management
(CS615)
LECTURE
# 8
2.
Software Development
Fundamentals
Management
Fundamentals
2.7
Organizational
Issues and Project
Management
Organizational
issues have a deep influence
on a software project, its
progress,
and the
role of the project manager.
The policies of an organization can
affect the
way
the organization handles the
customer, different types of
technologies, and
different
software projects. The
organizational issues that can
influence a software
project
include:
·
Reaction
to external influences
·
Interest
in adherence to standards
·
Definition
of core competency area
·
Existence
of knowledge management system
·
Interest
in human resources
One
organizational issue that can
influence a software project is
the reaction of
the
organization to external influences.- As
a project manager, it is important
for
you to
assess how the organization
reacts to changes in the
external environment,
For
example, in the current
technology environment that
changes rapidly, an
organization
should be proactive in strengthening
its capability baseline by
adopting
new technology and retraining
its employees as per
market
requirements.
Interest
in adherence to standards is another
organizational issue that
can
influence
a software project. The
current technology environment is
highly
dynamic.
Various nonprofit and independent
organizations have
developed
protocols
and standards for the
standardization of software development
and
measurement:
For example; the Software
Engineering Institute at the
Carnegie
Mellon
University has developed the
Capability Maturity Model
(SEI-CMM).
The CMM
rates the processes of a
software development organization
and
classifies
it into five maturity
levels. Software development
organizations can also
get the
quality-related certifications issued by
the International
Standards
Organization
smoothen your project management
tasks by standardizing
the
internal
processes and optimizing
performance.
Definition
of core competency area also influences a
software project. An
organization
that creates software must
understand how they are
created and
establish
processes accordingly For
example, if the core competency of
the
organization
lies in manufacturing chemicals, it
should preferably not
attempt
69
Software
Project Management
(CS615)
software
development for such an
organization, it is better to purchase an
off-the-
shelf
software product.
An
organizational issue that
positively influences the
tasks of software
project
managers
is the presence of a good knowledge
management system within
the
organization.
Knowledge management is the
collection of processes that
control
the
creation and utilization of knowledge
within the organization. A
good
knowledge
management system allows you to
access relevant information
and
make
informed decisions.
Another
organizational issue that can
influence a software project is
the interest of
management
in human resources. The human
resources of an organization are
its
primary
resource. You need to ensure that the
people in the development team
enjoy a
comfortable work environment,
which is conducive for
smooth and
trouble-free
work. This includes
providing suitable compensations, a
friendly
work
environment, and smooth processes.
The absence of these factors
negatively
affects
employee morale, and therefore,
productivity.
2.8
Managing
Processes
As a
software project manager, you
become the key player in a
software project.
You not
only manager the day-to-day
activities of the project
but also ensure that
the
software product is delivered on
time. What makes your
role challenging is
the
performance of project-related activities
within a specified budget and
time
constraint.
At the same time, you
need to keep the
requirements and specifications
of the
customer in mind.
To
deliver expected results, you
carry out three successive
processes: studying
the
feasibility
of the project, planning to meet
the requirement, and executing
the
plan.
These processes can be further broken
down into activities, such
as
planning,
staffing, and monitoring.
You plan
and organize the software
development team to complete
development
within
the stipulated time and
budget. To do this, you form
a team of people who
have
the required technical
skills. Then, you ensure
that all activities are
carried
out as
planned by the relevant
people.
Your
responsibilities include analyzing
customer requirements, determining
the
scope of
the software project,
allocating resources top the
project, scheduling
the
project,
and executing the project. These
responsibilities can be considered in
terms of
the areas where management
skills are required. The
primary software
project
management areas that you
need to concentrate on
include:
·
Managing
Resources
·
Managing
Cost
70
Software
Project Management
(CS615)
·
Managing
Risk
·
Managing
Schedule
·
Managing
the project plan
·
Managing
quality
⇒ Managing
Resources
The
primary input required to
create software are resources.
Resources for a
software
project may be of three
kinds: human, hardware, "and
software. Human
resource management is
about effectively identifying
the people with the
appropriate
skills, assigning roles and
responsibilities to these people,
and
establishing
reporting relationships. On the
other hand, hardware and
software
resource
management relates to identifying and
ensuring resources such
as
workstations,
disk space on servers, software
tools, and software licenses. You
need to
ensure that human resource identification
and allocation is carried
out;
simultaneously
with hardware and software resource
management.
To manage
resources effectively, there
are two areas that
you require your
attention.
These include:
·
Management
of human resource
·
Identification
of the critical hardware and
software resources
Management
of human resources calls for
a number of actions. First,
you define
reporting
relationship for the
software project. Reporting
relationship can exist
within
and across organizational units,
technical areas, and hierarchical
levels.
Next,
determine the skills
required for the software
project, and identify
the
appropriate
people who possess the
required skills. You can review
the resource
pool and
identify resources on the
basis of their experience and
availability. In
case
the resources are
unavailable, you request for
their release from
another
project
or outsource the required resources.
Depending upon the
organizational
practices
arid experiences from past
projects, you can assign
roles and
responsibilities
to the development team. Finally,
create a staff management
plan
and an
organizational chart to show
the hierarchical structure of
the development
team.
Management
of human resources also requires
efficient team development.
This
is a
complex activity because it
combines managing people and organizing
the
reporting
structure within the team. You can
build cohesion and
commitment
within
the team through team building
activities. These activities
include
conducting
team meetings to involve people from
areas other than
management
into
decision-making.
To manage
human resources, you also need to
implement a reward and
recognition
system. This helps in
promoting and reinforcing
positive
performance.
It is important that you make
the link between the
performance and
71
Software
Project Management
(CS615)
reward
explicit and achievable. You should also
ensure that the training
needs of
the
development team are
met.
A second
resource management area that requires
attention is identification of
the
hardware
and software resources that
are critical for the
project. As a software
project
manager, you must identify
all the critical hardware
and software
resources
and document them in the
project plan. After the
required resources
are
identified,
you define control limits
for each resource. Control
limits for a
resource
are the upper and lower
limit beyond which the
resource is above or
below
the required level. For
example, if a software project
requires disk space
on
the
central server, the control
limits for the disk
space are the required
maximum
and
minimum disk space. Note
that not all hardware and
software resources
are
critical
to the success of a software
project. In some software
projects, you may
not
find any critical resource at
the beginning. However, as
the project
progresses,
some
resources might become
critical. For efficient resource
management, you
should
periodically assess hardware and
software resource requirements for
the
software
project. Just as a resource may become
critical as a project progresses,
a
resource
might also become less
critical over a period of
time. Therefore;
plan,
assess,
and take corrective action for
all the resources through
the duration of the
software
project.
⇒ Managing
Cost
The cost
factor has a considerable influence on
the execution of a
software
project.
The budget of a software
project is affected by factors,
such as the current
orientation
of the organization toward
software development, number of
skilled
personnel
available, infrastructure, and computer
hardware and software.
The
budget
can also be influenced by timely
availability of resources. If a
particular
resource is
allocated to the project
later than required, the
costs involved could
go
up
drastically.
Quite
often, when a software
project starts to become too
expensive, many
project
managers
also tend to start cutting costs.
This can have a direct
impact on
employee
morale. When employee morale
drops, so does the quality of
work, and
the
productivity. Therefore, as a project
manager you must prepare for
all
circumstances
through proper estimation and
allocation. To manage costs
for
software
projects, you need an accurate
estimation of costs. To do that, there is
a
sequence
of steps that you need to
perform.
·
Identify
the resources required for
the project
·
Estimate
the cost of each
activity
·
Set cost
baselines for each
activity
·
Implement
a control system for cost
changes
To estimate costs,
you first identify and
describe all the resources
required in the
software
project. You also estimate the duration
for which the resources
are used.
72
Software
Project Management
(CS615)
Next,
estimate the cost of each resource. To estimate
the cost, you can
use
mathematical
tools. However, in the case
where limited information is
available
about
resources, you can also use expert
judgment to estimate costs.
After
the costs of the required
resources are estimated, you
set cost baselines
for
each
activity. Cost baselines measure
the performance of an activity
with regard
to the
cost and duration defined for
the completion of the
activity.
Finally,
as the project manager you
implement a control system
for cost changes.
The cost
control system defines cost baselines,
identifies cost changes, and
modifies
cost baselines to adjust cost
changes.
⇒ Management
Risk
Risk
management is an integral part of project
management. In software
projects,
where
uncertainties are very high,
risk management and mitigation is
even more
critical.
Taking risks for high
payoffs might bring in high
profits but not
without
the
danger of losses. Risk on a small
scale is acceptable to most
project managers
as the
element of loss is minimal. However,
large risks pose a danger to
the
progress
of a software project and you
need to manage them. Risk
management
activities
involve identifying potential
risks, assessing them, and
planning for
contingent
actions if a risk
materializes.
As a
project manager, you perform
two primary activities to
manage risks for
software
project:
·
Risk
Analysis
o Risk
identification
o Risk
quantification
·
Risk
management
The
first activity in risk
analysis is risk identification.
Risk identification
helps
you
point out the, potential
risks for a software project
across all phases of
the
project.
Risks might evolve through
the duration of a software
project, and
therefore,
risk identification is an ongoing
activity. To identify potential
risks for
a
software project, you can
analyze the activities in
the software project,
the
software
product description, and risks faced by
the development team in
similar
past
projects. This exercise allows
you to identify the
potential sources of risks
to
the
current software project,
Assessing the factor
influencing the different
inputs
also
allows you to identify the
phases in the SDLC when
risk might
materialize.
After
potential risks have been
identified, you can quantify
them. This is done to
ascertain
their priority. If multiple
risks materialize at the
same time, then
you
must
assign a priority to each
risk based on the degree of
impact on the project
and
handle the highest-risk
events first. For example,
the risk of change in
client
73
Software
Project Management
(CS615)
requirements
during the software
construction phase is a higher
risk than a
deadline
for a deliverable being missed.
Therefore, you first manage
the risk that
has a
higher priority. To quantify
project risks, you can use
various mathematical
and
statistical tools. You can also use
expert judgment to assess and
quantify
risks.
After
you have identified and
quantified the potential
risks for a software
project,
you
create a risk mitigation
plan. The purpose of the
risk mitigation plan is to
help
you
identify procedures to choose the
path of least damage and highest
returns in
a case a
risk materializes. To mitigate
risks for a software
project, you first
need
to be aware of
the opportunities and threats
that can be pursued or ignored.
This
enables
you to focus on the risks
that might have a negative
impact on the
software
project and develop contingent
plans to deal with these
risks. You can
also
mitigate risks by evolving
alternative strategies to altogether
prevent
potential
risks from
materializing.
In case
an unplanned risk materializes,
you must be aware of the
dependencies of
the
project activities so that ad
hoc solutions can be evolved.
However, as the
project
manager you can avoid unplanned
risks from materializing by
engaging in
an
intensive risk identification and
mitigation exercise before the
software project
commences.
⇒ Managing
Schedule
Time is a
major constraint for a
software project. With most
software projects,
the
delivery
dates for the software
product are already
committed to the customer
at
the
time the project commences. As a
software project manager you
must perform
various
tasks to balance time and deadlines. These
are:
Identify
the different deliverables
that constitutes the
software product
Define
the activities that are
required to produce the
deliverables
Identify
the interdependencies between
activities
Define
the duration of each
activity
Assess
the project network
diagram
Create a
schedule management and control
plan
The
first task is to identify the
different deliverables that
constitute the
software
product.
These deliverables also mark the
completion of the different
phases
within a
software project.
Next,
define the activities that
are required to produce the
deliverables. To do this,
you can
break down the SDLC into
phases, identify the
deliverables at the end of
each
phase, and the activities
required for creating the
deliverables.
74
Software
Project Management
(CS615)
After
the activities are defined,
you identify the interdependencies
between them.
The
purpose of this exercise is to organize
the activities and sequence
them in the
form of a
project schedule.
Next,
you define the duration of
each activity. The inputs
that you need
for
scheduling
are the resources required
to complete each activity.
Then, assesses the
availability
of these resources and the
duration of each similar
activity in similar
past
projects.
After
estimating the time required
for each activity to
complete, you assess
the
project
network diagram. This
includes an assessment of the
duration estimates,
resource
requirements, resource pool description,
and assumptions and constraints
for
the software. You can use
Mathematical tools to determine a
schedule for the
project.
The project schedule defines
the activities within each
phase, the team
members
assigned to complete each
activity, the duration of
each activity, and
the
start and
end dates for all of the
activities.
Finally,
create a schedule management and control
plan. The purpose of this
plan
is to
identify when changes occur,
Implement the changes to the
project schedule,
and ensure
that the changes are
beneficial to the software
project. After the
changes
are implemented, you might
need to modify the sections of
the project
plan to
ensure that the project is
completed on time.
75
Table of Contents:
|
|||||