Download Project Management

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Phase-gate process wikipedia , lookup

Construction management wikipedia , lookup

PRINCE2 wikipedia , lookup

Software development wikipedia , lookup

Transcript
EKT 421
SOFTWARE ENGINEERING
Project Management
Dr. Nik Adilah Hanin Zahri
[email protected]
Today’s Topics
•
•
•
•
•
Software Project Management
Project Planning
Project Scheduling
Risk management
Managing People
2
Software Project Management
• Project managements concerned with the
following:
– Ensure the software is in accordance with the
requirements by the customer
– Ensure on time/schedule delivery
• Essential because software development is
subject to budget and schedule constraints
by the software developer
3
Success Criteria
• Deliver the software to the customer at the
agreed time
• Keep overall costs within budget
• Deliver software that meets the customer’s
expectations
• Maintain a happy and well-functioning
development team
4
Software Management Distinctions
• The product is intangible
– Software cannot be seen or touched, therefore the development
progress cannot simply be seen
• Many software projects are 'one-off' projects
– Large software projects are usually different in some ways from
previous projects
– Even managers with lots of experience may find it difficult to
anticipate problems
• Software processes are variable and organization specific
– Difficult to predict particular software process that leads to
development problems
5
Management Activities
1. Proposal writing
 Proposal writing includes the objective and
development process of the project to win a contract
2. People management
 Project managers have to choose team members and
establish effective ways of working to increase team
performance
3. Project planning
 Project managers are responsible for planning,
estimating and scheduling project development and
assigning members to tasks
6
Management Activities
4. Reporting
 Project managers are usually responsible for
reporting on the progress of a project to
customers and to the managers of the company
developing the software
5. Risk management
 Project managers assess the risks that may affect a
