Software Project Management

advertisement
SOFTWARE
PROJECT
MANAGEMENT
By DR.S.Santhosh baboo
PROJECT:
The dictionary definition put a clear
emphasis on the project being a planned activity
The characteristic which distinguish project
as
Non routine task are involved
Planning is required
Specific objectives are to be met
Work is carried out for someone other than
yourself
Work involves several specialisms
Work is carried out in several phases
The project is large
The resources are available for use on the
project are constrained
MANAGEMENT:
Management involves following activities:
Planning –deciding what to be done
Organizing-making arrangement
Staffing-selecting right people for right job
Directing-giving instruction
monitoring-checking on progress
Controlling-taking action to remedy holdups
Innovating-coming up with new solution
Representing-liasing with clients, users,
developers, suppliers and stakeholders
MANAGING SOFTWARE
PRODUCT:
Worldwide, some half a million project
managers execute about a million software projects
each year, producing software worth $600 billion.
Many of these projects fail to fulfill customers‘
quality expectations or fail to deliver the software
within budget and on schedule. One analysis
suggests that1about one-third of projects have cost
and schedule overruns of more than 125%.
Why do so many software projects fail?
Although there are many reasons, one of the
most important is improper management of the
project.
PROCESS AND
MANAGEMENT CONCEPTS:
A software project has two main activity
dimensions: engineering and project management.
The engineering dimension deals with building the
system and focuses on issues such as how to
design, test, code, and so on. The project
management dimension deals with properly
planning and controlling the engineering activities
to meet project goals for cost, schedule, and
quality.
PROJECT MANAGEMENT
PROCESS:
For a project team to successfully execute a
project, it must perform hundreds of tasks, many
of them interdependent. Effectively managing this
process is extremely important for success. At
software companies, the set of activities executed
by a project manager is specified in the project
management process.
It is fairly standard, having three main stages:
Project planning
Project execution
Project closure
PROBLEM WITH
SOFTWARE PROJECT:
 Poor estimation and plain
 Lack of quality of standard and measurement
 Lack of guidance about making organizational
decisions
 Lack of techniques to make process visible
 Poor roll definition
STAKEHOLDERS:
people who are having a stake or interest in
the project. It is important that they be identified
as possible, be cause you need to communicate
channel with right from the start.
REQUIRED
SPECIFICATION:
 Functional requirement
 Quality requirement
 Resource requirement
STEP WISE PROJECT
PLANNING:
0.Select Project
1.Identify scope and
objectives
2.Identify project
infrastructure
3.Analyse project
characteristics
4.Identify products
and activities
5.Estimate effort for
each activity
6.Identify activity risks
7.Allocate resources
8.Review plan
9.Execute plan
STEP 0:
select the project
Step 1:
 Identify the project scope
and objectives.
identify the object and measurement of
effectiveness in meeting them.
establish a project authority
identify stake holders
Step 2:
Identify the project infrastructure
Establish relationship between project
and strategic planning
Identify installation standards and
procedure
Identify the project team organization
Step 3:
Analyses the project characteristic
Distinguish the project as either objective or
product driven
Analyses other project characteristic
Identify the high level project risk
Take into account user requirements
concerning implementation
Select general life cycle approach
Review overall resource estimation
Step 4:
identify the product and the activities
Identify and describe project products
Document the generic product flows
Recognize the product instance
Product deal activities network
Modify deal to take into account need
for stages and check point
Step 5:
estimate effort for each activities
Carryout the bottom up estimation
Revise plan to create controllable
activities
Step 6:
identify the activity risk
Identify and describe quantify activity
based risks
Plan risk reduction and contingency
measures where appropriate
Adjust plans and estimates to take
account of risks
Step 7:
Allocate resources
Identify and allocate resources
Revise plans and estimates to take
account of resource constraints
Step 8:
Review/publicize plan
Review quality aspects of project plan
Document plans and obtain agreement
Step 9/10:
Execute plan/lower level of planning
This may require the reiteration of the
planning process at a lower level.
SELECT THE PROJECT:
 Deciding whether the project can be taken up or
not
 Technical,Organizational and Financial
Feasibility is considered
 Programme Management Group of projects
managed in a coordinated way to gain benefits.
DIFFERENT FORM OF
PROGRAMME:
 Strategic Programmes
 Business cycle programmes
 Research and development programmes
PROGRAM MANAGEMENT
AND PROJECT
EVALUATION :
Program management
Managing the allocation of resources within
programs
Strategic program management
Creating a program
Aids to programme management
Beneficial management
Technical assessment
Evaluation of individual projects Cast-benefit
analysis
Cash flow forecasting
Cost benefit evaluation techniques
Risk evaluation
STRATEGIC PROGRAMMES:
 Several projects implement single strategy]
 Two Organizations  Unified Payroll
 The Projects are coordinated and done according
