Of Mice and Methods
In October 2000, after many weeks of comparing methods and methodologies of
software engineering, the denizens of
comp.object
found that their topic could be summarized by a series of analogies.
The following is in the order postings arrived at my news server
(info.queensu.ca, and yes there is no link because you oughtn't
to be interfering with my bandwidth).
The names of the guilty are cleverly hidden in the comments, where only those
who know how to View Page Source can find them.
It occurs to me you'd pick up a lot about history of Software Engineering
methodologies just trying understand what most of these jokes mean.
Two guys in a garage developing the next killer application: The path to the
cheese appears in a dream to the mouse allowing it to find the cheese in
record time.
- Waterfall
-
The maze has one piece of cheese, and four placebos
that smell like cheese and look like cheese, but leave the mouse
hungry. Only after the mouse consumes all four placebos is the real
cheese placed in the maze.
- XP
-
Two mice are handcuffed (paw cuffed?) and placed into a standard sized
maze. Together the mice must negotiate the maze as well as each other,
then have to share the cheese.
- CMM Level 1
-
The mice run into the maze, scurry around, find the cheese, eat
it. Next time, they do it again.
- CMM Level 2
-
The mice run into the maze, sucrry around, find the cheese by turning
left, then right, then left. Next time they try left, then right, then
left.
- ISO 9000
-
The mice write down that they will always turn left, then
right, then left. They always do.
- correction
-
Actually they never do it this way once, except for when the
auditers visit. All the other times, they do it using standard
fire-fighting reaction techniques, then they checkoff the form
stating that they did it the way they said they would.
- You know who
-
The maze is made of huge stacks of papers and books,
dating from the beginning of movable type. After the mice eat all the
papers and books, the way to the cheese is clear.
- You also know who
-
The mice study all possible mazes and devise a
strategy that solves them all, including multiply-connected
multi-dimensional mazes. They invent a powerful mapping system that
allows them to document everything they may discover in the maze. They
devise a communication strategy that will ensure that no matter how
complex the maze, their findings will be able to be communicated back
to the mice outside. Then they go into the maze. It is shaped like the
letter T, with the mice entering at the bottom and the cheese on the
left hand side of the crossbar.
- The comp.object solution
-
The mice write nasty letters to each other, calling each other all
kinds of vile names and accusing them of racism, anti-semitism, and
cowboy squeaking. Meanwhile other mice sneak into the maze and eat the
cheese.
- The OTUG solution
-
One mouse drones endlessly on about how another goup of mice were
supposed to find the cheese before Y2K, but failed. The other group
complains that the trainers stole the cheese at the last minute.
- Spiral model
-
You can guess the shape of the maze; however there's a
topological twist to it that allows it to be infinite. As the mouse
gets closer to the cheese it moves further into the spiral...
- RUP
-
The mice first study the problem to see if the calories expended
in searching for the cheese will be repaid when they eat the cheese.
They then discuss the technical feasibility of searching for the
cheese and identify different possible solutions and the calorie
expenditure of each. They then realize that they are really hungry
and just scurry around the maze really fast until they find something
to eat and call it cheese.
- Prototyping
-
A mouse quickly dashes into the maze and
out again, pretending to munch on a piece of cheese. If the
other mice are impressed, it repeats the performance with a
slightly longer dash. This is repeated with longer and longer
dashes until EITHER the munched cheese is real OR the other
mice go away and buy some real cheese from a shop.
- Objectory (iterative)
-
The mice work out that running is
the simplest part of the problem so they practice that on
the floor first. Next they practice running about in the
maze until proficient. Then they buy some cheese and
practice running about in the maze carrying pieces of cheese.
Finally, they remove "finding the cheese" from the requirements
list due to lack of implementation time.
- Rapid Application Development
-
The mice see a sales demo
of DELPHI (Discovery and Extraction of Lost Property Hidden
Inside) and are impressed by the speed at which it retrieves
a needle from a haystack. They buy it and rapidly retrieve
many lost needles from the maze and much lost cheese from
the haystack. But they never do manage to find the cheese
in the maze.
- Chief Programmer Team
-
A team of 20 mice bear a scribe mouse on a litter
into a stone labyrinth built under a pyramid.
- Big Iron
-
The litter contains an entire commitee of mice. Unions arise in
the hordes of bearer mice. More mice ride on litters, some on the brims of
the wider litters.
- Hollywood
-
The mice pitch their trite VR concept, on a "maze" theme, to
producers, then hire a studio. Review of cheap location reconnaissance video
tapes reveal the cheese in a corner, and the director mice shortly nab it
just as shooting begins.
- Planning
-
The mice realise that if they don't eat by next week they are
gonna die so they go to work finding all the milestones in the maze and work
out how long it will take to get to the cheese and what corners need to be
cut. They finally reach the cheese, pat each other on their furry backs and
go back to the start ready to "find the cheese".
- Cowboy mice
-
The mice run around like crazy, banging into the walls
and tripping each other up etc, until, exhausted, they find the
cheese. They eat it.
They die of starvation while trying to find the way out.
- Cowboy mice
-
The mouse salesman shows you a picture of your ideal maze
and promise that they'll put the cheese whereever you like. They
build the maze equivalent of an outdoor latrine. They take all your
cheese and say they'll be back to install it tomorrow. They never
return with your cheese.
- Design by Contract
-
The mice carry in a stack of orange highway cones, and
they use these to block off every dead end until the only open path is to
the cheese.
(Heck - that doesn't sound like a bad idea!!!)
- Open Source
-
The mice build their own maze and publish the blueprints for
other mice who may require them in the laboratory. Red Mice sell the mazes
inexpensively to scientists improving the chance to find the cheese for other
mice working at the laboratory.
- SkunkWorks
-
After the scientists have gone home, the mice sneak into the maze
and start plotting a path through it. They repeat this activity nightly until
the entire maze has been mapped out. There's no cheese until the salesman
return to tell the scientists they've just landed a big deal for a project
having to do with mice and something called a maze (see previous message).
- Spiral
-
The mice ride a power mower over the maze, shredding its walls, in
descending circles. When they reach the center they discover they'v creamed
the cheese.
- Wiki
-
The mice author a page about the maze and cheese, but an argument
makes it rather long. Then a refactor-minded Wikizen splits the page into
the Maze page and the Cheese page. Subsequent tweaks accidentally lose the
link between the two pages. The mice starve.
- Adaptive Routing
-
The mouse rams a hole thru each wall of the maze that
falls on a direct line between the door and the cheese. (Courtesy of Fifth
Wave.)
- DotNet
-
The biggest mouse proclaims that he has found the most accessible
chunk of cheese and everyone can have some. However the mice all die in the
maze before they realise there is no actual path to the big cheese.
- PSP model
-
The mice practice until they can reliably and repeatably
estimate all of the work required to find the cheese in the maze. As
they proceed through the maze they time each of the work elements and
dutifully record the information so that they can improve their
future estimation and planning efforts. Periodically as dictated by
their plan they review their progress to date, comparing actuals
against planned progress and replan the remainder of the search,
updating all predictions. When they finally reach the cheese at the
predicted time they dutifully record the information and have another
review session. Feeling rather bored while they are eating the
cheese, they rebel by turning off the stopwatch and dream of throwing
all of the paperwork away and getting some excitement back into their
lives.
- Refactoring
-
The mice run to some location in the maze. No cheese. They
rearrange the walls immediately around them, hoping to reveal the
cheese, then run off to another part of the maze.
- Design Patterns 1
-
The mice buy "Design Patterns: Elements of Re-usable
Laboratory Strategies" by Mickey, Jerry, Gonzales, and Topolino. They
look up the Traverse pattern and use it traverse the maze and find the
cheese.
- Design Patterns 2
-
The mice wander about the maze until they find the
cheese. Then they write down what they did and submit it to a Patterns
conference.
- Inheritance
-
Some of the mice find the cheese, others eat it. No
mouse can do both because ThingsThatFind and ThingsThatEat are
separate classes with concrete behaviour, and multiple inheritance
is too complicated for mice.
- Black box testing
-
The mice eat the entire maze to see if it
has the same effect as eating cheese.
- Polymorphism in Static Type System
-
The mice eat everything
that they are sure can be eaten.
- Polymorphism in Dynamic Type System
-
The mice eat everything that can be eaten.
- Polymorphism in Untyped System
-
The mice eat everything.
- Logic Programming
-
The mice follow one of the routes in the set
of routes which lead from maze entrance to cheese, and then eat
the object satisfying the condition that it is at the end of the
route.
- Logic Programming Detail
-
Forward-chaining mice walk through
the maze, eat the cheese, and jump out. Backward chaining mice
jump in, eat the cheese, and walk out.
- Quantum Computing
-
All mice are simultaneously in a state of
eating and not eating the cheese. When the scientist returns
to observe them, at least some will collapse into the former
state. (Of course, there is a 50% chance that Schroedinger's
cat will come out and get them).
- Genetic Algorithms
-
female mice refuse to have sex with male
mice who can't find the cheese.
- Typical advanced development tools
-
50,000 mice found an aerospace corporation and start working on ever
more sophisticated rockets to lift mice to greater heights. They prove
with meticulous calculations that - ignoring messy things like air
resistance - if they can exceed a velocity of seven miles per second
they can reach the cheese irrespective of how high up it is.
No mouse points out in all this that in most mazes, the cheese is
located to the left or right rather than up.
- Reverse Engineering
-
The mice split into two groups. Group A go and find the cheese. They
then return to the start and tell Group B what they saw. Group B use
this information to build their own cheese and sell it to the rest of
the mice for a tidy profit. It's legal because Group B didn't see the
cheese.
- RUP
-
The mice lose the cheese under all the other artifacts.
- Real World
-
Over drinks, the marketing department boasts that their mice can
find the cheese within 2 seconds of being put in the maze, and
they can do it while being pursued by cats. In fact, the mice
will bind and gag any cats in sight. You can see a demo, if you'd
like.
The next morning, the marketers frantically call back to the home
office and ask what a maze is.
- Extreme Mice
-
The mice all stand up and ask among themselves if any of them is
confident how fast he can find the cheese. No mouse is confident enough
to estimate, not having seen the maze. Two mice are given an hour to do
an experiment to see if they can come to a confident estimate. The
first thing the pair does is thinking that perhaps they aren't going to
need to go through the maze to get cheese. They're not sure. They ask
the customer if he needs the particular cheese that is in the maze. The
customer says that any cheese will do. The pair takes some cheese from
the fridge and gives it to the customer.