You are on page 1of 55

Software Project Management

Dr. Raghuraj Singh


Professor,
Computer Science & Engineering Department
H.B.T.I., Kanpur
Email: rscse@rediffmail.com
Mobile: 94151513745 hhkhhhoh
Software
Project Management
The course is an introduction to project
management. The course provides the
concepts and tools necessary for
managing complex projects, with a
particular focus on managing software
development projects and the software
quality.

(Everything you ever wanted to know about


how to get things done!)
Books (Software Project
Management)
• I. Sommerville, Software Engineering,
Addison Wesley, VII Edition.
• R. S. Pressman, Software Engineering,
McGraw Hill, VI Edition.
• Kathy Schwalbe, Information Technology
Project Management, Vikas Pub. House.
• S. A. Kelkar, Software Project Management ,
PHI Publication
• B. Hughes and M. Cotterell, Software Project
Management, 3rd Ed., TMGH Publication
Motivations
Most of the courses in Computer Science
focus on the technical aspects of software
development (how to do testing, how to write
requirements, how to model systems) or on
notations (UML, Java, …)

However, in order to build good software, you


need a well defined and managed process…
Motivations
Some Examples:

• The techniques to do testing are useless if you


don’t have time to do the testing (because, for
instance, you planned the project wrong and are
late with development)

• Writing good requirements is no good if you


don’t have a controlled process, for instance, to
accept changes and revisions
Motivations
… moreover, if you want to develop
Quality software on time and on
budget, there is no way you can do it
without managing the development
process
Who needs software?
• Most of the software are built in organizations
for people with specific needs.
– A stakeholder is a anyone who has an interest (or
stake) in the software being completed
– A user is someone who will need to use the
software to perform tasks.
– Sometimes stakeholders will be users; but often
the stakeholder will not use the software.
• For example, a senior manager (like a CEO in a
company) will usually have a stake in the software that is
built, even if he won’t ever use it.
Who builds software?
• Software are typically built by a team of
software engineers, which includes:
– Business analysts or requirements analysts who
talk to users and stakeholders, plan the behavior
of software and write software requirements
– Designers and architects who plan the technical
solution
– Programmers who write the code
– Testers who verify that the software meets its
requirements and behaves as expected
Project Management
… requires fundamental competence and skills:

– How do you estimate the time it will take to


complete a task?
– How much am I going to charge for a project?
– How do I deal with people in the project team, e.g.
keep them motivated?
– How do I assess whether the project is on time, on
budget, and on schedule?
– How do I control the quality of the final output?
Project Management
• The project manager plans and guides the
software project
– The project manager is responsible for identifying
the users and stakeholders and determining their
needs
– The project manager coordinates the team,
ensuring that each task has an appropriate
software engineer assigned and that each
engineer has sufficient knowledge to perform it
– To do this well, the project manager must be
familiar with every aspect of software engineering
Identifying Needs
• The project manager drives the scope
of the project.
– The project manager should identify and
talk to the main stakeholder
– The effective way to show stakeholders
that their needs are understood and that
those specific needs will be addressed is
with a vision and scope document
Vision and Scope Document
• A typical vision and scope document follows an
outline like this one:
1. Problem Statement
a) Project background
b) Stakeholders
c) Users
d) Risks
e) Assumptions
2. Vision of the Solution
a) Vision statement
b) List of features
c) Scope of phased release (optional)
d) Features that will not be developed
Laws of Project Management
• Projects progress quickly until they are 90%
complete. Then they remain at 90% complete
forever.
• When things are going well, something will go
wrong. When things just can’t get worse, they will.
• When things appear to be going better, you have
overlooked something.
• If project content is allowed to change freely, the
rate of change will exceed the rate of progress.
• Project teams detest (hate) progress reporting
because it manifests (express) their lack of
progress.
Project Management Cycle
• Plan the Project
– What are the deliverables?
– What tasks are needed to produce the
deliverables?
– What resources are needed and for how
long?
– What will the project cost?
• Schedule the Project
– Who will work on it?
– When are they available?
– What other resources are needed?
– How can the resources be acquired and
used?
Project Management Cycle Ctd..