to the strategy
BUSINESS CYCLE
PROGRAMMES:
 Specific budget for the projects
 If one project is delayed, staff from other team
can be used and resources also can be used
RESEARCH AND DEVELOPMENT
PROGRAMMES:
 New innovative ideas to develop new products
 High risk if successful result is good
CREATING A PROGRAMME:
 The Programme Mandate
 The Programme Brief
 The Vision Statement
 The Blue Print
THE PROGRAMME
MANDATE:
Formal document describing
New services programme should deliver
How organization will be improved by
new services
Programme director provides initial
leadership
THE PROGRAMME BRIEF:
 Information sufficient to decide about
project(vision statement)
 Estimates cost,performance and risk
BLUE PRINT:
 Organizational structure(staffs and skills)
 Resources
 Data and information requirements
IDENTIFY PROJECT SCOPE
AND OBJECTIVES:
Scope and Objectives of the project are
Constraints
Meet requirements
Cost control
Identify stake holders and their interest
Communication
IDENTIFY PROJECT
INFRASTRUCTURE:
 Project should fit in existing infrastructure
 Project manager should have full control over the
project
 Project Manager should be aware of Project
planning and control
SELECTION OF AN
APPROPRIATE PROJECT
APPROACH:
Choosing technologies
Technical plan contents list
Choice of process models
Structure versus speed of delivery
The waterfall model
Spiral model
Software prototyping
Incremental delivery
Dynamic system development
Extreme programming
Managing iterative processes
Selecting a most appropriate process model
PROJECT ANALYSIS:
 Outcome of analysis will be selection of most
appropriate methodologies and technologies
 Methodologies(Unified Software Development
Process (USDP), Structured system analysis and
design methods (SSADM))
 Technologies(Environments , Software etc)
STEPS IN PROJECT
ANALYSIS:
Identify project as either objective driven or product
driven
Analyses Project Characteristics
Data driven or Process driven
General tool or application specific
Specific tools available(Graphics etc)
Hardware and software environment
Entertaining games or servicing
CHOICE OF PROCESS
MODELS:
 The activities can be organized in different ways
known as models(Process Models)
 The various models are
Waterfall Model
V Process Model
Spiral Model
WATER FALL MODEL:
Feasibility study
User Requirements
Analysis
System design
Program design
Coding
Testing
Operation
V-PROCESS MODEL:
User acceptance
Feasibility study
User acceptance
User requirements
System design
System testing
Program design
Code
Program testing
SOFTWARE EFFORT
ESTIMATION:
 The definition of successful project is
delivering the project on correct time within
the budget at good quality
 Hence estimation such as Lines of
Code,Number of months have to be done
 Estimates are carried out at various stages of
the project
BASIS FOR SOFTWARE
ESTIMATION:
 Need of historical data(past projects)
 Measure of work(Lines of code)
 Complexity(varies with the project)
EFFORT ESTIMATION
TECHNIQUES:
 Function point method
 Empirical model method
FUNCTION POINT METHOD:
 The measures are collected by means of various
functions such as
 Number of user inputs
 Number of user outputs
 Number of user inquiries
 Number of files
 Number of external interfaces
EMPIRICAL MODEL METHOD:
Cocomo Model(COnstructive COst MOdel)
This model deals with sizing information such as
number of screens, number of reports etc.
The Productivity rate is determined from which the
effort in months is calculated
RISK MANAGEMENT










Risk
Categories of risk
A framework for dealing with risk
Risk identification
risk assessment
Risk planning
Risk management
Evaluating risk to scheduling
Critical chain concepts
conclusion
RISK MANAGEMENT:
 Risk is an uncertain event or condition that if
occurs has positive or negative effect on a
project’s objectives
 Key elements of risk are
 1. It relates to the future
 2. It involves cause and effect (Cost, Staff)
CATEGORIES OF RISK:
 Project Risk(Objectives)
 Business Risk(Cost)
 Social Technological
Risk(Staff,Technology,Tasks)
RISK DEALING:
 Risk Identification
 Risk Analysis and Prioritization
 Risk Planning
 Risk Monitoring
RISK IDENTIFICATION:
 Use of Checklists and Brainstorming
 Checklists refer to the number of risks that occur
regularly in development of project
 Brainstorming uses stakeholders to identify risks
