
The Rivals
n the days when great sailing ships ruled the
oceans, a maiden was courted by two men — an accountant, and a sailor.
Her father favoured the accountant, while she preferred the
sailor. Time passed, with neither rival gaining an advantage. To break the
impasse, the maiden offered:
“Father, let my suitors compete. Whichever can tie the
most knots in a string, in one minute, shall have your blessing and my
hand.”
The father looked from the nimble fingers of the accountant, to
the calloused hands of the sailor. Pleased with the accountant's prospects, he
declared:
“So shall it be.”
String was obtained, and as the minute hand of the clock
reached its zenith, the rivals set to. The accountant furiously tied knot after
knot in his length of string, and soon had a goodly collection.
Meanwhile, the sailor nonchalantly but rapidly looped half hitches over
his thumb. Not one knot appeared in his string. The father began to smile
inwardly. As the contest progressed, he began to smile outwardly as well.
The minute had nearly passed, and the maiden's heart was in her
throat. Her favourite had produced nothing, and the accountant was not
disappointing her father in his expectations.
At this moment, the sailor removed the hitches from his thumb.
He led one end of the string through the space where his thumb had been, and
rapidly pulled it through. A long stream of evenly spaced knots emerged one
after another; in all, more than twice as many as tied by the accountant.
The father honoured his word, and his daughter was soon married
to the sailor. The accountant withdrew and went on to become prosperous.
Software Development Insights
At some point in their life, nearly everyone has tied an overhand knot.
Complex? No; yet from this tale we can still draw some insights into the
management and prosecution of software development projects.
Set Your Objectives
The method chosen to meet a particular goal depends on the objectives. This
makes choosing appropriate objectives and promulgating them a matter of first
importance, because many decisions will be made with those objectives as a point
of reference. The sailor assessed the objective before coming out with a winning
strategy.
Experience Matters
“Experience” does not refer to the specific
“must-have-two-years-of-PERL” type of experience, but rather,
experience that accumulates from working in a particular field in various
capacities over time. Since a string full of knots is generally of less value
than a knot-free one, neither the accountant nor the sailor would ever have been
asked to tie a sequence of knots in a string. The sailor's experience and
assessment guided his selection of a strategy.
Tying one knot into the end of a string is simple. Tying the same knot into
the middle of a piece of string is the same in principle, but longer in
execution. Tying many knots into the middle of a long piece of string is
tedious and time-consuming. The sailor drew on his background to choose an
approach that would scale to the length of the supplied string, while the
accountant's naive method did not scale beyond a few knots.
A similar example of scalability can be drawn from the field of construction.
To drive one nail high up a wall, using a ladder is a good strategy. To drive
two nails, the ladder is moved as necessary. To drive hundreds of nails, moving
the ladder is no longer efficient. Time is budgeted and taken to set up
scaffolding, and time is saved over the course of achieving the objective.
Programmers and software architects face many of these "one knot" versus
"many knots" decisions while doing their work.
Stay the Course
The outcome of the sailor's winning strategy would have been catastrophic if
the father had called "Stop!" at any time without warning. Not only would he
have produced less knots than his rival, he would have produced no knots at all.
In software development projects, a carefully thought out winning strategy can
also produce no usable artifacts (ie, incur a total loss of investment) if a
project is terminated unexpectedly.
Putting it Together
Experienced developers with clear and stable objectives will make better
design and implementation decisions. These better decisions benefit the project
sponsor by optimizing the use of the sponsor's resources.
Based on a story retold by Clifford Ashley in the Ashley Book of
Knots. Paintings by Montague Dawson (1895-1973).
|