Kissing frogs
In an article in Technology Review about Dean Kamen (the inventor behind the Segway), I read that he, in finalizing the design for a product, “demands that engineers produce and eliminate as many different concepts as possible”. In the case of the Segway, the engineers worked for three years with the design of the handlebar, making and evaluating numerous prototypes, each based on completely different approaches.
Kamen calls this “kissing frogs” – an analogy that I really like. It’s not until you get your hands on a potential solution that you are able to judge whether or not it will work. That’s why the principle in XP is about trying “the simplest thing that could possibly work” – once you try the simplest thing you can think of, you know whether it will work; and if it won’t, you are in a better position to come up with other (simple) things that might have a greater chance of working.
In software it’s common to decide for a particular solution, start to implement it, only to find that it wasn’t good – and then, instead of discarding it, you patch it up here and there until it works. The result is ugly, error prone and require more time to maintain.
You wouldn’t get away with this in the physical world – it’s too obvious that it’s the wrong frog.