February 4th, 2008 : Discover the Real Problem
I had a great problem solving experience last night which not only solved the problem I was facing but also did a great job of helping me to realize a real world example of some of the things I am learning in my “Theatrical Design” class.
I was working on my photo sorting program, known as DeChaos, and I was struggling with the issue of allowing users to move forward and backward along the list of sorted photos. I wanted it to work so that if someone knew they had multiple shots of the same photo they could jump ahead or skip over a photo if they wanted to see what was next. The issue that faced me was that if the user decided to sort that photo the program would then move onto the next photo and, should they attempt to go back to the last photo, the program would try to load the photo that had already been sorted (meaning it moved location) and would error out because the photo file wouldn’t exist.
I had in my head, multiple elaborate schemes of how to keep track of the photos that the user skipped and how to jump back to them, keeping them from going back too far, and the whole thing was a complete mess.
I was thinking this over while sitting on the steps outside the SuperBowl party that was going on in the other room when Anna came over to talk to me. I started to explain the problem to her so she had an idea of what I was working on, when mid-sentence the answer struck me like a lightning bolt of energy.
The problem I was working on in my mind was “How do I keep track of the pictures that a user skips,the pictures that the user sorts, without slowing up my program, making a lot of unnecessary lists and variables and keep it simple and reliable.”
But as I explained my problem I realized that the issue was really “How do I keep the user from sorting photos after they have skipped over the photos.” The answer was immediately obvious to me: Don’t give them the option.
If I don’t allow users to sort photos after they have skipped some, they are forced then to go back to the photo they were at when they first skipped ahead and resume sorting from there. It was an amazing solution, easy to implement, and it makes perfect sense.
What this really did for me though, was open my eyes and look at the big picture, which was really “what do I need to prevent?” rather than “how can I make this work?”
This is something that people often overlook, sometimes we are just so focused on the gears that we don’t see that they aren’t doing anything. Thats when we need to take a step back and look at the whole clock.