and find a solution to the problems
CHECKLISTS:
Risk
1.Personnel shortfalls
2.Unrealistic time and cost estimates
3.Late changes to requirements
4. Technical problem
5.Developing wrong software functions
BRAINSTORMING:
 The stakeholders together identify the risks and
identify possible solutions to overcome the risk.
 The main stakeholders are considered for risk
identification
RISK ANALYSIS AND
PRIORITIZATION:
The risk is potentially endless hence the risk
exposure should be calculated by the following
formula
Risk Exposure=Potential damage*Probability
of occurrence
The risk exposure can be calculated for all sort of
risks in the checklist
RISK PLANNING:
 The risks are identified and prioritized, then
decision should be taken to deal with the risk
 The choices are
1.Risk Acceptance
2.Risk Avoidance
3.Risk Reduction and Mitigation
4.Risk Transfer
RISK PLANNING:
 Risk Acceptance  Some risks can be ignored,
some risks have to be solved
 Risk Avoidance  The risks should be avoided
before itself(Staff,Technology etc)
 Risk Reduction Take precautions to reduce the
risk
 Risk Transfer  The project can be transferred to
other organization who are experienced
RISK MONITORING:
 The steps for risk reduction should be
implemented and monitored in this stage
 The Project Manager should monitor the risks
carefully by means of documents and register it.
 The evaluation of risk management should be
done to see how the risk is reduced.
RESOURCE ALLOCATION:
 Nature of resources
 Identifying resource requirements
 Scheduling resources
 Creating a critical path
 Counting the cost
 Being specific
 Publishing the resource scheduling
Cost schedules
The scheduling sequence
conclusion
RESOURCE ALLOCATION:
The resource is an item or staff required to
complete a project.
The various categories of resources are
1.Labour
2.Equipment
3.Materials
4.Space
5.Services
6.Time
7.Money
IDENTIFYING RESOURCE
REQUIREMENTS:
 Resource allocation plan to know about the
demand
 Each activity is considered to identify the
resources allocated
SCHEDULING RESOURCES:
 The resources are scheduled according to the
priority.The resource which is needed
immediately is allocated first
 The resource scheduling is done according to the
modules
 The resource availability is seen and then only
scheduled.
8.MONITORING AND
CONTROL:
 Creating the framework
 Collecting a data
 Visualizing process
 Cost monitoring
 Earned value analysis
 Prioritizing monitoring
 Getting a project back to target
 Change control
 conclusion
MONITORING AND MANAGE
CONTROL:
 The progress of the project is monitored as it is
under the way after resource allocation
 The control is established through the project
control cycle
The steps in the cycle are
Start
Publish initial plan
Gather project information
Compare progress vs targets
If satisfactory continue else revise and start from
step 3
If project completed continue else goto step 3
End project and review
Give document conclusions
CATEGORIES OF
REPORTING:
 Oral Formal Regular(Weekly Meetings)
 Oral Formal AdHoc(End stage Revies)
 Written Formal Regular(Jobsheets,Progress
Reports)
 Written Formal AdHoc(Change Reports)
GUIDELINES:
• Risk Management
• Cost Management
• Resource Management
MANAGING CONTRACT:
 The ISO12207 approach to the acquisition and
supply of software
 The supply process
 Types of contract
 Stages in contract placement
 Typical terms of contract
 Contract management
 Acceptance
 conclusion
MANAGING PEOPLE AND
ORGANIZING TEAMS:
 Understanding behavior
 Organization behavior
 Selecting a right person for right
job
 Instruction in best methods
 Motivation
 Working in groups
 Becoming a team
 Decision making
 Leadership
 Organizational structures
