Pugetworks
Seattle Software Developers

blog-archive

Pugetworks Blog Archive!

Agile Pyramids

In ancient egypt, a new Pharaoh was born.  Two different architects were commissioned to build two pyramids, one each.  The tallest pyramid at the time of the Pharaoh's death would be the Pharaoh's tomb, and the losing architect would be put to death and buried in the winner's .

The first architect, Waterfallitep, knew that the height of the pyramid was a function of the size of its base, and that the size of the base determined how much stone needed to be moved, which was limited by time.  Specifically, the length of the Pharaoh's life.  But how could Waterfallitep know how long the Pharaoh would live?  He made some guesses based on the life of the previous Pharaoh, the state of the kingdom, and the signs of the sky and made his guess:

Waterfallitepsfirstlayer

Over time, as Waterfallitep built the pyramid, things happened: new workers were available (from a conquest), the king reached adulthood, a stone shortage occurred due to another favored building project, the Pharaoh had a son, that son reached adulthood, and finally

the Pharaoh died in an unexpected hunting accident while out with his ambitious new son.

Waterfallitep's Pyramid

Whoops, Waterfallitep put a top on the strange pyramid and hoped for the best.  After all, how could he have foreseen the son's ambition, the terrible accident before the son was even born?

The second architect, Tutenagile, realized that the question of the Pharaoh's life was unanswerable and responded to that by building a pyramid immediately:

Tutenagilesfirstlayer

As the Pharaoh continued to live, Tutenagile added to his pyramid according to his time, materials, and confidence:

Finally, when the accident happened Tutenagile had not only a more sensible pyramid but  a larger one.  Look at the "shelves" from Waterfallitep's pyramid -- these areas were rocks that were quarried, hauled, placed, and tested but never contributed to the goal.  This waste was converted in Tutenagile's pyramid to stones that directly supported new height all along the way.  When the Pharaoh died (whatever the timing or circumstances), the pyramid was ready, just as it had been all along:

TutenagilesPyramid

To carry the analogy a little further, you can imagine that the builders of Tutenagile's pyramid require very different engineering practices than Waterfallitep.

Finally, an interesting point is that some may argue that Waterfallitep's pyramid has the *chance* of using materials more efficiently -- given a completely known time to build and completely known materials and workers, Waterfallitep would build a larger pyramid.  The problem with this approach is that nobody lives in that kingdom.  We all live in the place where shortages exist, takeovers happen, and priorities change.  We can either accept that reality and change to meet it, or be buried by (or in) its consequences.