project, monitor these risks and take action when
problems arise
7
Project Planning
8
Project Planning
• Project planning involves
i.
breaking down the work and assigning each
task to project team members
ii. anticipating problems that might arise and
prepare tentative solutions to those problems
• The project plan is used to
– describe the work flow done to the project team
and customers
– help assess progress on the project
9
Planning Stages
1. Proposal stage
– bidding for a contract to develop or provide a
software system
2. Project startup phase
– assigning member for each tasks, planning
development process (plan-driven/agile) and resource
allocation etc
3. Periodically throughout the project
– modifying plan in the light of experience gained and
information from monitoring the progress of the work
10
Software Pricing
• Estimation are made to discover the cost of
producing a software system
– Includes hardware, software, travel, training and
effort costs
• Broader organisational, economic, political
and business considerations influence the
software pricing
11
Factors Affecting Software Pricing
Factor
Description
Market
opportunity
A development organization may quote a low price because it wishes to
move into a new segment of the software market.
The experience gained may also help it develop new products.
Cost estimate
uncertainty
Cost estimate uncertainty will cause the increasing price by a contingency
over and above its normal profit.
Contractual
terms
A customer may be willing to allow the developer to retain ownership of the
source code and reuse it in other projects, which will decrease the pricing
Requirements
volatility
If the requirements are likely to change, an organization may lower its price
to win a contract. After the contract is awarded, high prices can be charged
for changes to the requirements.
Developers in financial difficulty may lower their price to gain a contract. It is
Financial health better to make a smaller than normal profit or break even than to go out of
business. Cash flow is more important than profit in difficult economic times.
12
Plan-Driven Development
• Plan-driven (plan-based )
approach to software engineering where the
development process is planned in detail
• the ‘traditional’ way of managing large
software development projects
13
Plan-driven Development :
Pros and Con
Pros
Contra
1. Allows organizational
1. Many early decisions
issues (availability of
have to be revised
staff, other projects,
because of changes to
etc.) to be closely taken
the environment where
into account
the software is
developed and used.
2. Potential problems and
dependencies are
discovered before the
project starts
14
Agile Planning
• Agile software development
– iterative approaches where the software is developed
and delivered to customers in increments
• The functionality of these increments is not
planned in advance but is decided during the
development
– depends on progress and on the customer’s priorities
• The customer’s priorities and requirements
change
– need to have a flexible plan that can accommodate
changes
15
Project Plans
• In a plan-driven development project, a project plan sets
out the resources available to the project, the work
breakdown and a schedule for carrying out the work
• Plan sections
1.
2.
3.
4.
5.
6.
7.
Introduction (Objective and constraints etc. descriptions)
Project organization
Risk analysis
Hardware and software resource requirements
Work breakdown
Project schedule
Monitoring and reporting mechanisms
17
Project Plan Supplements
Plan
Description
Quality plan
Describes the quality procedures and standards that
will be used in a project.
Validation plan
Describes the approach, resources, and schedule
used for system validation.
Configuration management
plan
Describes the configuration management procedures
and structures to be used.
Maintenance plan
Predicts the maintenance requirements, costs, and
effort.
Staff development plan
Describes how the skills and experience of the project
team members will be developed.
18
The Planning Process
<<system>>
Project
Planner
[project
finished]
[unfinished]
Identify
Constraints
Do the
Work
Identify
Risks
Define
Milestones
and
Deliverables
[no problem]
Define Project
Schedule
Monitor
Progress
Against Plan
[serious
problem]
[minor problems and slippages]
Initiate Risk
Mitigation Actions
Replan
Project
19
20
Project Scheduling
• Project scheduling is the process of deciding:
i. time and effort needed to complete each task
ii. team members who will work on the each tasks
iii. resource estimation to complete each task
- disk space required on a server, specialized hardware or
the travel budget
21
Project Scheduling Activities
1. Split project into tasks and estimate time and
resources required to complete each task
2. Organize tasks concurrently to make optimal
use of workforce
3. Minimize task dependencies to avoid delays
caused by one task waiting for another to
complete
Dependent on project managers intuition and
experience
22
Milestones and Deliverables
• Milestones are points in the schedule against
which you can assess progress
– e.g. the handover of the system for testing
• Deliverables are work products that are
delivered to the customer
– e.g. requirements document for the system
23
Project Scheduling Process
Identify
activities
Identify
activities
dependencies
Estimate
resources for
activities
Create project
charts
Allocate
people to
activities
Software requirements
and design information
Bar chart describing the
project schedule
24
Scheduling Problems
• Estimating the difficulty of problems and the
cost of developing a solution is hard
• Productivity is not proportional to the number
of people working on a task
• Adding people to a late project makes it later
because of communication overheads
• The unexpected always happens
– Should have contingency in planning
25
Schedule Representation
• Graphical notations are normally used to
illustrate the project schedule
– show each tasks in the project
– each task should take about a week or two
• Bar charts are the most commonly to show
project schedules
– activities or resources against time
26
Activity Bar Chart
27
Staff Allocation Chart
28
Task
Effort (persondays)
Duration (days)
T1
15
10
T2
8
15
T3
20
15
T4
5
10
T5
5
10
T2, T4 (M3)
T6
10
5
T1, T2 (M4)
T7
25
20
T1 (M1)
T8
75
25
T4 (M2)
T9
10
15
T3, T6 (M5)
T10
20
15
T7, T8 (M6)
T11
10
10
T9 (M7)
T12
20
10
T10, T11 (M8)
Dependencies
T1 (M1)
29
31
Risk Management
• Risk management is concerned with
i.
ii.
identifying risks
drawing up plans to minimise the risk effect
• Type of risks:
i.
Project risks which will affect the schedule or
resources
ii. Product risks which will affect the quality or
performance of the software
iii. Business risks which will affect the organisation
developing or procuring the software
32
Examples of Project, Product and
Business Risks
Risk
Affects
Description
Staff turnover
Project
Experienced staff leaving the project before it is finished
Management change
Project
Change of organizational management with different
priorities
Hardware
unavailability
Project
Essential hardware for the project is not delivered on
schedule
Requirements change
Project , Product
Larger number of changes to the requirements than
anticipated
Specification delays
Project ,Product
Specifications of essential interfaces are not available on
schedule
Size underestimate
Project ,Product
The size of the system has been underestimated
CASE tool
underperformance
Product
CASE tools, which support the project, do not perform as
anticipated
Technology change
Business
The underlying technology on which the system is built is
superseded by new technology
Product competition
Business
A competitive product is marketed before the system is
completed
33
Risk Management Process
4. Monitor the
risks throughout
the project
1. Identify project,
product and
business risks
2. Assess the
likelihood and
consequences
of these risks
3. Draw up plans
to avoid or
minimise the
effects of the
risk
1. Risk
Identification
2. Risk
Analysis
3. Risk
Planning
4. Risk
Monitoring
List of potential
risk
Prioritized risk
list
Risk avoidance
and contingency
plans
Risk assessment
34
1. Risk Identification
• Might be a team activities or based on the
individual project manager’s experience
• A checklist of common risks may be used to
identify risks in a project
–
–
–
–
–
Technology risks
People risks
Organisational risks
Requirements risks
Estimation risks
35
Examples of Project Risks
Risk type
Possible risks
Technology
The database performance is lower than expected.
Reusable software components cannot be reused as planned.
People
It is impossible recruit staff with the skills required.
Key staff are ill and unavailable at critical times.
Required training for staff is not available.
Organizational
Restructure of organization to comply with different management of the
project.
Organizational financial problems force reductions in the project budget.
Tools
The code generated by software code generation tools is inefficient.
Software tools cannot work together in an integrated way.
Requirements
Changes to requirements that require major design rework are proposed .
Customers fail to understand the impact of requirements changes.
Estimation
The time required to develop the software is underestimated.
The rate of defect repair is underestimated.
The size of the software is underestimated.
2. Risk Analysis
• Assess probability and seriousness of each risk
• Risk probability level :
Very low
Low
Moderate
High
Very high
• Risk consequences might be catastrophic,
serious, tolerable or insignificant
37
Risk Probability Levels and Effects
Risk
Probability
Effects
Organizational financial problems force reductions in the
project budget .
Low
Catastrophic
It is impossible to recruit staff with the skills required.
High
Catastrophic
Key staff are ill at critical times in the project .
Moderate
Serious
Faults in reusable software components have to be repaired
before these components are reused.
Moderate
Serious
Changes to requirements that require major design rework
are proposed .
Moderate
Serious
Restructure of organization to comply with different
management of the project.
High
Serious
Moderate
Serious
The database performance is lower than expected.
38
Risk Probability Levels and Effects
Risk
Probability
Effects
The time required to develop the software is
underestimated .
High
Serious
Software tools cannot be integrated .
High
Tolerable
Customers fail to understand the impact of requirements
changes .
Moderate
Tolerable
Required training for staff is not available .
Moderate
Tolerable
The rate of defect repair is underestimated .
Moderate
Tolerable
The size of the software is underestimated .
High
Tolerable
Moderate
Insignificant
Code generated by code generation tools is inefficient .
39
3. Risk Planning
• Consider each risk and develop a strategy to
manage that risk
• Type of strategies
i.
Avoidance strategies
 to reduce the probability that the risk will arise
