Project Management == Herding Cats
By Glen B. Alleman
A Field Report, Agile Project Management
Several months ago I wrote about the foundations of Earned Value Analysis
and its use in agile project management. The next step in that process is
to connect the daily activities of an agile software development team with
Earned Value.
Remember agile teams are focused on short-term deliverables, while keeping
the end in mind. But most importantly the end is not planned in detail. This
is intentionally done to allow for the emergence of new requirements as the
system is delivered in small increments – iterations.
Before the use of Earned Value the management of cost and schedule usually
took the approach of comparing budget to actual cost and producing a cost
variance. The schedule variance was developed by looking at the planned work
and subtracting what work remained.
The traditional method of comparing actual spending to planned spending for
software development projects is inadequate for establishing, assessing, monitoring,
and predicting the future performance of the project, The financial accounting
(the normal manner of tracking progress in a software development project)
approach of comparing “budget” versus “costs” fails
to consider the technical achievements – the “physical progress”
– that is accrued for the software development tasks. In the normal
software development project, the passage of time is assumed to be equivalent
to progress toward the completion of the task. Software projects all too often
have not tangible deliverables, which are physically visible. The common result
is large cost are incurred with mot much useful product being delivered.
The first step in identifying the “value” of software deliverables
is to define a set of “verifiable” outcomes that represent this
value. These outcomes have two attributes critical to the deployment of earned
value:
- They are defined in self–contained units of work
- Each unit of work is testable to assure the requirements can be verified.
The Earned Value Management principles define the methods to:
- Plan all work scope for the program to completion
- Break down the work scope into finite pieces that can be assigned to
responsible person or organization for control of technical, schedule, and
cost objectives.
- Integrate program work scope, schedule, and cost objectives into a performance
measurement baseline plan against which accomplishments many be measured.
Control changes to the baseline plan.
- Use actual costs incurred and recorded in accomplishing the work performed.
- Objectively assess accomplishments at the work performance level.
- Analyze significant variances from the plan, forecast impacts, and prepare
an estimate at completion based on performance to date and work to be performed.
With these definitions (taken from standard Earned Value literature), let’s
look at how an agile PM would address the situation. A method based on iterations,
cycles of development, small progressive steps with feedback from the customer
at all times
- Plan all work – work is planned on an iteration basis not end to
end. Yes there is an end in mind, but planning in detail for the end is
not agile, it is a waste of time. Remember the underlying assumption that
managing software development project is not a rational and normative process,
but one based on heuristics.
- Break down the work – into very fine-grained deliverables for each
iteration. This means 1 to 3 day deliverables.
- Scope, schedule, and cost – are integrated by defining the Budgeted
Cost for Work Performed (BCWP) as the “value” of a “testable
requirement.” This means that each fine grained deliverable can be
tested to be compliant at its point of delivery not at the end of the project.
- Actual costs – are accumulated as ACWP and compared to BCWP not
BCWS.
- Objectively assess – through the use of 100% unit tests (for software)
testable requirements for other deliverables. This continuous testing, continuous
integration, and continuous feedback are the basis of agility. Not because
it produces a better product – which it does – but because at
each point in the fine grained delivery, the customer can assess the direction
of the project.
- Analyze variance – by comparing ACWP with BCWP (rather than BCWS)
a measure of cost and schedule variance can be produced.
An earned value management system is not a reporting system, contract administration,
cost analysis, accounting, or a contractor's task management system. It is
a measure of the value of physical progress in a project and as such adds
additional effort to the work of managing a project. Beyond the additional
effort of an EVMS, care must be taken to avoid hindering the project team’s
ability to use its organic management systems.
Combining Earned Value with agile Project Management creates a powerful alliance.
- Direct measures of value can be made
- Fine-grained deliverables allow the project team to make visible progress
in a way not found on linear or waterfall project methods.
- Feedback from the testable requirements provides the customer with evidence
of progress and provides the Earned Value calculation with data from computing
Estimate at Completion in a reliable manner.
Next Month
Now that all the reorganization activities have stabilized we’ll get
back to the Balanced Scorecard and its integration with agile project management.
About the Author
Glen
Alleman is the Director, Program Management for the Information and Network
Services organization of CH2M HILL’s Communication Group. Prior to
this position Glen was the Principal Consultant for Niwot Ridge Consulting,
where he specialized in the management enterprise application integration
projects. At CH2M HILL, Glen provides services to Rocky Flats Environmental
Technology Site. This involves program management services for software
development, server and network operations, infrastructure installation
and removal, as well as telecommunications and wireless devices.
[Back to Viewpoints Index]
Top of Page