SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY T-76.5612 Software Project Management Spring 2010 4: Scheduling, monitoring and controlling software project Tuomas Niinimäki Software Process Research Group SoberIT Helsinki University of Technology
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
T-76.5612 Software Project Management Spring 2010
4: Scheduling, monitoring and controlling software project
Tuomas Niinimäki Software Process Research Group
SoberIT Helsinki University of Technology
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
What is scheduling? Defining the activities needed for certain goal Estimating the durations of activities Identifying the dependencies between activities Sequencing the activities
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Scheduling is builds on ...
Resource management Making sure that needed resources are available
Cost management The cost of activities is acceptable
Specification of deliverables The scope and the quality of deliverables is defined
Time
Resources
Scope
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Who tells what to do?
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Defining the activities Requirements management
Various stakeholders: customer, end user, marketing, higher management, developers, ...
How to balance between them?
Time
Resources
Scope
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Defining the activities Setting the quality targets
Quantity over quality? What is the purpose of the developed product?
What is good enough? Medical equipment vs. UI prototype
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
How long does it take?
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Estimating the duration The relationship between the number of staff working on a
project, the total effort required and the development time is not linear Adding more people increases the need for communication and
management of work activities Software project work cannot be partitioned infinitely (Brooks, 1984)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Effort and schedule – non-linear The actual relation between schedule months and person months
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Estimating the duration Only 60-70% of work time is used on “real” work
General staff meetings Talking with colleagues Drinking coffee, surfing on the web, ...
Not all of this is inherently harmful for the project!
Plan for contingencies Sick leaves Parental leaves Other projects “just borrowing a resource”
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Estimating the duration Estimating the schedule may be trivial, but to get a realistic
schedule accepted can be the most difficult part of the project
(McConnell, 1994)
Prepare to have good reasoning behind your schedule estimates Do not present overly optimistic schedules
They will be accepted! They will guarantee your project will be late!
If the schedule is fixed, cut down the scope!
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
The root causes of overly optimistic schedules External, immovable deadline (e.g. Christmas shopping) Top management, marketing or a customer want a particular
deadline, and the project manager can’t talk them out of it The project is deliberatelly underestimated by management or
sales in order to submit a winning bid The project manager believes that developers will work harder if
the schedule is ambitious The project begins with a realistic schedule, but new features are
piled on to the project The project is simply estimated poorly Developers underestimate an interesting project in order to get
funding to work on it
(McConnell, 1994)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
The effects of overly optimistic schedule Late project Low-quality product Stress Non-motivated developers High turnover; reduced loyalty Strained relations among developers, managers,
customers, marketers and other project stakeholders Weakened capacity to develop the next product
(McConnell, 1994)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Late project
Stress
Low quality
Extra work
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
What should we do first?
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Scheduling fixed-scope projects Do a work breakdown and effort estimates for the tasks Identify task dependencies
In software development, many tasks are not as dependent on each other as they might be in some other engineering domains
With proper interface specification, modules are less dependent on each others’ implementation
Construct a network model, do forward and backward pass to identify the critical path Activity-on-node network
Remember to add contingencies!
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Work breakdown structure
Project
Specification Implementation Testing Delivery
Eliciting requirements
Analyzing requirements
Writing req. specification doc.
Creating architecture plan
Implementing module A
Implementing module B
Implementing module C
Integrating modules
Testing module A
Testing module B
Testing module C
Integration testing
Acceptance testing
Installing software
Training
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Activity-on-node network
Eliciting requirements
Analyzing requirements
Writing req. specification doc.
Creating architecture plan
Implementing module A
Implementing module B
Implementing module C
Integrating modules
Testing module A
Testing module B
Testing module C
Integration testing
Acceptance testing
Installing software Training
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Critical path
Task 1
Task 2a
Task 2b
Task 3b
Task 4 Task 3b
Task 2c
Time
Arrows denote the task dependencies Box length represent the task effort/schedule
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Critical path
Task 1
Task 2a
Task 2b
Task 3b
Task 4 Task 3b
Task 2c
Time
Arrows denote the task dependencies Box length represent the task effort/schedule
Tasks in green are on critical path, i.e. delays in these tasks delay the entire project!
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Scheduling iterative and incremental projects The understanding of the project increases when the
project progresses We know more what we are supposed to do We know better how long it will take Customer also knows more what she wants
Changes are expected ... and we are prepared
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Scheduling iterative and incremental projects In the outset of the project
Commit to target dates and objectives at macro-level Plan the length and number of iterations
In each iteration Explicitly allow the variation of scope Plan the next iteration Discuss the contents of the project with the stakeholders
The customer can help in prioritizing the requirements Developers can help in estimates
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Prioritizing the requirements Rank requirements by risk, coverage and criticality
Risk: All risks related to requirements (e.g. technical complexity, effort uncertainty)
Coverage: Major parts of the system are at least touched on in the early iterations
Criticality: High business value (e.g. customer’s prioritization)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Monitoring and controlling software project
http://flickr.com/photos/jdww/322805530/
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Monitoring and Control
Monitoring: What is happening? Compare to the plan
Control: Use monitoring information React to slippage Replan to bring the project back on target or revise the target
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Levels of Control
Project board / steering group
Project manager
Project team
Project board Consists of e.g. higher level
managers and customers Progress reports and/or
meetings, e.g. monthly Inform often enough Inform about possible problems
early enough: dividing responsibility
Project manager reports Project manager & project team
Meetings and/or progress reports, e.g. weekly or even daily
Info
rmat
ion
Con
trol
SoberIT Software Business and Engineering Institute
At first, this project is progressing better than planned
Around day 7, project faces some problems, and the pace is slowed down
Problems are solved, and project starts to progress at planned pace
Original End date
Extra time (3 days) was needed
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Earned value, part 2 Work Scheduled (WS):
Work to be done, according by the project plan Has planned value: Budgeted Cost of Work Scheduled (BCWS)
Work Performed (WP): Actual work completed Earned value = Budgeted Cost of Work Performed (BCWP) Actual expenses = Actual Cost of Work Performed (ACWP)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Earned value, part 2 Budgeted Cost of Work Scheduled = BCWS
= how much money is going to be spent based on the plan
Budgeted Cost of Work Performed = BCWP = Earned Value = we plan to charge this money from the completed work = the performed work is worth this much money to someone
Actual Cost of Work Performed = ACWP = we have spent this amount of money to get the results we
have
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed
What can we say about the project based on this chart in general?
What is the situation:
- at the end (day 18)?
- on day 13?
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example –
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed
What can we say about the project based on this chart in general?
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example –
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed
What can we say about the project based on this chart in general?
There are two phases in this project
First phase (plan) Second phase (plan)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example –
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed
What can we say about the project based on this chart in general?
The start of second phase was delayed
First phase (plan) Second phase (plan)
First phase (actual)
Second phase (actual)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed
About half of the Value (= features) was Created = SCHEDULE VARIANCE (COST)
What is the situation:
- at the end (day 18)?
All budgeted money was spent on the project
The project was 6 days late from the original plan
= SCHEDULE VARIANCE (TIME)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed Third of the value (= features) was created = SCHEDULE VARIANCE (COST)
What is the situation:
- on day 13?
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed
What is the situation:
- on day 13?
The project was 7 days late from the original plan
= SCHEDULE VARIANCE (TIME)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed
What is the situation:
- on day 13?
The project had spent less Money than planned
= BUDGET VARIANCE
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed
What is the situation:
- on day 13?
The project had spent more than planned to create the value
= COST VARIANCE
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Example
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Budgeted cost of work scheduled
Actual cost of work performed
Budgeted cost of work performed Third of the value (= features) was created = SCHEDULE VARIANCE (COST)
What is the situation:
- on day 13?
The project was 7 days late from the original plan
= SCHEDULE VARIANCE (TIME)
The project had spent less Money than planned
= BUDGET VARIANCE
The project had spent more than planned to create the value
= COST VARIANCE
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Earned value, part 3 Schedule variance:
Cost: Difference between budgeted cost of work performed (BCWP) and budgeted cost of work scheduled (BCWS)
Time: Difference between now and the date when currently completed work should have been completed by the plan
Cost variance: Difference between actual cost of work performed (ACWP)
and budgeted cost of work performed (BCWP) Budget variance:
Difference between budgeted cost of work scheduled (BCWS) and actual cost of work performed (ACWP)
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Possible Actions to Recover Project Re-schedule Make more resources available Redefine scope – leave some features to next versions Modify quality requirements Enhance productivity e.g. through training, tools
SoberIT Software Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY
Important in Monitoring and Control Plan monitoring and control
practices in the beginning of the project
Monitor the progress very frequently, e.g. daily or weekly
Give immediate feedback to managers team members
React to deviations fast
Pay attention to terms used: Use HOURS when talking
about efforts Use DATES when talking
about schedule Do not mix estimated
efforts and calendar time!!!
SoberIT Software Business and Engineering Institute