Friday, December 28, 2007

Design anti-patterns: Exploding Whale

An early step in problem solving is the process of problem decomposition, whereby a large problem is broken down into smaller, managable parts, and each problem part is attacked in turn. An advantage to the technique is that it can often allow simple solutions to be successfully applied to the constituent parts that, by themselves, wouldn't scale up to the full undecomposed problem.

Problem decomposition can go wrong when the problem is not sufficiently decomposed and an overly-simple solution is applied to the constituent parts. In the design of information websites this is seen clearly when individual pages appear as large masses of text with different topics and headers on one page. In such cases the designer may have committed to a simple navigation scheme before understanding the amount and complexity of the information he or she was dealing with. In some cases the project was underfunded or understaffed and the unfortunate designer was left with only bad choices before the time or money ran out on the project. In any case, the consumers of the information are left to struggle with a site with minimal navigation and verbose pages of text. Many FAQ pages are designed as such not because customers ask the questions posed on the page, but because the designer hadn't the time and/or ability to break the information down properly and supply adequate navigation.

The name of this design anti-pattern derives from the Mother of All Problem Decomposition failures, the Exploding Whale incident, popularized by a newpaper column by Dave Barry. In his column Barry describes an attempt to remove a whale carcass from a beach by the use of dynamite. For many years the story was considered an urban legend until a video of the event was discovered and circulated online.

Some things to note about the Exploding Whale. The first step in the solution to the problem (dynamite) was regularly and successfully applied to the removal of large rocks from roadways, so the engineers had reason to believe it would work in this case. As noted in the video of the newscast, they had never dealt with whale removal before, and were inexperienced in this particular domain. The engineers incorrectly assumed that pieces of the carcass would be rendered small enough to be handled by the second part of the solution (the numerous scavengers). This failed in two ways, as humorously described by Barry. Many of the carcass pieces were too big to be eaten by scavengers, and the scavenging birds were frightened off by the blast.

Of interest, the newsman responsible for the video notes at the end of the segment that the engineers will, in the future, know "what not to do" when removing a whale carcass. He understood that this event qualifies as an anti-pattern.

No comments: