GR1 - User & Task Analysis
User Demographics
Our scheduler is being evaluated in the context of three different user demographics:
Efficient errand runner ("The one with the car")
The first demographic runs errands for her/himself and others living in an apartment. It is normal for only one person to have a car, when living in undergraduate or graduate student housing. This person does personal errands, but is occasionally asked to do other people's errands as well. Since this demographic is typically made up of students with busy schedules, getting them done as fast as possible is desirable. We want this demographic to use SMak as a way to (a) organize tasks from different sources in a single place, and (b) find an optimal way to finish those tasks.
Dependable errand runner
The second demographic runs errands related to managing a home. While efficiency is important to this demographic, it can be relaxed as long as certain constraints are met. One type of constraint is absolute time of day: It doesn't matter how much time it takes to do the dry cleaning as long as the kids are picked up between 2:45p and 3:15p. Another type is order of events: It doesn't matter how long it takes to get to the market from the previous destination, as long as the distance from the market to home is as short as possible (to avoid food going bad). This demographic uses SMak to make sure that, given a plan of execution, all such constraints have been met.
Cross-border traveler
The last demographic is people who travel abroad to foreign places. As is the case with people running errands, tourists typically know what they want to see and where they want to go, but not how to do it once they are there. It is typically difficult for this demographic to change plans in case of a museum closing or children suddenly getting hungry (for example) because the demographic is not familiar with the area. We think SMak will help with this problem because if a change in plans does occur, the interface will be able to dynamically re-route the remaining destinations.
User Interviews
User 1: Physics graduate student "Martha"
Statistics:
- Age/Gender: 24/Female
- Education: Two B.A.s at U.C. Berkeley, currently pursuing Ph.D. at Purdue U
- Culture: Chinese/American
- Language: English
- Physical limitations: none
- Computer experience: interacting with a terminal and using a smartphone, basic Windows experience
- Motivation: Plan errands and optimize daily routine
- Domain experience: has been scheduling errands her entire life
- Application experience: uses a task list and google calendar on her phone
- Work environment: graduate student office, experimental physics lab
- Communication patterns: sends texts, emails and uses video skype. Uses phone if these other mechanisms fail.
Description:
Martha is a 24 year old physics graduate student, pursuing a Ph.D. in the Midwest. Like most graduate students, Martha spends most of her time in the lab, but completes her errands when she has enough of them built up. We followed Martha around on a day of errands as she got ready to throw a weekend party at her apartment.
Martha uses a personal whiteboard to manage her TODO list. When she decides to do errands, she copies the whiteboard to a post-it note and then goes down the post-it note in order. Most of the time, Martha's roommate Rachael asks her to do some common area tasks, like buy paper towels, liquor, and such. When this happens, Rachael will give Martha another TODO list, and Martha will use both of them for the errand run.
Lessons learned:
- Tasks are important, venue isn't necessarily important. Moreover, sometimes where not to go is more important than where to do. Martha had to buy a picture frame. Martha didn't really care where we got the frame from, as long as it wasn't Walmart (we eventually went to Target).
- It would be very useful to have a smartphone say things like "start getting ready to leave now" and "you have 10 more minutes before you have to leave the supermarket"---especially if planning errands is done for you.
- Efficient grocery shopping is perhaps a more important problem than planning out a place-to-place schedule. Most people fill a TODO list with groceries and look for the groceries in that order once they get to the store. This usually wastes an hour for a large grocery run. If users input their grocery list as a set of tasks, it seems that it would be very useful to sort the items by type.
- Specifying "do this errand first" and "do this errand last" is a very important constraint. In the wintertime, Martha always stops at the Starbucks first so that the coffee keeps her warm. In the summertime, she always does this step last as a reward for finishing her errands. She usually incorporates lunch into her errands, and likes to get get lunch last so that she can eat it at home once she is done.
User 2: Stay-at-home-mom, "Elaine"
Statistics:
- Age/Gender: 42/Female
- Education: A year at Duke.
- Culture: American
- Language: English
- Physical limitations: bad eyes
- Computer Experience: general using the internet, playing games, research.
- Motivation: get errands done and try not to be so OCD/anal about things.
- Domain Experience: has been running errands since...age 18?
- Application Experience: can use google maps, calendar, email, etc. on
Description:
"Elaine" is a middle-aged stay-at-home mom whose kids have moved out of the house and whose husband works in the city. She tends not to be busy, but by habit likes to optimize things...except for spending too much time optimizing. She has a car but also access to bus and thus also rail into the city.
Lessons learned:
- Has a car only intermittently (husband usually drives into the wharf to take the ferry in.)
- Not certain which stores have things, so will check something closer before visiting something farther.
- Is parking available? also quantity and size of parking spaces.
- Some errands are flexible: can do them at really any time and possibly drop.
- She does not like driving at night or in inclement weather.
- Even for things where she can drop stuff off, she prefers to do that when it is open.
- For picking up something from a pharmacy, she'd call ahead of time.
- She would do grocery shopping later because food is perishable. This is weather dependent: Is it cold?
- Are things being bought in bulk or not.
- Is the neighborhood safe? If not, goods are also likely lower quality
She'd been meaning to see if she should actually switch to a different route, so I asked her to let me watch her do that. To do so, she actually wanted to use a paper map (because she would usually do this in the car mid-trip. Perhaps that means we should do this for mobile devices?), and she traced out her route on that, (also explaining about the trip she would take to run errands) but did not actually determine which route she would prefer and said that she'd look that up on the computer later.
User 3: The Novice Traveler, "Kevin"
Statistics:
- Age/Gender: 22/Male
- Education: Just graduated from a 4 year university
- Culture: American
- Language: English
- Computer experience: uses a smartphone, basic Windows experience
- Motivation: Planning a vacation
- Domain experience: No previous experience in planning trips
Description:
Kevin is a 22 year old college graduate who is planning a trip with his friends to Europe over the summer. Neither he nor his friends have ever been to Europe before. In planning for this trip, Kevin researched online and created a list of all the attractions he is interested in visiting. Next, he plotted them on a map and clustered them into groups that could be visited on the same day. If there was an attraction that was too far out of the way and was not worth sacrificing other attractions for, it was eliminated. Depending on what times the attractions were open for on different days, Kevin chose the best day to visit each cluster of locations. Using the hours of operation, Kevin also decided the order in which to visit the attraction.
Lessons learned:
- Users might be unfamiliar with the city
- Users might be unfamiliar with the local language and culture
- Some schedules might need to span more than one day
- Not all desired locations needed to be visited. It is perfectly acceptable to omit some attractions, as long as they are not the main attraction.
Task Analysis
- Input destinations
- Goal: Allow the user to input destinations to visit
- Preconditions:
- Determined locations to visit
- Pre-loaded constraint information about destination like hours of operations, lunch break, expected time for visit
- Subtasks:
- Auto-complete/correct destination names
- Add/edit constraints for destinations
- Goal: Modify constraints for destinations such as:
- best time to visit
- appointment times
- known duration of visit
- "visit this destination first" and other similar constraints
- What is the priority for visiting a given place (relative to visiting other places) (example: important, very important, etc)
- Preconditions:
- Know what time appointments are scheduled for
- Have an estimate of the amount of time that needs to be spent at each destination
- Subtasks:
- Add “global constraints” such as:
- Between what times these destinations need to be visited
- Earliest time / latest time ("I want to wake up at...")
- Partial orderings of destinations ("I want to visit the post office right after I buy stamps at the paper store")
- What type of transportation (car, public transit, walking) is preferred
- Place priority on different constraints (example: it is most important to visit all places or it is most important to visit some places but stay for the whole time. When you have three museums to visit, you want to get to all of them for a short period each. If you have three shows to go to, choose two and see the whole show; don't walk out early on each show).
- Add “global constraints” such as:
- Goal: Modify constraints for destinations such as:
- Auto-generate schedule
- Goal: Using the destinations and constraints inputted by the user, create a schedule to visit all the destinations that meets all the constraints
- Preconditions:
- All those listed under the "Input destinations" task
- Subtasks:
- Display the generated schedule both overlayed on a map on and a timeline
- Display the optimal path between locations on a map
- Show the user the delta between the auto-generated schedule and any partial schedule that the user had previously worked out, so that the user can choose to accept or decline some or all of the changes
- View and Adjust schedule
- Goal: Change and tweak any part of the schedule including the
- Order of destinations
- Duration of visit
- Path to take between destinations
- New constraints for one or more destinations
- Preconditions:
- At least one destination must already be in the system, inputted by either the user or through a generated schedule.
- Once a schedule has been auto-generated, the user should will still be able to make changes to it
- Subtasks:
- Edit destinations and paths from place to place
- Goal: Change and tweak any part of the schedule including the
- Incremental schedule rollback & history
- Goal: Allow the user to undo changes made to a schedule, or revert changes made through generating a schedule
- Preconditions:
- At least one action must be taken towards creating or refining a schedule
- Subtasks:
- Create a language to describe changes made to a schedule, so that all schedule revisions are labeled in a readable way (such as "Moved groceries to the first stop")
1 Comment
Sacha Zyto
Your problem statements, user analysis and task analysis are excellent. My only concern is the scope of the project: A UI that solves organization problems for stay-at-home moms who nkow the city very well might be quite different from the one that's best suited to travelers who want to get the best out of their visit of a new city: I would suggest to focus on one problem, which is perfectly fine for this class.