RECRUITMENT PROCESS:
 Create a job specification(Requirements)
 Create a job holder profile
 Obtain Applicants(Advertisement)
 Examine CV`s
 Conduct of Interviews
 Other Procedures(Medical Examination)
ORGANIZING TEAMS:





The stages of development for forming a team
Forming(Know each other,stick on to rules)
Storming(Method of operation to avoid conflicts)
Norming(Group entity settled and no conflicts)
Performing(Tasks emphasized)
Adjourning(Group starts their work)
SOFTWARE QUALITY:
 The place of software quality in
project planning
 Importance of software quality
 Defining a software quality
 Practical software quality
measure
 Product versus process quality
management
 External standards
 Techniques to help enhance software quality
 Quality plan
 conclusion
SOFTWARE QUALITY:
 Quality is defined as “How well the project
performs as we have planned”
 Quality is concerned at various stages of planning
and execution
SOFTWARE QUALITY
MEASURES:
 Reliability
 Maintainability
 Extendibility
SOFTWARE QUALITY
MANAGEMENT SYSTEM:
– Quality Assurance
• Through this process an org. establishes
procedures and standards that lead to the
development of high quality software
– Quality Planning
• Involves selection of appropriate procedures and
standards for a project that will deliver quality
software
• Sets the direction for the quality process- without
clear spec. regarding desired quality of the
product
– Quality Control
• Ensures that selected procedures are
followed throughput the project.
MEASURING SOFTWARE
QUALITY:
 The first step towards measurement is to identify
software metrics
 Metrics is defined as ‘a quantitative measure of
the degree to which a system, component or
processes a given attribute’ –i.e., It involves
collection of data over a period of time that gives a
measure of performance
Three reasons for which you need to measure a
software system:
 To determine the quality of the product and
development process in relation to expected
standards.
 To predict the qualities that the product will
exhibit in future in relation to expected standards
 To improve the quality of the product and the
process that produced it
WHAT ARE SOFTWARE
REVIEWS? WRITING THE
SOFTWARE SPECIFICATION
Everyone knew exactly
what had to be done
until someone wrote it
down!
OBJECTIVES OF REVIEWS:
 Uncover errors in any representation of software
 Verify that
software meets its requirements
software follows predefined standards
software is developed in uniform manner
 Make projects more manageable
 Educate new team members
HOW TO CARRY OUT
REVIEWS:
THE REVIEW TEAM
producer
review
leader
reviewer(s)
recorder
BASIC GUIDELINES (1)
 3-6 people (typical)
experienced senior technical staff
representatives of
team that created the document
client representative
team for next development phase
software quality assurance group
 IEEE Standard for Software Reviews and Audits
[IEEE 1028, 1988]
BASIC GUIDELINES (2)
 Review leader should be SQA representative
has the most to lose
creator: eager to get approval (to start next job)
client: can wait for acceptance testing
 Review leader distributes material
 Advance preparation of max. 2 hours before the
meeting
 Duration: less than 2 hours
RESULT OF A REVIEW:
 Decision about the product
accept without further modification
reject the work due to severe errors (review
must be repeated)
accept with minor modifications (that can be
incorporated into the document by the
producer)
 All participants have to sign-off
shows participation responsibility
shows their concurrence with the findings
REVIEWER’S PREPARATION:
 be sure that you understand the context
 first, skim all the product material to understand
location and format of the information
 next, read product material and annotate hardcopy
 pose your written comments as questions
 avoid issues of style
 inform the review leader if you can’t prepare
CONDUCTING THE REVIEW
 Be prepared - evaluate product before review
 develop check list for each kind of work product
 review the product, not the producer
 keep your tone mild, ask questions instead of
making accusations
 stick to the review agenda
 raise issues, don’t resolve them!
 limit discussions (do them off line!)
 avoid discussions of style - stick to technical
correctness
 schedule reviews as project tasks (allocate
resources)
 record and report all review results
QUALITY MANAGEMENT
SYSTEM
•
•
•
•
•
•
•
•
Processes
Standards
Techniques
Guidelines
Templates
Checklists
Forms
Document structure and Update Prcedure
QUALITY MODEL
 ISO 9000 Model
 Software Engineering Institute Model
ISO 9000 STANSARDS:
 ISO 9000 : model for qlty. assurance in
design/development, production, installation and
servicing
 ISO 9002 : model for qlty. assurance in production
and installation
 ISO 9003 : model for qlty. assurance in final
inspection and test
ISO 9000
 ISO (international Standards Organization):
– Consortium established to formulate and foster
standardization.
 ISO published its 9000 series of standards in 1987.
What is ISO 9000 Certification?
 ISO 9000 certification:
serves as a reference for contract between
independent parties.
 The ISO 9000 standard:
specifies guidelines for maintaining a quality
system.
 ISO 9000 specifies:
guidelines for repeatable and high quality
product development.
Also addresses organizational aspects
responsibilities, reporting, procedures,
processes, and resources for implementing
quality management.
ISO 9000 Certification
 An ISO certified organization
can use the certificate for corporate
advertisements
cannot use the certificate to advertise products.
ISO 9000 certifies organization's process
not any product of the organization.
An organization using ISO certificate for
product advertisements:
risks withdrawal of the certificate.
Summary of ISO 9001
Requirements:
 Management responsibility(4.1):
Management must have an effective quality
policy.
The responsibility and authority of all those
whose work affects quality:
 must be defined and documented.
Management responsibility:
 Responsibility of the quality system.
independent of the development process,
can work in an unbiased manner.
 The effectiveness of the quality system:
must be periodically by audited.
Quality system and contract
reviews
 A quality system must be maintained and
documented.
 Contract reviews (4.3):
Before entering into a contract, an organization
must review the contract
ensure that it is understood,
organization has the capability for carrying
out its obligations.
Design control:
 The design process must be properly controlled,
this includes controlling coding also.
 A good configuration control system must be in
place.
 Design inputs must be verified as adequate.
 Design must be verified.
 Design output must be of required quality.
 Design changes must be controlled.
Document control:
 Proper procedures for
document approval, issue and removal.
 Document changes must be controlled.
use of some configuration management tools is
necessary.
Process Control:
 The development must be properly managed.
 Quality requirements must be identified in a
quality plan.
Inspection and Testing:
In software terms this requires effective
testing i.e.,
unit testing, integration testing and system
testing.
Test records must be maintained.
Corrective Action:
 This is both about correcting errors when found,
investigating why they occurred
improving the process to prevent further
occurrences.
 If an error reoccurs despite the quality system,
the system needs improvement.
Handling and Quality audits:
 Handling Deals with:
storage, packing, and delivery of the software
product.
 Quality Audits :
quality system audit must be carried out to
ensure its effectiveness.
Salient features of ISO 9001
requirements:
 All documents concerned with the development of
a software product
should be properly managed, authorized, and
controlled.
 Proper plans should be prepared
progress against these plans should be
monitored.
 Important documents independently checked and
reviewed:
 for effectiveness and correctness.
 The product should be tested :
against specification.
 Several organizational aspects:
e.g., management reporting of the quality team.
Shortcomings of ISO 9001
Certification:
 ISO 9000 requires a production process to be
adhered to:
but does not guarantee the process to be of high
quality.
Does not give any guideline for defining an
appropriate process.
Shortcomings of ISO 9001
Certification:
 ISO 9000 certification process
not fool-proof
no international accreditation agency exists.
likely variations in the norms of awarding
certificates:
among different accreditation agencies and
among the registrars.
SEI Quality Process
 Initial Level
 Repeatable Level
 Defined Level
 Managed Level
 Optimizing Level
SEI Capability Maturity Model:
 The SEI CMM classifies software development
industries into:
Five maturity levels.
Stages are ordered so that improvements at one
stage provide foundations for the next
Based on the pioneering work of Philip Crosby
SEI Capability Maturity Model:
Optimizing (5)
Managed (4)
Defined (3)
Repeatable (2)
Initial (1)
Level 1: (Initial)
 Organization operates
without any formalized process or project plans
 An organization at this level is characterized by
ad hoc and often chaotic activities.
Level 1: (Initial)
 Software production processes are not defined,
different engineers follow their own process
development efforts become chaotic.
The success of projects depend on individual
efforts and heroics.
Level 2: (Repeatable)
 Basic project management practices
tracking cost, schedule, and functionality are
followed.
 Size and cost estimation techniques
function point analysis, COCOMO, etc. used.
 Production process is ad hoc
not formally defined
also not documented.
 Process used for different projects might vary
between projects:
earlier success on projects with similar
applications can be repeated.
Opportunity to repeat process exist when a
company produces a family of products.
Level 3: (Defined)
 The process though defined,
process and product qualities are not measured.
 ISO 9001 aims at achieving this level.
 Management and development activities:
defined and documented.
Common organization-wide understanding of
activities, roles, and responsibilities.
Level 4: (Managed)
 Quantitative quality goals for products are set.
 Software process and product quality are
measured:
The measured values are used to control the
product quality.
Results of measurement used to evaluate
project performance
rather than improve process.
 Organization sets quantitative quality goals
 World-wide about 100 organizations assessed at
this level.
Level 5: (Optimizing)
 Statistics collected from process and product
measurements are analyzed:
continuous process improvement based on the
measurements.
Known types of defects are prevented from
recurring by tuning the process
lessons learned from specific projects
incorporated into the process
 Identify best software engineering practices and
innovations:
 tools, methods, or process are identified
transferred throughout the organization
 World-wide about 50 organizations have been
assessed at this level.
Key Process Areas
 Each level is associated with a key process area
(KPA) identifies
where an organization at the previous level
must focus to reach this level
Level 2 KPAs
 Software project planning
Size, cost, schedule.
project monitoring
 Configuration management
 Subcontract management
Level 3 KPAs
 Process definition and documentation
 Reviews
 Training program
Level 4 KPAs
 Quantitative measurements
 Process management
Level 5 KPAs
 Defect prevention
 Technology change management
 Process change management
CONCLUSION
 Hence the stepwise planning is necessary to
make the software project management
successful
Download