
“What
are you doing here?” they asked.
They were
construction foremen, superintendents and project managers attending a
course in construction planning from the Lean Construction Institute
(LCI). Indeed, what was I doing there?
I started to
explain: “In software development, we are told we should manage our
projects like construction projects, where a building is designed at the
start, cost and schedule are predictable, and customers get what they
expect.”
Silence.
“You’re kidding, right?” “No, honest, that’s what we’re told.”
Incredulity
turns to laughter. The idea that programmers would want to manage
projects like the construction industry strikes my classmates as
ludicrous.
They struggle
every day with a master schedule which bears little relationship to
reality, with materials that should be on site but are not, or materials
that need to be stored because they arrived before they were needed. The
never know when the crew that precedes them will be ready to turn an area
over to them, so they never know how to staff their crews. They are
plagued constantly by the two biggest forms of construction waste – people
waiting for materials and work waiting for people.
Construction
might be thought of as a long series of handoffs between trades. When
building a house, there maybe 165 handoffs. Every handoff introduces an
element of variability. Add to this the variability introduced by
weather, staging material, finding tools, sharing equipment, and wide
variation from the master schedule is a simple matter of statistics.
In
manufacturing, MRP systems are known to produce wide swings in plans when
adjusting for small variations in production, which makes them relatively
useless for detailed shop floor planning. For the same reason, the
construction industry has found a master schedule to be a relatively
useless technique for detailed construction planning. These are open loop
control systems which are being incorrectly applied to planning a variable
system, which needs to be controlled by a closed loop system.
The Lean
Construction Institute teaches construction superintendents, foremen, and
project managers to plan work in three windows: a phase window of three
months or so, a six week look-ahead window which rolls weekly, and a
detailed plan for the next week.
The phase plan
is the point at which major plans for how work is done will be devised.
The level of pre-fabrication of building elements, the sequence of
construction events, and the need for long lead time items are addressed.
The phase is planned backward in a ‘pull’ method; that is, the plan starts
from the completed set of work and moves backward to lay out what needs to
be done to get there.
Each week a new
week rolls off the phase plan and onto the six week (or thereabouts)
look-ahead plan. Each week the construction superintendents and foremen
(called ‘Last Planners’ by LCI) review the look-ahead plan to assure that
as work becomes due, the necessary materials are at hand and all pre-work
is completed. Every effort is made to assure that most material ordering
and preparation work can be done within the look-ahead window, so keeping
an eye on the next six weeks gives adequate time to be sure everything is
in place when it comes time to do the work.
Each week the
‘Last Planner’ team commits to the plan for the following week. The most
important thing that they learn in the LCI class is to commit only to what
should be done and can be done. Once the commitment is made, each crew is
expected to meet its commitment, and success is the measured in terms of
meeting the weekly promises.
The ‘Last
Planner’ system taught by LCI greatly reduces variability in construction
planning, because it is a closed loop control system. Work is not planned
by the master schedule, but by real people (‘Last Planners’) who make
detailed short term plans based on what material is actually available,
what the near term weather forecasts say, whether the previous crew can be
trusted to be done, what crew members are available for the job, etc. The
reliability of these plans has resulted in enormous productivity gains and
a significant reduction in construction site problems.
What Does
This Have To Do With Software?
Software
developers don’t think of their work as a series of handoffs between
trades, because often projects are broken into small segments and a single
team is assigned to develop each segment. In this environment, daily
builds and automated tests are often used to integrate new code, assuring
that teams do not interfere with each other’s work.
However, there
are a lot of handoffs in software development. Trace the path of
requirements as they move from customer to developer, and count the
handoffs.
As I sat in the
construction class, I was surprised at how much design work goes on during
construction. You might think that once construction drawings and
specs are approved, the design would be complete. You would be
wrong. Here are some typical examples of things that happen every
day in construction:
Example One:
“What’s that cloud in the basement drawing? Oh! It’s an elevator shaft
that hasn’t been specified. But we are about to pour concrete! Call the
architect!”
Example Two:
“How is this conference room going to be furnished? The electrician has
to decide how to lay out the lighting and where to put the outlets.
Someone needs to let us know where the phone and Ethernet terminations
go. Call the customer.”
Example Three:
“The hospital has hired a new head surgeon and he wants the surgical area
to be laid out differently. He says technology has changed in the two
years since the drawings were approved and the layout in the drawings is
completely out of date.”
In my
construction class, the idea of “freeze the design” meets the same fate as
“follow the master schedule.” Laughter. Not only is freezing the design
impossible, but given the long building times in construction, attempting
to do so is sure to make the real customer – the people who move into the
building – unhappy with the result.
Instead, design
is just another element of the ‘Last Planner’ system. During the look-ahead
period, incomplete designs are identified and arrangements are made to
fill in the blanks. In the same way that lack of materials is the biggest
cause of construction delay, lack of requirements is the biggest cause of
design delay. The ‘Last Planner’ system pulls in requirements just as it
pulls in materials, and LCI recognizes that designs done as late as
possible are often the best. In fact, they recommend that design
decisions be made at the ‘Last Responsible Moment’ even as materials
arrive ‘Just in Time’.
The ‘Last
Planner’ system creates commitments between workers on what will happen
next week, while looking out six weeks to assure that everything will be
in place for work that should happen in the near future. Most planning
systems are directive, but this planning system is collaborative. In a
weekly meeting that lasts less than an hour, the ‘Last Planners’ –
foremen, crew chief, superintendents, designers – commit to each other and
then make good on those commitments. The system adapts each week for
variations such as delayed material or bad weather or changing customer
requirements.
The Problem
With Task-based Planning
At a
construction site, various trades typically work separately on tasks
specified in and coordinated by the master schedule. But this doesn’t give
them any incentive to work together, nor does it provide for much planning
on the best way to deliver a feature. At the LCI class I learned that
significant gains can be achieved by looking at a construction project as
delivering a set of features, rather than accomplishing a set of
isolated tasks.
Case One: The
hallway wall of a prison cell is typically pre-fabricated and set in
place, then cement is poured, and much later doors are added. The problem is, if
the cement is just a bit too high, the doors don't close. In one prison,
fully a third of the doors had to be ground to fit. On a recent prison project, the management firm (one of LCI’s best
customers) suggested that the wall pre-fabricator add the door to the
pre-fabrication process. This was unheard-of, because it involved
the coordination of two
trades that did work in very different phases of the project. Upon
investigation, the idea was found to be not only possible, but in the end it
saved a large chunk of money. Better still, the new approach is
saving more money on each new project.
Case Two: In
building a parking structure, materials for beams were lifted by the crane
onto each floor and assembled in place. Then the crew assembling the
beams was released while the next floor was prepared for beams. The boom and
bust cycle of employment created a problem in retaining good crews to work
on the beams. LCI suggested that the beams be assembled on the ground and
lifted into place by the cranes, creating steady work for a smaller crew
which would assemble the beams as well as for the crew adding the next
floor. It was tricky to work out the crane’s schedule, because typically
it is released to only one crew at a time and the fact that it was used
only one third of the time was not immediately apparent. However, the
change was made and site productivity increased dramatically thereafter.
Case Three:
One of LCI’s best customers has moved to feature-based planning from the
beginning of a project. It recently divided a new field house at a
university into about a dozen main ‘features’: practice fields, swimming
pool, basketball courts, etc. Each feature was given an appropriate portion of
the budget, and a cross-functional team (including users) is assigned to each feature. The teams in turn broke their features down into sub-features and
decided how to spend their allotted money. Sometimes they negotiated with
other feature teams for more of the budget. As the building went up, the
feature teams made decisions which kept their portion under budget. The
result was a smooth construction cycle with a minimum of changes, and a
very satisfied customer.
The lesson for
software development is that planning in terms of features rather than
tasks can yield tremendous advantages. The Work Breakdown Structure (WBS)
method of project planning, with its emphasis on managing individual tasks,
leads to sub-optimized thinking which does not correct itself, even when a
more effective approach is begging to be discovered.
The Contract
Environment
Greg Howell of
the Lean Construction Institute told me that construction companies used
to be vertically integrated. But as time went on, tasks became segregated
and associated costs identified, leading construction companies to
sub-contract the cost and risk of various activities. In a
sub-contracting environment, Greg pointed out, responsibility is shifted
to the sub-contractor. The project manager assigns work, but is not
responsible for it.
Integrating across the trades is not really anyone’s job.
Typically there
is a design firm and a construction firm under contract for any job;
however, this has led to countless disagreements, finger-pointing, and
even lawsuits. Recently a practice called design-build has become
popular, where the design firm is also responsible for construction.
This has created an environment where more responsibility lies with
a single firm, which often leads to greater speed and productivity.
However, not all design-build arrangements guarantee that work will be coordinated
across sub-contractors. The key, Greg says, is to view construction as an
integrated flow, rather than a collection of independent tasks. Companies
with this mindset are the ones who come up with the ‘innovative’ ideas in
the case studies above.
Lessons For
Software Development
If construction
projects have predictable costs, schedules and results, there is probably
a sizable contingency fund for covering surprises. There is a lot of
wasted time and productivity in a typical construction project. This is
caused by two things:
-
An open-loop
plan which does not address variation and thus magnifies it;
-
Fragmentation
of responsibility, giving each trade incentives to optimize their
individual performance.
Software
developers can avoid the open loop planning problem through short cycle,
closed loop planning. Various agile practices recommend adopting an
iteration cycle of two to six weeks, augmented with daily planning
meetings. The important capability is to deliver code which is fully
tested and ready for release on a regular, short cycle. This is the
essence of closed loop control in software development.
Sub-optimization is caused by rewarding people based on measurements of
performance in a narrow area, rather than rewarding people for achieving
broader objectives. The fact is, emphasizing cost and schedule control
during software development is a contractor mentality, which tends to
de-emphasize the importance of achieving overall business objectives. In
practice, contracts which are meant to reduce risk often end up reducing
responsibility for achieving the business goals instead.
In summary,
every metaphor has its limitations, and the construction metaphor is no
exception. Metaphors usually suffer when people have an incomplete
understanding of the field upon which the metaphor is based. Digging
deeper into construction, for example, we find that master schedules are
useless for planning work, contracting practices create islands of optimization, and
there are large opportunities for productivity improvement. The feature-based planning and short, closed loop cycles of
agile software development are similar to the Lean Construction
Institute's practices,
which have been the source of significant improvements in the construction
industry.