I recently attended Startup School 2013 down in Cupertino California. I was staying with some family friends in the area and was taking the Caltrain to Sunnyvale from San Francisco.
In case you’re not familiar with how Caltrain works, payments work using a zone system. The entire line is divided into zones. The more zones you plan to travel through, the more you pay.
When buying your tickets, the machine asks you to select which zone you’re traveling to and charges you accordingly.
On my way to Sunnyvale from San Francisco, I selected zone three since I would be traveling through three zones. A couple days later on my way back to San Francisco from Sunnyvale, I selected zone three again, since I would be traveling a total of three zones back.
In my mind this made perfect sense, but I was wrong. I was supposed to have selected zone one, since my destination was in zone one.
I stumbled onto the train disappointed in myself. Not only because I had just bought two Caltrain tickets, but because I had been outsmarted by the machine. I had assumed the less intuitive solution, and was wrong.
You see, I often make this mistake when solving problems programming. My initial solutions are usually overcomplicated and extremely unintuitive. But here it was the other way around. I made the assumption that the machine was unintuitive, when it was really much simpler than I had expected.
Why did I do this? Is it because I’m used to dealing with unintuitive machines? Or because I’m too accustomed to designing unintuitive solutions myself? I’m not exactly sure what it means, but wanted to document it anyways.
You should follow me on Twitter.