How do you compute something like the Levenstein Distance between two functional designs? I've wondered this before when someone asks me to design something "and just make it like {fill_in_the_blank.com}" I've always thought that you can't just copy some other web site directly and then change a few colors and things. I assumed if I did that someone would be mad and might sue me. Also, I usually spot things I'd like to change or improve upon in the original design.
Bing Travel is like Kayak in more ways than just the layout and visual design. The navigation, the automatic loading of results from different airlines (using ajax), even the results themselves are almost identical. You may have noted that in the screenshot comparison below Bing Travel shows a lower rate for the same trip on the same day. It's because they're including some $363 flights from United; if you exclude those then the results are the same. You might wonder then, is Bing Travel better than Kayak? If they find cheaper flights then surely they must be? I tried clicking on the Bing Travel United fare. This redirected me to United's site where I found the $363 fare was not available. Instead United wanted $479 for the same flight. And that's a problem with copying someone else's design. The original authors understood the problem space; the authors of the copy understand the original design. See "Cargo Cult Programming."
Perhaps Microsoft didn't just copy Kayak. After all, if the task of finding flights is reduced to its simplest form then there's not too much room for diversity of solutions. But I would like to understand better the legal limitations on look-alike and work-alike designs. If it's okay, then why should I not just create an auction site exactly like eBay, except in plaid instead of yellow and white, or something like Amazon.com only named after a different river? Would that be okay?
-Douglas Sims 2009-06-04
Thanks to Glenn, Hayes, Yazan, Peter, Mark, Jeff, Hemant, and others for reviewing drafts of this.
