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.
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.
Screen Beans Art, © A Bit Better Corporation