• Control the Project


– What happened since the last time the
project plan was updated?
– What is the effect on the schedule?
– What problems or opportunities need to be
addressed?
– Are we on time and within budget?
Software Project Management
The Project Management techniques are intrinsically
multidisciplinary …

… what you will learn in this course is applicable to


virtually any other (engineering) domain.

There are however certain characteristics that make


the management of software projects particularly
interesting.
Software Project Management
Why is software project management interesting:

• The product is intangible


• The product is uniquely flexible
• Software engineering is not recognized as an
engineering discipline with the same status as
mechanical, electrical engineering, etc.
• The software development process is not
standardised.
Software Project Management
• Deals with the management techniques
required to

Plan Organize

Control Monitor
Software Project Management
uses concepts and techniques for
• Management of people, process, & problems
• Managing S/W product & process through
metrics
• Estimation of efforts, cost, schedule etc.
• Risk analysis for overall project success
• Quality assessment and control
• Software Quality Assurance (SQA)
• Formal Technical Reviews (FTR)
Software Project Management
• Concerned with activities involved in
ensuring that software is delivered on time
and on schedule and in accordance with
the requirements of the organisations
developing and procuring the software.
• Project management is needed because
software development is always subject to
budget and schedule constraints that are
set by the organisation developing the
software.
SPM Objectives
• To explain the main tasks undertaken by
project managers
• To introduce software project management
and to describe its distinctive characteristics
• To discuss project planning and the planning
process
• To show how graphical schedule
representations are used by project
management
• To discuss the notion of risks and the risk
management process
Management activities
• Proposal writing.
• Project planning and scheduling.
• Project costing.
• Project monitoring and reviews.
• Personnel selection and evaluation.
• Report writing and presentations.
Management Commonalities
• These activities are not peculiar to
software project management.
• Many techniques of engineering project
management are equally applicable to
software project management.
• Technically complex engineering
systems tend to suffer from the same
problems as software systems.
Management Spectrum
4 P’s
• People
• Product
• Process
• Project
People
The people management model defines the
following key practice areas for s/w people.
 Recruiting/Selection
 Performance management
 Training
 Compensation
 Career development
 Organization
 Work design
 Team/culture development
Productivity and People
Software Team Roles
Product
Before planning a project
 Product objectives and scope should be
established.
 Alternative solutions should be considered.
 Technical & management Constraints
should be identified.
Product Dimensions
• Software scope
– context
– information objectives
– function
– performance
• Problem decomposition
– partitioning or problem elaboration
– focus is on functionality to be delivered and the
process used to deliver it
Process Dimensions
• What it is?
• Who does it?
• Why it is important?
• What are the steps?
• What is the work product?
• How to ensure that product has been
built right?
Process Considerations - 1
• Process model chosen must be appropriate
for the:
– customers
– developers
– characteristics of the product
– project development environment
• Project planning begins with conceiving the
concept of the product and the process and
their improvement
Process Considerations - 2
• Each function to be engineered must pass
though the set of framework activities defined
for a software organization
• Work tasks may vary but the common
process framework (CPF) is invariant (e.g.
size does not matter)
• Software engineer’s task is to estimate the
resources required to move each function
though the framework activities to produce
each work product
5WHH Principle
• Why is the system being developed (Scope) ?
• What will be done ?
• When it will be done (Schedule) ?
• Who is responsible for a function?
• Where are they organizationally located?
• How will the job be done technically and
managerially?
• How much of each resource is needed?
Process
Framework activities populated with
different task sets
 Tasks milestones
 Work products
 Quality assurance points
Umbrella activities like
 Software quality assurance
 Software configuration management
Project
To avoid the problems that jeopardize the
successfulness of the project
 Start on the right foot: understand the problem,
set the realistic objects, & expectations, build
the right team etc.
 Maintain momentum
 Track the progress regularly
 Make smart decisions
 Conduct a postmortem analysis: Establish a
consistent mechanism to extract lessons learnt
for each project
SPM Framework

Includes conduction of all such activities


