A project is ―a temporary endeavor
undertaken to create a unique product,
service, or result.‖*
Operations is work done to sustain the
A project ends when its objectives have been
reached, or the project has been terminated.
Projects can be large or small and take a
short or long time to complete.
Has a unique purpose.
Is developed using progressive elaboration.
Requires resources, often from various areas.
Should have a primary customer or sponsor.
The project sponsor usually provides the direction
and funding for the project.
Every project is constrained in different ways
Scope goals: What work will be done?
Time goals: How long should it take to complete?
Cost goals: What should it cost?
It is the project manager’s duty to balance
these three often-competing goals.
The Management Spectrum
- Performance management
- career development
- Organization and work design
- team culture development
before project planned, product objectives and scope should be defined, alternate solutions should be
considered, technical and management constraint should be identified.
Developer and customer should meet to define product objectives and scope.
The Process (includes different taskset,milestones,work product, framework activities, umbrella activities)
conduct planned and controlled software project development to manage complexity
Why project fails :
- unrealistic deadlines established
- Changing customer requirement
- technical difficult
- Miscommunication among team members
- Failure in project management
The People: The Stakeholders
Five categories of stakeholders
Senior managers – define business issues that often have
significant influence on the project
Project (technical) managers – plan, motivate, organize,
and control the practitioners who do the work
Practitioners – deliver the technical skills that are
necessary to engineer a product or application
Customers – specify the requirements for the software to
be engineered and other stakeholders who have a peripheral
interest in the outcome
End users – interact with the software once it is released
for production use
The People: Team Leaders
Competent practitioners often fail to make good team leaders; they
just don’t have the right people skills
Qualities to look for in a team leader
Motivation – the ability to encourage technical people to
produce to their best ability
Organization – the ability to mold existing processes (or
invent new ones) that will enable the initial concept to be
translated into a final product
Ideas or innovation – the ability to encourage people to
create and feel creative even when they must work within
bounds established for a particular software product or
Team leaders should use a problem-solving management style
Concentrate on understanding the problem to be solved
Manage the flow of ideas
Let everyone on the team know, by words and actions, that
quality counts and that it will not be compromised
Characteristics of Project Manager :
Problem solving – diagnose, structure a solution, apply
lessons learned, remain flexible
Managerial identity – take charge of the project, have
confidence to assume control, have assurance to allow good
people to do their jobs
Achievement – reward initiative, demonstrate that
controlled risk taking will not be punished
Influence and team building – be able to ―read‖ people,
understand verbal and nonverbal signals, be able to react to
signals, remain under control in high-stress situations
The People: The Software Team
Seven project factors to consider when structuring a software
The difficulty of the problem to be solved
The size of the resultant program(s) in source lines of code
The time that the team will stay together
The degree to which the problem can be modularized
The required quality and reliability of the system to be built
The rigidity of the delivery date
The degree of sociability (communication) required for the
The scope of the software development must be established and
Context – How does the software to be built fit into a larger
system, product, or business context, and what constraints
are imposed as a result of the context?
Information objectives – What customer-visible data
objects are produced as output from the software? What
data objects are required for input?
Function and performance – What functions does the
software perform to transform input data into output? Are
there any special performance characteristics to be
Software project scope must be unambiguous and
understandable at both the managerial and technical levels
Also referred to as partitioning or problem elaboration
Sits at the core of software requirements analysis
Two major areas of problem decomposition
The functionality that must be delivered
The process that will be used to deliver it
The project manager must decide which process model is
most appropriate based on
The customers who have requested the product and the
people who will do the work
The characteristics of the product itself
The project environment in which the software team works
Process decomposition then begins
Once a process model is selected, a preliminary project plan is
established based on the process framework activities
The result is a complete plan reflecting the work tasks required to
populate the framework activities
Project planning begins as a melding of the product and the process
based on the various framework activities
Software team should have significant flexibility in
choosing the s/w process model that is best for the
- A relatively small project that is similar to past
efforts might be best accomplished with the use of
linear sequential model.
- if very tight constraints to be imposed , RAD must be
- if the deadline is so tight that the functionality can
not be reasonably be delivered, an incremental
strategy might be best.
Process Decomposition (conti….)
Once the process model has been chosen,
the process framework is adapted to it.
Process decomposition commences when
the project manager asks, "How do we
accomplish this framework activity?‖
E.g. A small ,relatively simple project might
require the following work tasks for
communication process :
- Develop list of clarification issues.
- Meet the customer to address the clarification
- Jointly develop a statement of scope
- Review the statement of scope with all concerned
- Modify the statement of scope as required.
These events might occur over less then 48 hours.
The Project: Signs that it is in Jeopardy
Software people don't understand their customer's needs
The product scope is poorly defined
Changes are managed poorly
The chosen technology changes
Business needs change (or are poorly defined)
Deadlines are unrealistic
Users are resistant
Sponsorship is lost (or was never properly obtained)
The project team lacks people with appropriate skills
Managers avoid best practices and lessons learned
The Project: A Common Sense
Start on the right foot
Understand the problem; set realistic objectives and expectations;
form a good team
Provide incentives to reduce turnover of people; emphasize quality in
every task; have senior management stay out of the team’s way
Track the completion of work products; collect software process and
project measures; assess progress against expected averages
Make smart decisions
Keep it simple; use existing software before writing new code; follow
standard approaches; identify and avoid risks; always allocate more
time than you think you need to do complex or risky tasks
Conduct a post mortem analysis
Track lessons learned for each project; compare planned and actual
schedules; collect and analyze software project metrics; get feedback
from teams members and customers; record findings in written form
Software Project scheduling and
Project scheduling helps to establish a
roadmap for project manager.
Project scheduling and tracking begins with
the identification of process
models, identification of software tasks and
activities, estimation of efforts and work.
Software project scheduling is an activity that
distributes estimated efforts across the
Reasons why project deadline can
An unrealistic deadline established by someone outside the software
engineering group and forced on managers and practitioners within the
Changing customer requirements that are not reflected in schedule
An honest underestimate of the amount of effort and /or the number of
resources that will be required to do the job
Predictable and/or unpredictable risks that were not considered when the
Technical difficulties that could not have been
foreseen in advance
Human difficulties that could not have been foreseen in
Miscommunication among project staff that results in delays
A failure by project management to recognize that the project
is falling behind schedule and a lack of action to correct the
Basic Principles for Project
– The project must be compartmentalized into a number of manageable
activities, actions, and tasks; both the product and the process are
– The interdependency of each compartmentalized activity, action, or task
must be determined
– Some tasks must occur in sequence while others can occur in parallel
– Some actions or activities cannot commence until the work product
produced by another is available
– Each task to be scheduled must be allocated some number of work units
– In addition, each task must be assigned a start date and a completion
date that are a function of the interdependencies
– Start and stop dates are also established based on whether work will be
conducted on a full-time (More on next slide)
or part-time basis
Basic Principles for Project
– Every project has a defined number of people on the team
– As time allocation occurs, the project manager must ensure
that no more than the allocated number of people have been
scheduled at any given time
– Every task that is scheduled should be assigned to a specific
– Every task that is scheduled should have a defined outcome
for software projects such as a work product or part of a
– Work products are often combined in deliverables
– Every task or group of tasks should be associated with a
– A milestone is accomplished when one or more work
products has been reviewed for quality and has been
Estimates of effort
A decomposition of the product function
The selection of the appropriate process
model and task set
Decomposition of task
A task network
Program evaluation and review technique
Critical path method (CPM)
• Also called an activity network
• It is a graphic representation of the task
flow for a project
• It depicts task length, sequence,
concurrency, and dependency
• Points out inter-task dependencies to
help the manager ensure continuous
progress toward project completion
Each activity has:
End point (milestone or
Gantt chart is a means of displaying
simple activities or events plotted against
time or dollars
Most commonly used for exhibiting
program progress or for defining specific
work required to reach an objective
Gantt charts may include listing of
activities, activity duration, scheduled
dates, and progress-to-date
PERT and CPM
Determine the ―critical path‖
Establish ―most likely time‖
Calculate ―boundary times‖
latest finish time
the total float
The critical path :
– A single path leading from start to finish in a task network
– It contains the sequence of tasks that must be completed on
schedule if the project as a whole is to be completed on
– It is the longest path through the network and identifies
essential steps that must be completed on time to avoid
delay in completing the project.
– It also determines the minimum duration of the project
EST = earliest start time, EFT = earliest finish time.
LST = latest start time, LFT = latest finish time.
Slack = (LST - EST) or (LFT - EFT).
A PERT chart is a project management
tool used to schedule, organize, and
coordinate tasks within a project
Program Evaluation and Review
* = critical activity, - = non-critical, F = float or
Steps to draw PERT and CPM graph
Define jobs or activities
Estimate time for each activity
ordering of activities
Drawing the project graph or diagram
Forces manager for better plan
Shows interrelationship between tasks and helps
in identifying the critical path.
Exposes parallelism and helps in allocating
Helps in proper scheduling of different activities
Enables the manager to monitor and control a
When creating as software project schedule,
the planner begins with a set of tasks.
Efforts, duration and start date are input for
As a consequences of this input the timeline
chart is generated.
A timeline chart can be developed for the
Ways to track project schedule
Conducting periodic project status meeting in which
each team member reports progress and problem
Evaluating the results of all reviews conducted
throughout s/w engg. Process
Determining whether formal project milestones have
been accomplished by the schedule date
Comparing actual start date and planned start date for
each project task listed in the resource table
Using earned value analysis to assess progress
What is Risk?
There is a difference between a Problem and Risk
Problem is some event which has already occurred but risk is
something that is unpredictable.
Risk is an uncertainty.
A risk is a potential problem – it might happen and it might not
We don’t know whether a particular event will occur or no but if
it does has a negative impact on a project.
Definitions of Risks
Risk is the probability of suffering loss.
Risk provides an opportunity to develop
the project better.
Two characteristics of risk
Uncertainty – the risk may or may not happen, that
is, there are no 100% risks (those, instead, are called
Loss – the risk becomes a reality and unwanted
consequences or losses occur
Risk Analysis & Management
Risk analysis and management are a series of
steps that help a software team to understand
and manage uncertainty.
The Risks we encounter in a project should be
resolved so that we are able to deliver the
desired project to the customer.
The art of managing of the risks effectively so
that the WIN-WIN situation and friendly
relationship is established between the team
and the customer is called Risk Management.
Who does it?
Everyone involved in the software process participate
in risk analysis and management:
software engineers, and
Why is it important?
―Be prepared.‖ Software is a difficult undertaking.
Lots of things can go wrong, and frankly, many often
It’s for this reason that being prepared—
understanding the risks and taking proactive
measures to avoid or manage them—is a key element
of good software project management.
What are the steps?
1) Identify possible risks; recognize what
can go wrong
2) Analyze each risk to estimate the
probability that it will occur and the
impact (i.e., damage) that it will do if it
3) Rank the risks by probability and impact
- Impact may be negligible, marginal, critical,
4) Develop a plan to manage those risks having
high probability and high impact
What is the work product?
A risk mitigation, monitoring, and management
Or a set of risk information produced.
REACTIVE VS. PROACTIVE RISK STRATEGIES
"Don't worry, I'll think of something"
More commonly, the software team does nothing about risks
until something goes wrong. Then, the team flies into action in
an attempt to correct the problem rapidly. This is often called a
fire fighting mode.
Crisis management is the choice of management techniques
A proactive strategy begins long before technical work is
initiated. Potential risks are identified, their probability and
impact are assessed, and they are ranked by importance. Then,
the software team establishes a plan for managing risk.
Steps for risk management are followed
Primary objective is to avoid risk
They threaten the project plan
If they become real, it is likely that the project schedule will
slip and that costs will increase
They threaten the quality and timeliness of the software to
If they become real, implementation may become difficult or
They threaten the viability of the software to be built
If they become real, they jeopardize the project or the
Sub-categories of Business risks
Market risk – building an excellent product or system that
no one really wants
Strategic risk – building a product that no longer fits into
the overall business strategy for the company
Sales risk – building a product that the sales force doesn't
understand how to sell
Management risk – losing the support of senior
management due to a change in focus or a change in
Budget risk – losing budgetary or personnel commitment
Those risks that can be uncovered after careful
evaluation of the project plan, the business and
technical environment in which the project is
being developed, and other reliable information
sources (e.g., unrealistic delivery date)
Those risks that are extrapolated from past project
experience (e.g., past turnover)
Those risks that can and do occur, but are
extremely difficult to identify in advance
The Principles of Risk Management
1.Global Perspective: In this we look at the larger system
definitions, design and implementation. We look at the
opportunity and the impact the risk is going to have .
2.Forward Looking View: Looking at the possible uncertainties
that might creep up. We also think for the possible solutions for
those risks that might occur in the future.
3.Open Communication: This is to enable the free flow of
communication between in the customers and the team
members so that they have clarity about the risks.
4.Integrated management: In this phase risk management is
made an integral part of project management.
5.Continous process :In this phase the risks are tracked
continuously throughout the risk management paradigm.
6.Encourage Teamwork: The talents, skills and knowledge of all
stakeholders should be pooled when risk management activities
Risk identification is a systematic attempt to specify threats to
the project plan (estimates, schedule, resource loading, etc.).
Product size—risks associated with the overall size of the
software to be built or modified.
Business impact—risks associated with constraints
imposed by management or the marketplace.
Customer characteristics—risks associated with the
sophistication of the customer and the developer's ability to
communicate with the customer in a timely manner.
Process definition—risks associated with the degree to
which the software process has been defined and is followed
by the development organization.
Development environment—risks associated with the
availability and quality of the tools to be used to build the
Technology to be built—risks associated with the
complexity of the system to be built and the "newness" of the
technology that is packaged by the system.
Staff size and experience—risks associated with the
overall technical and project experience of the software
engineers who will do the work.
Performance risk—the degree of uncertainty that the
product will meet its requirements and be fit for its
Cost risk—the degree of uncertainty that the project
budget will be maintained.
Support risk—the degree of uncertainty that the resultant
software will be easy to correct, adapt, and enhance.
Schedule risk—the degree of uncertainty that the project
schedule will be maintained and that the product will be
delivered on time.
The project planner, along with other managers and
technical staff, performs four risk projection activities:
(1) establish a scale that reflects the perceived likelihood of a
(2) Describe the consequences of the risk
(3) estimate the impact of the risk on the project and the
(4) note the overall accuracy of the risk projection so that
there will be no misunderstandings.
Assessing Risk Impact
The following steps are recommended to determine the
overall consequences of a risk:
1. Determine the average probability of occurrence
value for each risk component.
2. Using table 1 (slide 10) determine the impact for
each component based on the criteria shown.
3. Complete the risk table and analyze the results
The overall risk exposure, RE, is determined using the following
RE = P x C
where P is the probability of occurrence for a risk, and C is
the the cost to the project should the risk occur.
For assessment to be useful, a risk referent
level (level of performance degradation) must
In the context of software risk analysis, a risk
referent level has a single point, called the
referent point or break point, at which the
decision to proceed with the project or
terminate it (problems are just too great) are
RISK MITIGATION, MONITORING, AND
An effective strategy must consider three
risk management and contingency planning
Changes in requirements
Lack of Development Experience
To mitigate the risk ,possible steps are given
Organize project teams so that information about each
development activity is widely dispersed.
Conduct peer reviews of all work
Assign a backup staff for every assumption
Define documentation standards and establish
mechanism to ensure that documents are developed in
Meet the current staff to determine causes for turnover
Once the project commences ,assume
turnover will occur
Mitigate those causes that are under our
control before the project starts.
Risk Monitoring and Control
Risk monitoring and control continues on
through a project until the project is
complete. Risk monitoring and control is
the process of identifying and analyzing
new risk, keeping track of these new risks
and forming contingency plans incase they
Risk Monitoring and Control
Risk monitoring and control is required in
Ensure the execution of the risk plans
evaluate their effectiveness in reducing
Keep track of the identified risks
In case of high staff turnover, the following
factors can be monitored:
1. General attitude of team members based
on project pressures
2.The degree to which the team has jelled
(begin to work well)
3. Interpersonal relationships among team
4. Potential problems with compensation and
Also called software configuration
It is an umbrella activity that is applied
throughout the software process
It's goal is to maximize productivity by
minimizing mistakes caused by confusion
when coordinating software development
SCM identifies, organizes, and controls
modifications to the software being built
by a software development team
SCM activities are formulated to
identify change, control change, ensure
that change is being properly
implemented, and report changes to
others who may have an interest
SCM is initiated when the project
begins and terminates when the
software is taken out of operation
The Output from the software process makes up the
Computer programs (both source code files and
Work products that describe the computer programs
(documents targeted at both technical practitioners
Data (contained within the programs themselves or in
The major danger to a software configuration is change
First Law of System Engineering: "No matter where
you are in the system life cycle, the system will
change, and the desire to change it will persist
throughout the life cycle"
Origins of Software Change
detected in the software need to be corrected
New business or market conditions dictate changes in product
requirements or business rules
New customer needs demand modifications of data produced
by information systems, functionality delivered by products, or
services delivered by a computer-based system
Reorganization or business growth/downsizing causes changes
in project priorities or software engineering team structure
Budgetary or scheduling constraints cause a redefinition of the
system or product
A typical CM operational scenario involves :
Project manager -> an auditing mechanism for
ensuring the product is developed within certain
SCM manager -> a controlling, tracking, and
policy making mechanism
Software engineer -> a changing, building, and
access control mechanism
Customer -> a quality assurance and product
Elements of CM
Component Elements (set of tools coupled within a
file management system e.g. database that enable access to and
software configuration items)
Process Elements ( a collection of procedures and
tasks that define an effective approach to change managements)
Construction Elements ( a set of tools that automate
the construction of software)
Human Elements ( software team uses set of tools and
Elements are not mutually exclusive
―A specification or product that has
been formally reviewed and agreed to
by responsible management, that
thereafter serves as the basis for further
development, and can be changed only
through formal change control
As systems are developed, a series of
baselines is developed, usually after a
Developmental baseline (RAD, SDD, Integration
Goal: Coordinate engineering activities.
Functional baseline (first prototype, alpha
release, beta release)
Goal: Get first customer experiences with
Product baseline (product)
Goal: Coordinate sales and customer support.
―An aggregation of hardware, software, or both, that is
designated for configuration management and treated
as a single entity in the configuration management
Software configuration items are not only program code
segments but all type of documents that are
produced during development, e.g.:
all types of code files
drivers for tests
analysis or design documents
user or developer manuals
system configurations (e.g. version of compiler used)
The SCM Repositories
Problems with paper-based repositories (i.e., file cabinet
Finding a configuration item when it was needed was often
Determining which items were changed, when and by whom
was often challenging
Constructing a new version of an existing program was time
consuming and error prone
Describing detailed or complex relationships between
configuration items was virtually impossible
Today's automated SCM repository
It is a set of mechanisms and data structures that allow a
software team to manage change in an effective manner
It acts as the center for both accumulation and storage of
software engineering information
Software engineers use tools integrated with the repository
to interact with it
Automated SCM Repository
Functions of an SCM Repository
Validates entries, ensures consistency, cascades
Shares information among developers and tools,
manages and controls multi-user access
Establishes a data model that can be accessed by many
software engineering tools, controls access to the data
Allows various SCM tasks to be performed on one or
Defines an entity-relationship model for the repository
that implies a specific process model for software
Defines objects in the repository to guarantee a
standard approach for creation of software engineering
Toolset Used on a Repository
Save and retrieve all repository objects based on version number
Dependency tracking and change management
Track and respond to the changes in the state and relationship of all
objects in the repository
(Forward tracing) Track the design and construction components
and deliverables that result from a specific requirements
(Backward tracing) Identify which requirement generated any
given work product
Track a series of configurations representing specific project
milestones or production releases
Establish information about when, why, and by whom changes are
made in the repository
Primary Objectives of the
Identify all items that collectively define
the software configuration
Manage changes to one or more of these
Facilitate construction of different
versions of an application
Ensure the software quality is maintained
as the configuration evolves over time
Provide information on changes that have
How does a software team identify the discrete elements of a
How does an organization manage the many existing versions
of a program (and its documentation) in a manner that will
enable change to be accommodated efficiently?
How does an organization control changes before and after
software is released to a customer?
Who has responsibility for approving and ranking changes?
How can we ensure that changes have been made properly?
What mechanism is used to appraise others of changes that are
Clean room Software Engineering
Clean room combines formal methods of
requirements and design with statistical
usage testing to produce software with
nearly none or no defects.
What is Clean room Software
Set of principles and practices for software
management, specification, design, and
Emphasis on defect prevention rather
than defect removal.
Clean room Software Engineering
Clean room combines formal methods of
requirements and design with statistical
usage testing to produce software with
nearly none or no defects.
Clean room Strategy
The project plan is built around the incremental
Customer requirements are elicited and refined for
each increment using traditional methods.
Box structure specification.
Box structures isolate and separate the definition
of behavior, data, and procedures at each level of
Specifications (black-boxes) are iteratively refined
to become architectural designs (state-boxes) and
component-level designs (clear boxes).
Correctness questions are asked and answered,
formal mathematical verification is used as
Code generation, inspection, verification.
Box structures are translated into program
language; inspections are used to ensure
conformance of code and boxes, as well as
syntactic correctness of code; followed by
correctness verification of the code.
Statistical test planning.
A suite of test cases is created to match the
probability distribution of the projected product
Statistical use testing.
A statistical sample of all possible test cases is used
rather than exhaustive testing.
Once verification, inspection, and usage testing are
complete and all defects removed, the increment is
certified as ready for integration.
Delivers a high quality product that is
verified as being correct.
Errors are found early on in the project
Due to majority of project time spent in the
Leads to lower overall costs and reduces
time spent finding errors.
Reduces the overall project time