Wil Shipley posted an interesting article Pimp My Code, Part 16: On Heuristics and Human Factors. I thought it was a pretty good read, although there's a part of me that's struggling with the fact that the ultimate solution isn't 100% bulletproof. I realize that's kind of the point of the article, but I can't help thinking about ways you could do this even better and catch that 0.000001% of people who will need to search for "an author or title that is all numbers and dashes AND has exactly 10, 12, or 13 digits [in] it." I was wondering if there were other ways to solve this problem while keeping true to Shipley's primary maxim of the article: Alternative Solution 1: Use Shipley's ultimate solution as the default behavior, but also add a checkbox in the preferences to "allow for dashes and spaces in ISBN Search" which would be checked by default. Also maybe make a reference to this issue somewhere in the help. My question is whether the rules about killing kittens every time you add an extra UI element applies to preferences as well as the main application windows. This alternative solution seems like it may end up causing more questions to support than the original solution as users might become confused about the purpose of that preference. Alternative Solution 2: Create a conditional that runs both searches (with the dashes/spaces and without) under the appropriate circumstances, and display the union of those two search result sets as a single result to the user (i.e. it would appear as only one search took place to the user). I think this is probably the nicest way to handle this edge-case scenario, although it will add a bit more code. What do you guys think?