Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. You want to visit Florence.
  2. You want to wake up at 8am and go to bed at 10pm.
  3. You want to do the following activities throughout the day: eat breakfast/lunch/dinner, visit the dome, and go to the opera.
  4. Now, you want to visit tourist places in Florence *and want to do as little walking as possible.*  You want to visit the dome (at the piazza del duomo) at some point in the day for two hours; it doesn't matter when you go.  The dome opens at 10am and closes at 5pm.  You also want to go to the Medici chapel for a special opera showing that starts at exactly 3pm and lasts for 2 hours.

Reflection

TODO: Andrew

- There is a fundamental problem in that in order to tell what a medium can do, we need to do a nontrivial amount of implementation with it that does not really belong in front part of a development cycle. 
It seemed that the process of  
We concentrated very heavily on constraints in the beginning, where that involved In the beginning, we concentrated a lot on the notion of constraints. This was in part because we initially visualized this app as "travelling salesman", a tool for finding the lowest-cost tour among a variety of attractions. This algorithmic mindset, while understandable for MIT students, is not particular for thinking about user problems. Ultimately, trying to get users to specify constraints was involved more complexity than users were prepared to deal with, so we simplified that interface. We did not get a chance to prototype This did however lead us to throw significant algorithmic thought behind the schedule-edit distance algorithm which made reordering and rescheduling events intuitive.
We did not focus a great deal on the exploration and picking of activities, which was more of a problem with users. This would not really have been predictable. 
That we spent a lot of time on an issue and the users didn't have problems with it may simply reflect that we succeeded in  Again, we initially had them entering activities manually and thought about how to make that faster. We should have indeed first developed an interface for them to enter events manually. However, upon seeing their pain at not being able to select events from a map, implemented that ability rather than autoschedule. As a general lesson: the first computer prototype should be a tool to let the user do something. The second should do the most annoying things for the user.
We also switched mid-project from an iPhone to an iPad as our medium due to the inability to drag things on an iPhone. There is a fundamental problem in that in order to tell what a medium can do, we need to do a nontrivial amount of implementation with it that does not really belong in front part of a development cycle. I suspect that the ultimate solution to this is simply to be constantly exploring different media and their capabilities such that one can go into these initial phases with the knowledge of the toolkit in mind.