Professional Documents
Culture Documents
1.0 Overview
1.1 Background
In the midst of a typical project, it is often desirable to estimate such
quantities as “how much time is left?” or “how much of the work is
complete?” or “how much money will the project spend before it is
complete?” If these remind you of trips in the family car where the children
are wondering “are we there yet?”, it is not surprising. Just as the
passengers on a trip wonder how long it will take to get to the destination,
so managers have a responsibility to understand how long a project will take
to get to its destination - and what it will cost. Those working on the project
usually want to know this too.
Earned value actually uses three data values, which are computed each
week, month, or whatever other period you wish to use. We use the term
“analysis date” to refer to the date when the three values are analyzed.
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 1
Thus if we measure these values monthly, an analysis date of October 31
would include all values from project inception until the end of October.
This is the cost originally budgeted to accomplish the work that has been
completed as of the analysis date. It answers the question “how much work
has actually been completed?”.
This is the total budgeted cost up to the analysis date. It answers the
question “how much did we plan to spend as of this date?” A variant of this
question is “how much work should have been completed by this date?”
BCWS can be computed from the project’s plans, as illustrated in the sequel,
or it can be approximated by multiplying the total budget by the fraction of
total project duration at the analysis date. Thus, for example, if the project
budget is $100 and 20% of the project’s time has elapsed, the approximate
BCWS is $20.
This is what it actually cost to accomplish all the work completed as of the
analysis date. It answers the question “how much have we actually spent?”.
This is usually determined from the organization’s accounting system, or
can often be approximated by multiplying the number of people by the
number of hours or days or weeks worked.
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 2
1.3 Derived Metrics
Four measures can be computed from the basic values described above:
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 3
2.0 Using EVA to Determine Where you Are
2.1 Units
There are many ways to measure “cost”. For example, we could measure
actual money spent. However it is common in a work environment to
measure cost in terms of labor - that is in work hours or work days spent.
Thus the budget for a project could be $30,000 or it could be 300 labor
hours, and the amount spent so far could be $4,500 or it might be 45 labor
hours. EVA can be used with any measure of cost, but it is important to
decide which one to use. We will use an example in dollars in this section
and an example in work days in the sequel.
Plans:
• 40 cookies per batch
• 5 batches per hour (200 cookies)
• Schedule: 5 hours to make a total of 1000 cookies
• Budgeted cost per cookie is $0.05
• Total budget is $50.00 for cookie ingredients, or $10 per hour
Analysis:
BCWS = $10.00
BCWP = $7.50 (Earned Value) [150 cookies x .05 per cookie]
ACWP = $9.00 [from above]
Therefore:
SV = BCWP - BCWS = -$2.50 (you are behind schedule)
SPI = BCWP / BCWS = 0.75 (you are running at 75% of the planned
schedule)
CV = BCWP - ACWP = $7.50 - $9.00 = -$1.50 (you are $1.50 over budget)
CPI = BCWP / ACWP = 0.833 (you are running over budget by about 17%)
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 4
• BAC - Budget At Completion = Total Original Budgeted Cost
This is the same as BCWS at completion
• EAC - Estimate At Completion = your estimate of the amount of money
you will spend on the project. This is based on your judgment.
• IEAC - Independent Estimate At Completion = Projected final cost of the
project, based on performance so far. IEAC can be forecast using the
following formula:
IEAC = BAC / CPI
• ISAC - Independent Schedule At Completion = Projected duration of the
project, based on performance so far. ISAC can be forecast using the
following formula:
ISAC = Schedule / SPI
• VAC - Variance At Completion = Forecast of final cost variance
= BAC - IEAC or, if you prefer, VAC = BAC - EAC
In other words, you forecast that it will take 6 2/3 hours and $60 to make
the cookies, if your success at making them does not improve. Stripped of
all the verbiage, imagine someone telling you “at the rate you are going, it
is going to take you all day and it will cost more than you bargained for.”
EVA enables you to say that in more precise terms.
Perhaps for making cookies, such precision is not essential (although if the
prediction was 44 hours, you would have something to worry about!). But
for running an expensive project, EVA can be very helpful, even essential.
where EAC is the amount we estimate we will spend. Looking closely we see
that the numerator is how much work is left to do and the denominator is
how much we have left to spend. Note too that if EAC is simply IEAC, then
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 5
the TCPI is the same as the CPI - i.e., it indicates that if we do not change
our performance, IEAC is the correct estimate of our final cost. (Exercise for
the reader: prove mathematically that if EAC = IEAC then CPI = TCPI.)
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 7
Table 2 - BCWS for Coding Phase, Project XXX
Shorthand
Week Total Value that we Plan to Earn by That BCWS
Week (Total/week #)
1 3 3
2 5 6
3 7 (*) 9
4 11 (*) 12
5 15 15
6 18 19
7 23 22
8 26 25
9 28 28
10 31 31
(*) Assumes partial progress on “design output” task
Table 3 - Earned Value Data, Week ending Oct 29, 1999, Project
XXX
Task Effort (value) (work days) % Earned
Complete
Set Up 3 100 3
Get Specs 2 50 1
Design 10 25 2.5
Output
Plan Tests 3 0 0
Write Code 5 0 0
Unit Test 3 0 0
Integrate 2 0 0
Beta Test 3 0 0
TOTAL 31 6.5 (BCWP)
BCWP or earned value is the total of the “earned” column on the right hand
side. Table 3 is recomputed each week, whereas tables 1 and 2 need only
be done once. BCWP will increase each week as the project progresses. At
any given week, you have the BCWS from table 2 and the BCWP from table
3. ACWP is whatever number of person-days of work have actually been
paid for. This is simply the week number multiplied by 5 (total days worked)
multiplied by the number of people, if everyone works full time on just this
project. If people share their time between projects or work on non-project
activities, their “actual” work hours spent on the project must be
determined proportionally.
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 8
5.4 Analyzing the Sample Project
Suppose table 3 represents the results at the end of week 3 on the sample
project. Suppose the staff did not work 100% on this project, so that only a
total of 10 work days have actually been spent on the project. Then:
Then:
SV = BCWP - BCWS = -.50 (you are behind schedule)
SPI = BCWP / BCWS = 0.928 (you are running at about 93% of the
planned schedule)
CV = BCWP - ACWP = 6.5 - 10 = -3.50 (you are 3.5 staff days over
budget)
CPI = BCWP / ACWP = 0.65 (you are running over budget by about 35%)
Forecasts:
IEAC = BAC / CPI = 31/0.65 = 47.7 work days
VAC = BAC - IEAC = 31 - 48 = -17 (17 work days over budget)
ISAC = 10 / SPI = 10 / 0.928 = 10.7 work weeks
In short, your project looks like it will come in about a week late and 35%
over budget. What should you do now?
At this point, things look pretty dismal for meeting the cost budget. You
need to ask yourself these questions:
• Why is it taking more effort than planned?
• Did they underestimate the job?
• Are they losing too much productivity because they are being
shared between this project and something else?
• Were there unforseen obstacles and, if so, have they been
corrected?
• Is there some other reason?
• Was work performed on other tasks, but not enough to claim partial
credit yet on table 3? Maybe things aren’t quite as bad as they look
The key point here is that EVA enables you to spot a potential problem early
in the project and do something to correct the situation. You can also re-
estimate the total project duration and cost at this point, or negotiate
changes in the project with your management.
Software Review
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 10
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 11
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 12
Types of Review:
Formal inspections
“Formal” reviews are usually called “inspections.” In general, a “formal”
review refers to a heavy-process review with three to six participants
meeting together in one room with printouts and/or a projector.
Someone is the “moderator” or “controller” and acts as the organizer,
keeps everyone on task, controls the pace of the review, and acts as
arbiter of disputes. Everyone reads through the materials beforehand
to properly prepare for the meeting.
Each participant will be assigned a specific “role.” A “reviewer” might
be tasked with critical analysis while an “observer” might be called in
for domain-specific advice or to learn how to do reviews properly.
A “reader” looks at source code only for comprehension – not for
critique – and presents this to the group. This separates what the
author intended from what is actually presented; often the author
himself is able to pick out defects given this third-party description.
When defects are discovered in a formal review, they are usually
recorded in great detail. Besides the general location of the error in
the code, they include details such as severity (e.g. major, minor),
type (e.g. algorithm, documentation, data-usage, error handling), and
phase-injection (e.g. developer error, design oversight, requirements
mistake).
Typically this information is kept in a database so defect metrics can
be analyzed from many angles and possibly compared to similar
metrics from QA. Formal inspections also typically record other
metrics such as individual time spent during pre-meeting reading and
during the meeting itself, lines-of-code inspection rates, and problems
encountered with the process itself.
These numbers and comments are examined periodically in process-
improvement meetings.
Drawback:
When you have many people spending lots of time reading code and
discussing its consequences, you are going to identify a lot of defects. And
there are plenty of studies that show formal inspections can identify a large
number of problems in source code. But most organizations cannot afford to
tie up that many people for that long. You also have to schedule the
meetings – a daunting task in itself and one that ends up consuming extra
developer time. Finally, most formal methods require training to be
effective, and this is an additional time and expense that is difficult to
accept, especially when you aren’t already used to doing code reviews.
After all, if you can get all the proven benefits of formal in-spections but
occupy 1/3 the developer time, that’s clearly better.
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 13
Deskchecks
A deskcheck is a simple review in which the author of a work product
distributes it to one or more reviewers. Deskchecks can be used as
predecessors to inspections. In many cases, having an author of a work
product pass his work to a peer for an informal review will significantly
reduce the amount of effort involved in the inspection.
Desk checking is a manual (non computerized) technique for checking the
logic of an algorithm. The person performing the desk check effectively acts
as the computer, using pen and paper to record results. The desk checker
carefully follows the algorithm being careful to rigidly adhere to the logic
specified. The desk check can expose problems with the algorithm.
Desk checks are useful to check an algorithm (before coding) thereby
confirming that the algorithm works as expected and saves time possibly
writing a program that doesn't do what was intended. Another benefit of a
desk check is that it confirms to the programmer/designer that the
algorithm performs as intended.
A desk check is normally done as a table with columns for:
1. Pseudo code line number column (Pseudo code doesn't normally have
lines numbers, but these are necessary in a desk check to specify the
line(s) being executed)
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 14
A Desk Check concentrates on the value of variables and the logic i.e. what
is the value of variable x after statement n; what is the next statement to be
executed? A Test Plan focuses on the values of inputs and outputs required
to test a program without concern for the internal workings i.e. are the
results (outputs) correct for the inputs?
Example 1
Problem Description: Calculate the discounted price of an item purchased.
(Note: a problem description is not normally specified in a desk check, it is
only included to assist in understanding the problem.)
The following example shows desk checking involving sequence, executing
instructions one after the other.Sequence involves executing all instructions
once, from top to bottom, one after the other.
Algorithm (with line numbers added for the Desk Check)
1 calcDiscountPrice()
2 Input price, discountPercent
3 discount = price * discountPercent / 100
4 discountPrice = price - discount
5 Display discountPrice
6 STOP
Desk Check
Test Data
Inputs: price = $200, discountPercent = 10%.
Correct results: discount = $20, discountPrice = $180.
Line discount discount pri
discount Input/Output
Number Percent Price ce
1
price ? 200;
2 10 200
discountPercent ? 10
200 * 10 /
3
100 = 20
200 - 20 =
4
180
5 discountPrice = 180
6
Example 2
Problem Description: Calculate the discounted price of an item purchased.
Customers receive a discount of 15% on an item if the purchase price of
the item is over $100.
The following example shows desk checking involving selection using an IF.
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 15
For an IF without an ELSE, if the condition evaluates to True then execution
continues to the next line and the lines between the IF and ENDIF are
executed (inclusive), otherwise (the condition is False) execution jumps from
the IF to the ENDIF.
Algorithm (with line numbers added for the Desk Check)
1 calcPrice()
2 Input price
3 IF price > 100 THEN
4 discount = price * 15 / 100
5 price = price - discount
6 ENDIF
7 Display price
8 STOP
Desk Check
Inputs: price = $200
Correct results: price = $170.
Line Input/Outp
discount price Conditions
Number ut
1
2 200 price ? 200
200 > 100 ?
3
is T
200 * 15 / 100
4
= 30
200 - 30 =
5
170
6
7 price = 170
8
Inputs: price = $50
Correct results: price = $50.
Line disco pri Condition Input/Outp
Number unt ce s ut
1
2 50 price ? 50
50 > 100 ?
3
is F
6
7 price = 50
8
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 16
Example 3
Problem Description: Display whether a student passed or failed a subject
depending on their mark.
The following example shows desk checking involving selection using an IF-
ELSE. For an IF-ELSE, if the condition evaluates to True, execution continues
to the next line after the IF and the lines up to but excluding the ELSE are
executed, then execution jumps to the ENDIF. If the condition is False,
execution jump from the IF to the ELSE, and the lines from the ELSE to the
ENDIF (inclusive) are executed.
Algorithm (with line numbers added for the Desk Check)
1 displayGrade()
2 Input mark
3 IF mark >= 50 THEN
4 grade = "Pass"
5 Display "Well done"
6 ELSE
7 grade = "Not pass"
8 ENDIF
9 Display grade
10 STOP
Desk Check
Inputs: mark = 75
Correct results: grade = "Pass", "Well done"
Line gra ma Input/Outp
Conditions
Number de rk ut
1
2 75 mark ? 75
75 >= 50 ?
3
is T
4 Pass
5 "Well done"
8
9 Pass
10
Desk Check
Inputs: mark = 40
Correct results: grade = "Not pass"
Line ma Input/Outp
grade conditions
Number rk ut
1
2 40 mark ? 40
40 >= 50 ?
3
is F
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 17
6
Not
7 "Well done"
pass
8
9 Not pass
10
Walkthrough Process:
Author describes the artifact to be reviewed to reviewers during the
meeting. Reviewers present comments, possible defects, and improvement
suggestions to the author. Recorder records all defect, suggestion during
walkthrough meeting. Based on reviewer comments, author performs any
necessary rework of the work product if required. Recorder prepares
minutes of meeting and sends the relevant stakeholders and leader is
normally to monitor overall walkthrough meeting activities as per the
defined company process or responsibilities for conducting the reviews,
generally performs monitoring activities, commitment against action items
etc.
Code Review
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 18
The purpose of a code review is for someone other than the programmer
to critically go through the code of a module to ensure that it meets the
functional and design specifications, is well written and robust. An incidental
benefit is that the reviewer may learn some new programming techniques,
and more people in the team become familiar with the module. The
reviewer should not try to fix any bugs or improve the code. S/he should
merely inform the programmer about potential bugs and possible
improvements. The responsibility for actually making the changes and
testing them lies with the programmer.
________________________________________________________________________________________________________--
Software Project Management-Mrinal Singh Rawat Page 20