RajWall's WebLog

Blue Water Software Development*

I use the contrasting metaphors of the sailboat and the locomotive to illustrate the value of the iterative approach, But is the locomotive really that bad? Is a waterfall process “water folly”? And is the sailboat really all that flexible?

 

Let’s go a level deeper.

 

Instead of analogizing locomotive operations to software development, let’s instead map locomotive operations to data center operations, where very specific, dependable and by-the-clock predictability are expected and valued. And let’s make the locomotive analogy of software development the building of the transcontinental railroad.

 

From this viewpoint the locomotive is a much more dynamic environment. A number of elements are immediately seen as good and useful to consider in the context of software, for example:

  • Know the terrain before you start building a section of track
  • Progress in stages (sections of track)
  • Have a repeatable process for the stages that you improve as you go
  • Make sure the staff knows their responsibilities and has the tools they need
  • Have adequate materials available to continue the work
  • Build each stage as a series of layers (roadbed prep, ties, track)
  • Comprehend, anticipate, and include the politics of what path you take and do not take (what towns will be bypassed, and which serviced)

The leaders of the transcontinental railroad project had to be flexible enough to cope with everything from weather to indigenous property owners.

 

Is sailing so completely wild and unpredictable? Not if you want to be successful at it. The captain and crew of a sailboat must be thoroughly trained in the appropriate processes, terminology, operations, and practices. They must work as a team, and do specific things in specific situations quickly and correctly.

 

Navigation is not just random steering and adjustment as the wind blows or the current changes, but begins with good maps and knowledge of the territory to be explored. There are milestones that are checked (positional, landmark, etc) against specific transit times to insure appropriate progress is being made.

 

 

By the way, if you really want to learn about leadership, from small teams to large organizations, stop wasting time with “business” books, “management” books, consultants and seminars, and instead get (and read) the complete set of C S Forrester’s Horatio Hornblower books.

 

* "Blue Water Software Development" is the working title for my book on these ideas. What do you think?

Published Tuesday, January 25, 2005 3:26 PM by RajWall
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker