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.