and tasks that are necessary for
successful completion of the software
project.
Framework Activities
• Customer communication
• Planning
• Risk analysis
• Engineering
• Construction and release
• Customer evaluation
Project Management Tasks
• Project Initiation
• Project Planning
• Project Monitoring
• Project control
• Evaluation Alternatives
• Taking and Communicating Decisions
• Motivating
• Liaison with all concerned
Project Initiation
• Study customer order with care
• Investigate needs/business objectives
• Find constraints and opportunities
• Select development strategy for
considering alternatives
• Revalidate estimates
• Develop and review initial project plan
• Requests for resources
• Organize the team
• Begin the project with a kick-off
Project Kick-off
• Needed for creating a team spirit right-
up-front and for achieving a common
understanding of project requirements
• Following aspects are shared and
discussed
- Customer commitments
- Project plan and milestones
- Risks
- Performance measures
- Inter-group commitments
- Baselines
Who should attend Kick-off

• Project Manager
• Team members
• Steering committee members
• Members of interface groups
• Customer
Project Planning
• Planning is the process of determining a
reasonably detailed way to go from inputs
to outputs (achieving requirements)
• A Project plan specifies the following
- What work will be done
- When will it be accomplished
- Who will do the work
- How will it be done
- How much will it cost
- How will the status be reported
- How will the progress be reviewed
- In general, How will it be managed
Project Plan should include
• Project objectives
• Customer and Management requirements
• Inputs
• Work Breakdown Structure (WBS)
• Deliverable Breakdown Structure
• Acceptance Criteria
• Methodology to be used
• Human Resource Requirements
• Dependencies in the plan
Project Plan Contd…
• Estimation
• Risk Analysis
• Project Organization
• Quality assurance approach
• Customer Feedback
• Periodic Reporting and Reviews
• Other Plans and Attachments
Project Monitoring
• Recording Project Data
- Elapsed time
- Work achieved
- Resource Cost
- Resource expanded
- Other factors such as staff turnover, sickness,
training, breakdowns etc
• Comparison with Budget vs Actual
- Cost, Schedule, Resources
• Project reporting
- Product factors
- People factors
- Process factors
- Resource factors
- Environment factors
Project Control
• Types of Review Meetings
- Internal project meetings
- Project steering meetings
- Customer review meetings
- Issue resolution meetings
• Project Evaluation
- Deviation due to performance
- Deviation due to changed objectives
- Risk management issues
• Corrective Actions for Better Results
- Justification of project existence
- Realloaction of resources
- Rescheduling
- Overtimes and costs
Project Liaison

Customer

Steering
Quality
Committee

Supplier Training
Project
Manager

Team
Finance
Members

Resources Legal
A Typical Project Organization

Steering Committee
Customer

Project Manager

Development Team Configuration Team


Quality Team Leader
Leader Leader

Team Members
Project Responsibilities
(Customer)
• Giving requirements and requirement
clarifications
• Providing agreed inputs such as
acceptance criteria, test data, etc.
• Accepting deliverables
Project Responsibilities
(Steering Committee)

• Reviewing and approving


- Project plan (estimations, costs, schedules)
- Requirements change requests
• Reviewing the project status
• Resolving the project issues
Project Responsibilities
(Project Manager)
• Initiating the project
• Understanding project requirements
• Planning, estimation and scheduling of
the project
• Identifying training needs and planning
for training
• Accepting project inputs
• Moderating work-products (from review
and testing)
Project Responsibilities
(Project Manager)- Contd…
• Reporting, monitoring and reviewing
status
• Resolving issues
• Maintaining action log
• Liaison with customer and seeking
feedback
• Releasing deliverables
• Closing of project
Project Responsibilities
(Development Team Leaders)

• Understanding system requirements


• Defining requirements
• Performing high level design
• Delivering work products
• Reporting status and resolving issues
• Ensuring project filing
Project Responsibilities
(Quality Team Leader)

• Upholding organizational policies


• Adhering to project methodologies
• Performing review and test
Project Responsibilities
(Configuration Team Leader)

• Controlling configuration library


• Enforcing change control
• Approving change requests
• Holding custody of change requests
• Doing change impact analysis
• Making customer release

You might also like