Software Project Management
Page 1
LECTURE # 1
INTRODUCTION TO SOFTWARE PROJECT MANAGEMENT
What is Management?
Basically, the management involves the following activities:
1. Planning- deciding what is to be done
2. Organizing- making arrangements
3. Staffing- selecting the right people for the job
4. Directing- giving instructions
5. Monitoring- checking on progress
6. Controlling- taking action to remedy hold-ups
7. Innovating- coming up with new solutions
8. Representing- liaising with users, etc.
What is a Project?
A project is an activity with specific goals which takes place over a finite period of time.
“A temporary organization that is needed to produce a unique and pre-defined outcome or
result at a pre-specified time using pre-determined resources”
Projects are often implemented as a means of achieving an organization’s strategic plan.
Operations and projects differ primarily in that operations are ongoing and repetitive while
projects are temporary and unique.
A project can thus be defined in terms of its distinctive characteristics—a project is a temporary
endeavor undertaken to create a unique product or service.
Temporary means that every project has a definite beginning and a definite end.
Unique means that the product or service is different in some distinguishing way from all other
products or services.
Projects are undertaken at all levels of the organization. They may involve a single person or
many thousands. Their duration ranges from a few weeks to more than five years. Projects may
involve a single unit of one organization or may cross organizational boundaries, as in joint
ventures and partnering.
Software Project Management
Page 2
Examples of projects include:
Developing a new product or service.
Effecting a change in structure, staffing, or style of an organization.
Designing a new transportation vehicle.
Developing or acquiring a new or modified information system.
Constructing a building or facility.
Building a water system for a community in a developing country.
Running a campaign for political office.
Implementing a new business procedure or process.
What is Project Management?
Project management can be broadly defined as starting an activity to achieve some stated
goals using limited resources, budget, and time.
During the project, resources and budget are consumed in a limited span of time (Figure
1.1).
After the project is finished, the unconsumed resources and budget should be released.
Since each project is started for a customer, a fourth dimension in the project is also
added.
It is customer satisfaction. The customer must be satisfied with the goal achieved by the
project. This goal could be the creation of any product or service.
So we can see that there are inputs to the project in terms of resources, budget, and
allocated time duration, and the output of the project is the achieved goal.
A project must be initiated. To execute the project in a systematic manner, it is better to
have a project plan.
During project execution, some risks may arise, which may end up jeopardizing the
project plan and in fact the entire project.
Software Project Management
Page 3
So we should have some controlling measures, which can be employed to tackle any risks
arising in the project successfully to avoid the project getting jeopardized. By the time
project execution ends, we must have a proper project closure so that we can end the
project. In Figure 1.2, you can see these project processes.
IT projects
Before moving to software projects, let us first discuss IT projects. But even before
discussing IT projects, let us understand IT and software and their differences.
IT is a field where an IT system refers to a complete system comprising many parts like
hardware systems, software systems, and any other components from some other fields.
A complete IT system can be used for any purpose like running a business, doing
research, use in robotics, use in automation systems, etc. For instance, a robot is mostly a
hardware device, but the information or instructions given to it to do some things are
done using a software system.
In other words, we can say that the brain of the robot is a software system and other parts
of the robot like its limbs and sensing devices attached to it are hardware parts (Figure
1.3).
Software Project Management
Page 4
Generally, when we refer to IT, we mean the combination of software system and the
computer hardware in which the software system will be running. For example, a
business software application for doing transactions may be a complete IT system when
the software system is installed in the computer hardware system and is ready to be used
by end users.
Since software is being used in many new industries and we use more and more software
systems in our daily lives, it is now becoming part of most things we see or interact with.
Our gadgets of daily use (music systems, air conditioners, washing machines, etc.) now
have some sort of computer built into them.
In manufacturing industries, industrial robots have been used since the 1950s. Now these
robots are becoming sophisticated with more advanced software systems to control them.
More recently, the ubiquitous mobile phone handsets have been the major beneficiaries
of advancement in software system capabilities.
In fact, more than 40% of all spending on IT budgets now goes to the telecom sector
(mostly mobile and communication applications), which is a part of the IT industry
(Figure 1.4).
Software Project Management
Page 5
So an IT project could be for setting up an enterprise-wide software system (along with
the hardware to run it) to get business intelligence capability, manage store operations, or
manage warehouses, etc.
Tasks involved in such a project could be building (developing) the software system,
buying the computer hardware to run it, installing the software in the computer hardware,
preparing the network of computers (if it is an enterprise-wide system), and finally
configuring the software system so that it can run on the network of computers.
What is Software Project?
A software development project on the other hand is making software design based on
customer requirements and implementing it into source code.
This source code is then tested to make sure that it is defect free so that end users can use
the software system without running into many problems.
In software maintenance project, an already existing software product is modified to
remove software defects, add new functionality, port the software product on some other
operating system, etc. Software development and software maintenance projects together
are referred to as software projects (Figure 1.5).
Software Project Management
Page 6
What is Software Project Management?
Software projects demand not only general project management skills but also good soft-
ware engineering skills.
A goal of any software project management is to develop/maintain a software product by
applying good project management principles as well as software engineering principles
so that the software project is delivered at minimum cost, within minimum time, and with
good product quality.
Good project management principles will ensure good productivity. Good productivity in
turn will ensure that the project is delivered in minimum time at minimum cost.
Good software engineering principles will ensure good product quality. Even though how
software engineering principles are formulated may not be in the domain of software
project management, adopting those principles in their projects definitely comes under
the purview of the job of a software project manager.
For instance, a project manager responsible for managing a civil construction project
must have knowledge and experience in civil engineering. An electrical engineer
managing a civil project will not be a suitable fit. Similarly, a project manager
responsible for managing a software project must have knowledge and experience in
software engineering.
Software Project Management
Page 7
Project management processes may include project initiation, project planning, project
monitoring and control, and finally project closure. The software engineering processes
may include requirement development, software design, software construction, software
testing, and software maintenance. These software engineering processes have to be
somehow accommodated in project management processes (see Figure 1.6).
In a nutshell, software project management can be defined as applying project
management and software engineering methods to develop/maintain a software product
so that the goal of developing/maintaining a software product can be achieved using
minimum possible resources and money and within the minimum time possible.
Software Project Management
Page 8
PM’s nine Knowledge Areas:
1. Project Integration Management
Project Integration Management includes the processes required to ensure that the various
elements of the project are properly coordinated. It involves making tradeoffs among competing
objectives and alternatives to meet or exceed stakeholder needs.
These processes interact with each other and with the processes in the other knowledge areas as
well. Each process may involve effort from one or more individuals or groups of individuals,
based on the needs of the project. Each process generally occurs at least once in every project
phase.
Project integration management comes into play when a cost estimate is needed for a
contingency plan, or when risks associated with various staffing alternatives must be identified.
However, for a project to be completed successfully, integration must also occur in a number of
other areas as well.
For example:
The work of the project must be integrated with the ongoing operations of the performing
organization.
Product scope and project scope must be integrated.
One of the techniques used to both integrate the various processes and to measure the
performance of the project as it moves from initiation through to completion is Earned Value
Management (EVM).
Earned value is the amount of work completed, measured according to the budgeted
effort that the work was supposed to consume.
It is also called the budgeted cost of work performed.
As each task is completed, the number of person-months originally planned for that task
is added to the earned value of the project.
– Earned value charts: An earned value chart has three curves:
The budgeted cost of the work scheduled.
The earned value.
The actual cost of the work performed so far.
2. Project Scope Management
Project Scope Management includes the processes required to ensure that the project includes
all the work required, and only the work required, to complete the project successfully. It is
primarily concerned with defining and controlling what is or is not included in the project.
Software Project Management
Page 9
The processes, tools, and techniques used to manage product scope vary by application area
and are usually defined as part of the project life cycle
A project generally results in a single product, but that product may include subsidiary
components, each with its own separate but interdependent product scopes. For example, a
new telephone system would generally include four subsidiary components—hardware,
software, training, and implementation.
Completion of the project scope is measured against the project plan, but completion of the
product scope is measured against the product requirements.
Both types of scope management must be well integrated to ensure that the work of the
project will result in delivery of the specified product.
3. Project Time Management
Project Time Management includes the processes required to ensure timely completion of the
project. The followings are major processes in developing the project time schedule:
a) Activity Definition—identifying the specific activities that must be performed to
produce the various project deliverables.
b) Activity Sequencing—identifying and documenting interactivity dependencies.
c) Activity Duration Estimating—estimating the number of work periods that will be
needed to complete individual activities.
d) Schedule Development—analyzing activity sequences, activity durations, and resource
requirements to create the project schedule.
e) Schedule Control—controlling changes to the project schedule.
These processes interact with each other and with the processes in the other knowledge areas as
well. Each process may involve effort from one or more individuals or groups of individuals,
based on the needs of the project. Each process generally occurs at least once in every project
phase.
4. Project Cost Management
Project Cost Management includes the processes required to ensure that the project is completed
within the approved budget.
Software Project Management
Page 10
Resource Planning—determining what resources (people, equipment, materials) and what
quantities of each should be used to perform project activities.
Cost Estimating—developing an approximation (estimate) of the costs of the resources needed
to complete project activities.
Cost Budgeting—allocating the overall cost estimate to individual work activities.
Cost Control—controlling changes to the project budget.
These processes interact with each other and with the processes in the other knowledge areas as
well. Each process may involve effort from one or more individuals or groups of individuals,
based on the needs of the project. Each process generally occurs at least once in every project
phase.
5. Project Quality Management
Project Quality Management includes the processes required to ensure that the project will
satisfy the needs for which it was undertaken. It includes “all activities of the overall
management function that determine the quality policy, objectives, and responsibilities and
implements them by means such as quality planning, quality assurance, quality control, and
quality improvement, within the quality system.
These processes interact with each other and with the processes in the other knowledge areas as
well. Each process may involve effort from one or more individuals or groups of individuals,
based on the needs of the project. Each process generally occurs at least once in every project
phase.
Project quality management must address both the management of the project and the product of
the project. The generic term product is occasionally used, in literature regarding quality, to refer
to both goods and services.
6. Project Human Resource Management
Project Human Resource Management includes the processes required to make the most
effective use of the people involved with the project. It includes all the project stakeholders—
sponsors, customers, partners, and individual contributors Following are some major processes:
Organizational Planning—identifying, documenting, and assigning project roles,
responsibilities, and reporting relationships.
Staff Acquisition—getting the human resources needed assigned to and working on the
project.
Software Project Management
Page 11
Team Development—developing individual and group competencies to enhance project
performance.
These processes interact with each other and with the processes in the other knowledge areas as
well. Each process may involve effort from one or more individuals or groups of individuals,
based on the needs of the project.
There is a substantial body of literature about dealing with people in an operational, ongoing
context. Some of the many topics include:
Leading, communicating, negotiating, etc.
Key General Management Skills:
Delegating, motivating, coaching, mentoring, and other subjects related to dealing with
individuals.
Team building, dealing with conflict, and other subjects related to dealing with groups.
Performance appraisal, recruitment, retention, labor relations, health and safety
regulations, and other subjects related to administering the human resource function.
Most of this material is directly applicable to leading and managing people on projects, and the
project manager and project management team should be familiar with it. However, they must
also be sensitive as to how this knowledge is applied on the project. For example: Project Human
Resource Management includes the processes required to make the most effective use of the
people involved with the project. It includes all the project stakeholders—sponsors, customers,
partners, and individual contributors.
Major processes include:
Organizational Planning—identifying, documenting, and assigning project roles,
responsibilities, and reporting relationships.
Staff Acquisition—getting the human resources needed assigned to and working on the
project.
Team Development—developing individual and group competencies to enhance project
performance.
These processes interact with each other and with the processes in the other knowledge areas as
well. Each process may involve effort from one or more individuals or groups of individuals,
based on the needs of the project.
Software Project Management
Page 12
7. Project Communications Management
Project Communications Management includes the processes required to ensure timely and
appropriate generation, collection, dissemination, storage, and ultimate disposition of project
information. It provides the critical links among people, ideas, and information that are necessary
for success. Everyone involved in the project must be prepared to send and receive
communications, and must understand how the communications in which they are involved as
individuals affect the project as a whole.
Major processes include:
Communications Planning—determining the information and communications needs of
the stakeholders: who needs what information, when they will need it, and how it will be
given to them.
Information Distribution—making needed information available to project stakeholders
in a timely manner.
Performance Reporting—collecting and disseminating performance information. This
includes status reporting, progress measurement, and forecasting.
Administrative Closure—generating, gathering, and disseminating information to
formalize a phase or project completion.
These processes interact with each other and with the processes in the other knowledge areas as
well. Each process may involve effort from one or more individuals or groups of individuals,
based on the needs of the project. Each process generally occurs at least once in every project
phase. Communicating is a broader subject and involves a substantial body of knowledge
that is not unique to the project context. For example:
Sender-receiver models—feedback loops, barriers to communications, etc.
Choice of media—when to communicate in writing versus when to communicate orally,
when to write an informal memo versus when to write a formal report, etc.
Writing style—active versus passive voice, sentence structure, word choice, etc.
Presentation techniques—body language, design of visual aids, etc.
Meeting management techniques—preparing an agenda, dealing with conflict, etc.
8. Project Risk management
Software Project Management
Page 13
Project Risk management is the systematic process of identifying, analyzing, and responding to
project risk. It includes maximizing the probability and consequences of positive events and
minimizing the probability and consequences of adverse events to project objectives.
Risk Management Planning—deciding how to approach and plan the risk management
activities for a project.
Risk Identification—determining which risks might affect the project and documenting
their characteristics.
Qualitative Risk Analysis—performing a qualitative analysis of risks and conditions to
prioritize their effects on project objectives.
Quantitative Risk Analysis—measuring the probability and consequences of risks and
estimating their implications for project objectives.
Risk Response Planning—developing procedures and techniques to enhance
opportunities and reduce threats to the project’s objectives.
Risk Monitoring and Control—monitoring residual risks, identifying new risks,
executing risk reduction plans, and evaluating their effectiveness throughout the project
life cycle.
These processes interact with each other and with the processes in the other knowledge areas.
Each process generally occurs at least once in every project.
9. Project Procurement Management
Project Procurement Management includes the processes required to acquire goods and services,
to attain project scope, from outside the performing organization. For simplicity, goods and
services, whether one or many, will generally be referred to as a product.
An overview of the major processes includes:
Procurement Planning—determining what to procure and when.
Solicitation Planning—documenting product requirements and identifying potential
sources.
Solicitation—obtaining quotations, bids, offers, or proposals, as appropriate.
Source Selection—choosing from among potential sellers.
Contract Administration—managing the relationship with the seller.
Software Project Management
Page 14
Contract Closeout—completion and settlement of the contract, including resolution of
any open items.
These processes interact with each other and with the processes in the other knowledge areas as
well. Each process may involve effort from one or more individuals or groups of individuals,
based on the needs of the project.
Project Procurement Management is discussed from the perspective of the buyer in the buyer-
seller relationship. The buyer-seller relationship can exist at many levels on one project.
Depending on the application area, the seller may be called a subcontractor, a vendor, or a
supplier.
The seller will typically manage its work as a project. In such cases:
The buyer becomes the customer, and is thus a key stakeholder for the seller.
The seller’s project management team must be concerned with all the processes of project
management, not just with those of this knowledge area.
The terms and conditions of the contract become a key input to many of the seller’s
processes. The contract may actually contain the input (e.g., major deliverables, key
milestones, cost objectives), or it may limit the project team’s options (e.g., buyer
approval of staffing decisions is often required on design projects).
Comparing Projects and Operations
There is a distinct difference between projects and operations.
Operations are the day-to-day activities that your organization does. For example, a car
manufacturer makes cars. An airline flies people from one city to another. A help desk
supports technical solutions. Within each of these companies reside various departments
working on projects that enable operations to function.
A project at an automobile manufacturer might be to design a new sports car. The car
manufacturer’s operations involve manufacturing that design again and again.
Software creation is special. Imagine you have customers around the world who want you
to create a piece of software that helps them keep track of sports statistics. This is your
new business — you create sports stat software and you’re a gazillionaire.
Examining Project Constraints
A constraint is anything that restricts the project manager’s options.
Software Project Management
Page 15
Constraints are requirements, confines, or, if you’re a glass-is-half-empty kind of person, prison
walls. Constraints can include _ Resource constraints such as a team member being assigned to
too many concurrent projects
Tight deadlines
Budgetary limitations
Government regulations
Limitations of software
Scope limitation, such as being required to use a particular existing interface
Hardware requirements
Anything else that restricts your options
Understanding Universal Constraints (Time, Cost, and Scope)
The three universal project constraints you will always face are
Time: Time constraints may range from a reasonable schedule to an impossibly short
timeframe that can’t budge because the product simply must be on shelves by September
15 (never mind that September 15 was last week).
Cost: Cost constraints are the usual budgetary restrictions that you expect. (“Here’s a
nickel. Make it happen.”)
Scope: Sometimes scope is a no-brainer (you’re working on the 700th
rev of Acme
Wizware to fix a bug). On the other hand, scope can be a bit trickier if you’re dealing
with an executive who isn’t sure what he wants.
Iron Triangle of project management
These three constraints make up what we affectionately refer to as the somewhat
inflexible-sounding nickname the Iron Triangle of project management.
Software Project Management
Page 16
Even though your boss has changed the scope, you have to deliver more stuff within the
same amount of time and with the same amount of cash, as Figure depicts. You’ll need
more time, more money, or both for the triangle to remain equilateral.
Managing time constraints
Time constraints are simply deadlines.
You have a project to create a new piece of software within six months. Or there’s an
opportunity in the marketplace for a new application, but the window of opportunity is
small, so you have no time to waste.
Time can also be calculated as labor: Working or billable hours, processor speed,
database consistency, and even network latency issues can be used to estimate time
constraints.
Introducing the law of diminishing returns
Time is time. Don’t be fooled into thinking you can buy more time — no one can. You
can buy more labor if you think it will help your team do more work faster, but that’s not
the same thing as adding time to a project.
The law of diminishing returns dictates that adding labor doesn’t exponentially increase
productivity; in fact, at some point productivity can even go backwards.
For a real-life example of the law of diminishing returns, consider that you may have two
hardworking, experienced programmers working on a section of code. In your quest to
finish the project on time, you add one more programmer to the mix. Now the
Software Project Management
Page 17
programmers may be completing the code more quickly, and you’re so excited that you
decide to add six more programmers so that you can finish even sooner.
You soon realize that although adding one programmer increased your productivity,
adding six more only created chaos, with programmers stepping on each other’s toes,
inadvertently neutralizing each other’s code, and creating a contentious environment.
You reached the point of diminishing returns when you added six programmers
Managing cost constraints
Cost constraints are easy to identify because they deal with cash money.
Well, it’s not always cash, but you get the idea; the miniscule funds in your project
budget to complete the project work create a unique constraint. Your costs include
computers and languages to code in, labor, and anything else you need to buy in order to
get the job done.
Projects almost always cost somebody something. Be sure to factor in hidden costs for
labor, resources, computers, pizza, celebrations, training, bribes, and more.
Managing the scope
The third part of the Iron Triangle is the scope. There are two scopes within project management:
Product scope: The product scope describes, lists, and categorizes all the features and
components of the finished deliverable. This is what the customers see in their minds’
eye.
Project scope: This is where you focus. The project scope is all the required work, and
only the required work, to create the project deliverable.
The project scope focuses on work, activities, and progress to achieve the product scope. The
project scope must be protected from unapproved changes because it dictates what the project
team will do and what the end result of the project will be.
Controlling Scope Creep
Changes to the project scope can affect cost and time constraints, melting your Iron
Triangle. The Iron Triangle is a key tool in project management and is ideal for
negotiations with stakeholders.
Software Project Management
Page 18
For example, if your stakeholder insists on adding software functionality to your project
scope, you can use the Iron Triangle as a tool to explain that when you increase one side
of the triangle (the scope side) the triangle is no longer in balance.
To change the scope, you must change the cost or the schedule (or both) to keep the
triangle balanced.
Unplanned changes to the project scope, sometimes called scope creep, are the little
extras that expand the scope without reflecting the changes in the cost and time baselines.
The reason scope creep is so poisonous is because it can happen so easily, and so
innocently. And yet, it can be so deadly.
When the scope goes off track, time and funds are stolen from the original baselines. It’s
not as if extra money and time are magically added to the project to handle all the little
extras.
Balancing the three sides of the triangle ensures a high-quality final product.
Changes to the project scope should be controlled and managed through a change control
system, which you can find out more about in later lectures.
In essence, a change control system accommodates a process for documenting requested
changes and requires obtaining appropriate approval for all requested project changes.
The key is to avoid changes that are not directly approved or requested by the customer.
Making Sense of Project Success (Or Failure)
Most projects start with an optimistic attitude about creating a deliverable, keeping the customer
happy, and making this the best software project ever.
And then things (bad things) happen. The good projects end on time and as planned. We’d wager
that these projects have three things in common:
Software Project Management
Page 19
A leader who knows what he or she is doing
A tight change control system
Team members who understand what the project is supposed to deliver and can therefore
get results
Commonly, projects limp to the finish line, late, over budget, and after crushing the morale of
everyone involved. Done, but maybe not done well. These projects typically have three
attributes:
Poor requirements from the project customers
Poor communications through the project manager
Poor morale from the project team
The saddest of projects are the ones that never make it to the finish. This bunch misses deadlines,
blows budgets, or experiences a radical change of scope so often that no one (not even the PM)
knows exactly what the project should be creating anymore. Failed projects usually have some, if
not all, of these attributes:
No clear vision of what the project priorities are
Lack of leadership from the project manager and/or sponsor
A timid project manager
Lack of autonomy for the project manager
New resumes being typed in unison
Starting and Finishing Software Projects
Five process groups as defined by the Project Management Institute.
Initiating: That’s really where you are now. The project is in the process of getting
selected, sponsored, funded, and launched.
Software Project Management
Page 20
Planning: As you can see in Figure above, planning is an iterative process. Planning
basically determines how the project work will get accomplished.
Executing: After you get a plan, your project team does the work.
Controlling: Your project team does the work, but you control them.
Closing: Ah, paradise. After the project work has been completed, you tie up loose ends
and close out the software project.