Fundamentals of Software Project Management
Fundamentals of Software Project Management
Management
INTRODUCTION
Software project management is the process of planning,
organising, staffing , monitoring, controlling and leading a
software project.
Every software project must have a manager who leads the
development team and is the interface with the initiators (synonym :
one who start the project), suppliers and senior management. The
project manager :
Produces the software project management plan (SPMP).
Defines the organisational roles and allocates staff to them.
Controls the project by informing staff of their part in the
plan .
Leads the project by making the major decisions and by
motivating staff to perform well ;
Monitors the project by measuring progress.
Reports progress to initiates and senior managers.
INTRODUCTION (Contd.)
Figure 1 shows the control and monitoring loop required in every
software project.
Standards and user requirements are the primary input to both the
planning and production processes.
Plans are made for project management, configuration management,
verification and validation and quality assurance.
These plans control production. Reports, such as progress reports,
timesheets, work package completion reports, quality assurance reports
and test reports provide feedback to the planning process. Plans may
be updated to take account of these reports.
The project manager is the driving force in the management control
loop. The following sections defines the skills, roles and responsibilities
of the project manager and discuss project management activities.
Managerial Skills
Project teams involve more and more non-technical staff, and
behavioral skills became equally important as technical skills.
In this new time, to be an effective project manager, may require
having an understanding of general management rather than being a
technical expert.
Projects are becoming more complex that it is simply no longer
possible for the project manager to remain a technical expert in all
aspects of the project.
Project managers need to spend more of their time planning,
organizing, directing and controlling progress rather than providing
technical direction.
Project management is both a science and an art; it's a science
because it requires the use of quantitative analysis such as charts,
graphs, financial data ; and an art because it deals with qualitative
analysis such as negotiating , conflict resolution, political,
interpersonal and organizational factors.
All projects are prone to encounter problems, problems that were not identified
in the risk or scope of the project and that will need to be managed accordingly.
Problem solving requires a good definition of the problem that is detected early
enough to allow time to respond.
In many cases the original problem is a symptom or a larger problem.
Problem solving skills make use of different techniques, and by using
these techniques we can start to tackle problems which might otherwise seem
huge, overwhelming and excessively complex. down into manageable parts,
identifying root causes of problems, analyzing strengths, weaknesses,
opportunities & threats, must be mastered in order to solve problems.
Additionally the project manager needs synthesis and analysis thinking skills.
A project manager must be able to synthesize information-collecting and arrange
disparate information into a meaningful whole.
A project manager must be able to see patterns in information and derive
meaning from distinct pieces of data.
Analysis is the skill of breaking a whole into component parts, much like
decomposing work into a WBS.
Managerial Skills:
Conceptual Conceptual
skills is the ability to coordinate
and integrate all
Skills
the projects efforts, it requires for the project manager to see
the project as a whole and not just the sum of its parts, ability
to understand how all the parts make a whole and how they all
relate and depend on one another, and the ability to anticipate
how a change on one part of the project will affect the entire
project.
The bigger and more complex is the project, the larger is the
need for this type of skill.
This skill helps the project manager keep a clear vision of the
ultimate goal of the project and understand its relationships
and dependencies with the project's environment.
Conceptual skills refer to the ability to see the big picture.
Project managers with good conceptual skills are well aware
of how various elements of the project environment or
ecosystem interrelate and influence one another.
Conceptual skills are necessary to appropriately deal with
project politics and to acquire adequate support from top
Interpersonal Skills
It is better that the project manager be a generalist rather
than an expert.
The reason is that experts tend to be very narrow in their
views.
A generalist on the other hand, is far more open to views
and suggestions of this team members.
The results of projects led by a generalist tend to give
much better deliverables than a comparable project led by
an expert.
Every organization has a unique culture and individual
divisions within an organization often have their own
personalities.
Understanding of these culture is very important.
Interpersonal Skills
This responsibility
project is on track.
ensures
that the
PROJECT INTERFACES
Project Interfaces
Stakeholder analysis
Stakeholders can be individuals, groups, a community or
an institution.
Stakeholders are:
people affected by the impact of an activity
people who can influence the impact of an activity.
Stakeholder groups are made up of people who share a
common interest, such as an NGO, church leaders and the
community.
However, such groups often contain many sub-groups.
Seeing the community as one stakeholder group can be
meaning less because some people may have very
different interests from others in the same community.
These sub-groups may be affected by the project in
different ways, and some subsgroups may have a lot more
influence on the impact of the project than others.
Project Interfaces
Stakeholder analysis (Contd.)
government ministries are different stakeholder
groups, if they have different, and even conflicting,
opinions about a development proposal.
Government at national, state and local levels may
also have very different interests.
Stakeholders include :
User Groups people who use the resources or
services in an area
Interest Groups people who have an interest in,
an opinion about, or who can affect the use of,
a resource or service
Beneficiaries of the project
Decision Makers
Those Often Excluded from the decision-making
Project Interfaces
Stakeholder analysis (Contd.)
Project Interfaces
Stakeholder analysis (Contd.)
Project Interfaces
Stakeholder analysis: Advantages (Contd.)
Project Interfaces
Stakeholder analysis: Risks (Contd.)
It is important to be aware that there
are risks in doing a stakeholder
analysis :
The analysis is only as good as the
information used. Sometimes it is
difficult
to
get
the
necessary
information, and many assumptions will
have to be made.
Tables
can
oversimplify
complex
situations .
Project Interfaces
Stakeholder analysis: Methods (Contd.)
There are a number of ways of doing stakeholder analysis. The
method provided below is just one approach.
The approach taken will vary depending on the type of project that
is being proposed.
The method given below is quite general and can be adapted to
whatever type of project is being proposed
Ideally, stakeholder analysis should be carried out with
representatives of as many stakeholder groups as possible.
It might not always be practical to do so if the stakeholders are
widely spread.
However, if there is a danger that important stakeholders might be
excluded, more time and resources should be invested in doing the
stakeholder analysis to make sure they are included.
NEEDS IDENTIFICATION
NEEDS IDENTIFICATION:Classifying
and Documenting Requirements:
Documenting Software
Requirements
After we analyze
and generalize needs and features,
we should move into the solution domain by
analyzing and capturing the system requirements.
Now we have enough understanding to define a
requirement as : a software capability that must be
met or possessed by a system or a system component
to satisfy a contract, standard, or desired feature.
Requirements must satisfy one or more of the
following criteria
Contract obligations
Standards
Desired needs and features
NEEDS IDENTIFICATION:Classifying
and Documenting Requirements:
Documenting Software
(Contd.)
We canRequirements
classify the requirements
into two
categories :
Functional requirements
present a complete description of how the
system will function from the user's
perspective. They should allow both business
stakeholders and technical people to walk
through the system and see every aspect of
how it should work - before it is built.
Non -functional requirements
dictate properties and impose constraints on
the project or system. They specify attributes
of the system , rather than what the system
Qualities of SRSD
Capturing functional
requirements
To document functional
requirements we must capture
three categories of information :
Use cases
Functional capabilities
Business rules
Use cases define a step-by-step sequence of actions
between the user system.
Organizations are rapidly adopting use cases as a means to
communicate requirements because they.
Show how the system will work from the users' perspective
Force us to think about the end-job : What is the user trying
to accomplish by using the system ?
Require us to define how the system should work, step-bystep.
Provide an excellent basis for building test cases and helping
to ensure that these are built before the code is written.
Provide a common requirements "language" that's easy
for stakeholders, users, analysts, architects, programmers,
Capturing non-functional
requirements (Contd.)
Usability describes the ease with which
the system can be learned or used. A
typical usability requirement might
state :
The system should allow novice users to
install and operate it with little or no training.
The end user shall be able to place an order
within thirty seconds .
The end user shall be able to access any
page within four seconds.
Capturing non-functional
requirements (Contd.)
Reliability describes the degree to which
the system must work for users.
Specifications for reliability typically refer
to availability, mean time between failures,
mean time to repair, accuracy, and
maximum acceptable bugs. For example :
The system shall meet the terms of a Service
Level Agreement.
The mean time to failure shall be at least four
months.
Capturing non-functional
requirements (Contd.)
Performance specifications typically
refer to response time, transaction
through put , and capacity. For
example :
All Web pages must download within three
seconds during an average load, and five
seconds during a peak load .
While executing a search, the system
must be able to display 200 search results
per page.
Capturing non-functional
requirements (Contd.)
Supportability refers to the softwares ability
to be easily modified or maintained to
accommodate typical usage or change
scenarios. Here are some examples of
supportability requirements :
The system shall allow users to create new
workflows without the need for additional
programming.
The system shall allow the system administrator
to create and populate tax tables for the
upcoming tax year.
Capturing non-functional
requirements (Contd.)
Requirements
Management
is
the
comprehensive process that includes all aspects
of
software
requirements
analysis
and
additionally ensures verification, validation and
traceability of requirements.
Effective requirements management practices
guarantee that all system requirements are
stated unambiguously, that omissions and errors
are corrected and that evolving specifications
can be incorporated later in the project lifecycle .
Earning Credibility
By creating vision and scope document , the customer can
see that we are adding value by capturing his requirements.
He can also see a tangible product at the end of the
requirement capture exercise
Ensuring project success
It is essential for all parties concerned that the project is
completed successfully.
Preparing vision and scope document has significant
contribution in ensuring success of a project.
Ensuring project viability
Many times project fail because the client was not clear in
his mind about the project.
Putting down the requirement from the business
perspective would force the client to think about why he is
doing the project.
Business Requirements
Background, Business Opportunity, and Customer Needs
Business Objectives and Success Criteria
Business Risks
Vision of the Solution
Vision Statement
Major Features
Assumptions and Dependencies
Scope and Limitations
Scope of Initial and Subsequent Releases
Limitations and Exclusions
Business Context
Stakeholder Profiles
Project Priorities
PROJECT MANAGEMENT
CYCLE
The Project Management Life Cycle has four
SPM OBJECTIVES
The primary responsibility of the project manager is to ensure that the
end product meets the client's requirements ; therefore, the first
scheduling task of the project manager is to clarify project objectives
by translating them into quantifiable terms.
A project objective is a statement specifying the results to be achieved.
These statements form the foundation for the entire planning process .
including development of the Master Schedule.
The project objectives will be previewed frequently throughout the
project.
They will be referred to at the onset of the project.
They will be referred to at the onset of the project to identify the
project team's responsibilities.
During the project they will be reviewed to identify changes that fall
outside the original project scope.
At the project's conclusion, they will be reviewed to help the
project manager perform an objective postmortum review of the
project.
SPM OBJECTIVES(Contd.)
A well defined project objective has
several characteristics. The objective will
be:
Attainable. The objective identifies a
target which can be reasonably
achieved given the project's time and
resource constraints. If the objective is
set too high, credibility is destroyed
because the sence of shortfall greater
than the sense of accomplishment
SPM OBJECTIVES(Contd.)
Definitive. It spells out in concrete terms what is to be
achieved and to what degree. The results to be attained
are clearly defined. Only those objectives related to
project or organizational goals are included. Routine
project activities must not be mistaken for objectives.
Quantifiable. It specifies a yardstick for completion which
can be identified by all concerned, especially those
responsible for its achievement. The establishment of
measurable objective is mandatory so that performance
can be compared to a standard.
Specific Duration. It defines the time parameters within
which the task is to be achieved. This is also necessary
for evaluation of project progress.
SPM OBJECTIVES(Contd.)
Trode-off Functions
SPM OBJECTIVES(Contd.)
Following are the trade-off functions for determining performance,
time and budget.
Performance = f (Time, Budget)
Time
= f (Budget , Performance)
Budget= f (Performance, Tim e)
SMART Principles
For setting general objectives , we should use SMART principles.
SMART objectives. are :
Specific
Measurable
Achievable
Realistic
Timely
Smart principles are strongly encouraged when setting
objectives.
SPM OBJECTIVES(Contd.)
Specific
Is it clear and well defined
Is it clear to anyone that has a basic knowledge of
the work.
Measurable
Know if the goal is obtainable and how far away
completion is.
Know when it has been achieved.
Achievable
Agreement with all the stakeholders what the goal
should be.
Is there a realistic path to achievement.
Realistic
Within the availability of resources, knowledge and
time.
Timely
MANAGEMENT SPECTRUM
Effective software project management focuses on
the three P's :people, problem, and process.
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.
Finally, the manager who pays little attention to the
process runs the risk of inserting competent
technical methods and tools into a vacuum .
MANAGEMENT SPECTRUM:
People
The Software Engineering Institute has sponsored
a
people management maturity model 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."
The people management maturity model defines tie
following key practice areas for software people:
recruiting, selection, performance management ;
training,
compensation,
career
development,
organization, and team and culture development.
Organizations that achieve high levels of maturity in the
people management area have a higher likelihood of
implementing effective software engineering practices.
Level 5: Optimizing.
Continuous
process
improvement is enabled by quantitative feedback
from the process and from testing innovative ideas
and
technologies.
This
level
includes
all
characteristics defined for level 4.
The five levels defined by the SEI are derived as a
consequence of evaluating responses to the SEI
assessment questionnaire that is based on the
CMM.
The results of the questionnaire are distilled to a
single numerical grade that provides an indication
of an organization's process maturity.
Project Plan
A project plan is : "a formal, approved document used
to guide both project execution and project control.
The primary uses of the project plan are to document
planning assumptions and decisions, facilitate
communication among stakeholders, and document
approved scope, cost and schedule baselines. A
project plan may be summary or detailed. "
Also we can define it as :
"a statement of how and when a project's objectives
are to be achieved , by showing the major products.
milestones, activities and resources required on the
project."
Planning Objectives
The purpose of a project plan is to maintain control of a
project.
As a complicated process, a project always threatens to
exceed the limit of our control.
To maintain control we need help in the form of tools and
best tool is our plan.
The project plan controls the project by :
Breaking a complex process down into a number of
simpler components
Providing visibility for difficulty or ambiguous tasks in
the project
Providing a single point of reference for everyone
Enforcing inspection of the sequence and nature of
events
Providing a baseline against which execution of the
project can be compare
Anticipating likely events and providing pre-planned
means of a them.
A project plan must be as accurate, complete and as
The Worker
Individual Work Plan. What am I on
about? What do I need to do, when and
why?
The
Individual Service Plans / Case Management.
What do I want to achieve ? How can it happen ?
A typical large organization:
In a large organisation there will be many plans,
for example, a separate strategic plan, financial
plan and operational plan.
There will be project plans, team work plans,
individual work plans.
And if the organisation is a direct service provider
there will be individual service plans or case
management plans.
Very small organizations.
A very small organisation many only require
one plan which incorporates the answers to all
Project
Background How did this project arise ? How was it identified ? How has
it evolved ?
Description
Values
Target
group &
their needs
Aims
Outcomes
hierarchy
Objectives
Strategies/
steps
Manageme
nt
Funding
Time frame
SOFTWARE PROJECT
ESTIMATION
Software cost and
effort estimation will never be an exact
science.
Too many variableshuman, technical, environmental,
politicalcan affect the ultimate cost of software and
effort applied to develop it.
However, software project estimation can be transformed
from a black art to a series of systematic steps that
provide estimates with acceptable risk.
To achieve reliable cost and effort estimates, a number of
options arise:
Delay estimation until late in the project (obviously,
we can achieve 100% accurate estimates after the
project is complete!).
Base estimates on similar projects that have already
been completed.
Use relatively simple decomposition techniques to
generate project cost and effort estimates.
(5-1)
Decision Process
Decision process is used in strategic planning,
operational management, and other areas of business.
The decision process is a framework that helps project
managers solve a variety of decision-making problems.
There are no exact methods for how decision analysis
should be structured.
The process can be different for different companies,
types of projects, and the types of decisions that must
be made.
Any decision process is based on three main rules,
which can be called 3C principle :
Decision Process
(Contd.)
Consistency
It is important to standardize the decision
process for similar kinds of problem and
opportunities
to enable consistent
decision
making over time.
Comprehensiveness
Decision
processes
should
include
a
comprehensive assessment and analysis of the
business situation. Missing
or incomplete
information can lead to incorrect . decisions.
Continuity
The value of decision process will significantly
less important if it is done only discrete
situations during the course of a project.
Decision process is a continuos process of
FOOTFALLS OF DECISION
PROCESS
Decision Making
Decision making is based mainly on
subjective expert judgment.
Experts provide their own beliefs in the
form of their answers, which can be biased.
There are many forms of biases : cultural,
organizational, motivational, cognitive and
others.
Motivational and cognitive biases are
most common in project management .
Decision Process
(Contd.)
Identifying Potential Problems and Opportunities
In some cases, it is difficult to identify the
problems and opportunities.
For example, what is causing the different
projects within the organization to go
consistently over budget in relation to the
different specific corrective actions that were
undertaken ?
In our software development example, the
project will be delayed if certain actions are
not taken.
Decision Process
(Contd.)
Assessing Business
Situation
Before attempting to make a decision,
it is important to assess the business
environment
and
define
the
constraints related to the problem.
The assessment may also include an
analysis of markets, competition ,
prices, or anything that can be related
to the problem or opportunity.
In our example, it is the availability of
an additional resource.
Decision Process
(Contd.)
Determining Success Criteria
In
our
software
development
example, it is the chance that
project will be completed on time.
Very often project managers have to
make decisions based on multiple
criteria, including project duration,
cost, scope, and other parameters.
Decision Process
(Contd.)
Identifying Uncertainties
Understanding of uncertainties is the
key to the decision process.
In our example there are uncertainties
in task duration, start and finish times.
Potentially, there could be many
different
types
of
uncertainties
including
uncertainties in cost,
resource allocation , and others.
Decision Process
Generating Alternatives
(Contd.)
First, let's identify what cannot be changed, or
project constraints for making the particular
decision process. In our software example it is
the deadline.
The project scope is a constraint as well.
However, there is the possibility of bring
in additional resources (software developers)
to accelerate the development. As result,
we have three potential project scenarios :
"Do Not Add". In this example, it means
that additional project resources will not be
added to the project team
Bring a developer from another team within
the organization
Decision Process
(Contd.)
Designing the Situation
A mathematical model helps the analysis
and estimation of future events.
During
the modeling stage, project
managers depend on heuristics or rules
of thumb make estimations and create
the model.
Under many circumstances, heuristics
lead to predictably faulty judgments or
cognitive biases.
Decision Process
(Contd.)
Creating Models
for Each Project Alternative
Project managers constantly create
mathematical models of projects, in most
this is the project schedule.
Sometimes, more elaborate models are
required.
For example, in the analysis of a
complete product lifecycle,
comprehensive will include not only
product development, but also marketing
and sales efforts.
In our example, it is possible to create
three simple, slightly different project
schedules associated with each scenario
Decision Process
(Contd.)
Quantifying the
Uncertainties
The uncertainties, identified through the
decision making process should be quantified.
One of the ways to quantify uncertainties is
defining ranges for parameters.
For example, define low (optimistic), base
(expected), and high (pessimistic) duration
estimates for each task.
Another way to define uncertainties is to list
all the potential events, which could affect the
project
schedule and
quantify their
probabilities and impact.
In our software development example, there is
a 50% chance that external consultant will
Decision Process
(Contd.)
Quantitative Analysis
The analysis should give project managers enough
data to make an informed decision . Even with most
advanced
analytical
tools
and
techniques
,
interpretation of the results of the analysis is the
subject of multiple mental traps.
Determining what is Most Important
A model of a project may include a considerable
number of variables : large numbers of tasks,
resources, risks, and other parameters .
For example, certain risks will cause failure of the
project, while others risks will have no noticeable
effect on the project.
To determine which project parameter is the
most important, project managers can use
sensitivity analysis.
In our software development example, the duration
Decision Process
(Contd.)
Quantifying Risks
Associated with the Project
Uncertainties associated with input parameters
were already quantified during modeling step.
Now it is important to analyze how the
combination of all these uncertainties could
affect the project .
A number of analytical techniques can be applied
for this analysis. In our example, quantitative
analysis shows the following probability that
project will be completed on time:
"Do Not Add" 32%
"Bring resource from another team" 95%
"Hire external contractor" 65%
Decision Process
(Contd.)
Determining the
Value of New Information
One of the useful decision analysis technique s
is to assess a value of new information.
For example, the goal is to select new
development tools for the software project
based on performance .
Tests can be done to determine performance,
but it could be costly and time consuming.
Alternatively, it is possible to select the tools
based on specifications, without specific tests.
The analytical technique helps to establish the
value of new information , which in this case
would be the testing results, and to determine
whether the money should be spent on the
test.
Decision Process
(Contd.)
Deciding on a Course of Action
In many situations, selection of
alternatives is not so trivial.
Sometimes, decisions are made using
many criteria which complicates the
selection of the most efficient alternative.
In our example it is clear that according to
our success criterion, we should select
alternative "Bring resource from another
team".
Actual
Decision Process
(Contd.)
Project Performance Tracking