ii. Minimization strategies
 to reduce the impact of the risk on the
project/product
iii. Contingency plans
 strategies to deal with arise risks
40
Strategies for Risk Management
Risk
Type of
Strategy
Strategy Description
Short staff due
to illness
Avoidance
strategy
Reorganize team so that there is more overlap of
work and people therefore understand each other’s
jobs.
Defective
components
Avoidance
strategy
Replace potentially defective components with
bought-in components of known reliability.
Recruitment
problems
Alert customer to potential difficulties and the
Minimization
possibility of delays; investigate buying-in
strategy
components.
Underestimate
Minimization Investigate buying-in components; investigate use of
d development
strategy
a program generator.
time
41
Strategies for Risk Management
Risk
Type of
Strategies
Strategy Description
Low database
performance
Contingency
plan
Investigate the possibility of buying a higherperformance database.
Requirements
changes
Contingency
plan
Derive traceability information to assess
requirements change impact; maximize
information hiding in the design.
Contingency
plan
Prepare a briefing document for senior
management showing the importance of the
project and explaining the reasons why cuts
to the project budget would not be costeffective
Contingency
plan
Prepare a briefing document for
management showing that the project is
making a very important contribution to the
business.
Organizational
financial
problems
Organizational
restructuring
4. Risk Monitoring
• Assess each identified risks regularly to
decide whether or not it is becoming less or
more probable
• Also assess whether the effects of the risk
have changed
• Each key risk should be discussed at
management progress meetings
43
Project Risk Indicators
Risk type
Potential indicators
Technology
Late delivery of hardware or support software; many reported
technology problems.
People
Poor staff morale; poor relationships amongst team members;
high staff turnover.
Organizational
Organizational gossip; lack of action by senior management.
Tools
Reluctance by team members to use tools; complaints about
CASE tools; demands for higher-powered workstations.
Requirements
Many requirements change requests; customer complaints.
Estimation
Failure to meet agreed schedule; failure to clear reported
defects.
44
45
Managing People
• People are an organisation’s most important
assets
• The tasks of a manager are essentially peopleoriented
• Poor people management is an important
contributor to project failure
46
People Management Factors
• Consistency
– Team members should all be treated in a comparable way without
favourites or discrimination
• Respect
– Different team members have different skills and these differences
should be respected
• Inclusion
– Involve all team members and make sure that people’s views are
considered
• Honesty
– You should always be honest about what is going well and what is
going badly in a project
47
Motivating People
• Manager’s role is to motivate the people working
on a project
• Motivation means organizing the work and the
working environment to encourage people to
work effectively
– If people are not motivated, they will work slowly, and
more likely to make mistakes
• Different types of motivation based on:
– Basic needs (e.g. food, sleep, etc.)
– Personal needs (e.g. respect, self-esteem)
– Social needs (e.g. to be accepted as part of a group)
48
The Effectiveness of A Team
• Group composition
– Need a mix of people in a project group as software
development involves diverse activities such as negotiating
with clients, programming, testing and documentation
• Group organization
– A group should be organized so that individuals can
contribute to the best of their abilities and tasks can be
completed as expected
• Technical and managerial communications
– Good communications between group members, and
between the software engineering team and other project
stakeholders, is essential
50
Group Composition
• Group composed of members who share the
same motivation can be problematic
– Task-oriented - everyone wants to do their own thing
– Self-oriented - everyone wants to be the boss
– Interaction-oriented - too much chatting, not enough
work
• An effective group has a balance of all types
• This can be difficult to achieve software engineers
are often task-oriented
• Interaction-oriented people are very important as
they can detect and defuse tensions that arise
51
Group Organization
• The way that a group is organized affects the
– decisions that are made by that group
– ways that information is exchanged
– interactions between the development group and
external project stakeholders
• Small software engineering groups are usually
organised informally without a rigid structure
• For large projects, there may be a hierarchical
structure where different groups are responsible
for different sub-projects
52
Key Points
• Good project management is essential for software
engineering projects to be developed on schedule and within
budget
• Software is intangible. Projects may be novel or innovative
with no body of experience to guide their management.
• Risk management involves identifying and assessing project
risks to establish the probability that they will occur and the
consequences and contingency plan for the project if that risk
does arise.
55
Key Points
• The price charged for a system does not just depend on its
estimated development costs but also depends on the market
and organizational priorities
• Plan-driven development is organized around a complete
project plan (includes the project activities, the planned
effort, the activity schedule and task assignment to team
members)
• Project scheduling usually is shown using Bar charts which
show the activity duration and staffing timelines
• Estimation techniques for software may be experience-based
or algorithmic cost modeling
56