Nearly a month ago, I noticed that one of our favorite comedians was in town. I rushed to buy tickets for me and my wife and found out that, indeed, I could do that online: it took me less than five minutes to have the ticketing system handing me a nice printout of what seemed to be two really nice seats – second row, seats 15 and 16. Life was beautiful.
When we entered the hall tonight, we found out that seat #16 was definitely next to seat 15#, if it wasn't for a huge aisle in between: the two chairs were on the boundaries of two separate blocks, which meant me and my wife would have had to wave to each other instead than sitting close to each other. Luckily enough, there was a no show and an empty seat, so we managed to sit together hand in hand and enjoy a good laugh.
The snafu with our seats got me thinking about software: the system has clearly been designed keeping in mind that parties should sit on adjacent seats, yet a nasty bug surfaced when a rule like "check whether two consecutive seat numbers are in the same block" was forgotten, or maybe a sloppy description of the hall was provided by the theater itself. What dawned on me was how much easier and error-proof would have been providing a seat map, and let people pick their seats on a first-come-first-served basis. No funky algorithms for best seat match, no rule systems, no reliance on accurate floor plan description: just good old human-machine interaction, better customer feedback and, ultimately, better retention (I'll obviously try to avoid those guys in the future).
Life is complicated enough: just do the simplest thing that can possibly work.