Avalanche

From Cmsc434_s10
Jump to: navigation, search

Purpose: To provide Skiers and Snowboarders a better way of gathering information about conditions and Ski Resorts

Team members:

align=center

Project Proposal

Users and tasks

  • Users: Skiers and Snowboarders in the Maryland/Washington D.C. Area
  • Tasks:
    • Inform users of:
      • Nearby Resorts
      • Directions
      • Conditions(Weather and Snowfall)
      • Number and types of trails open
      • Lift Pricing
      • Special Events

Existing solutions and their limitations

  • Skiers and Snowboarders must obtain information from the individual websites of the ski resorts, it takes time to compare rates/hours/slopes and location
  • Alternatively to using the websites, users must look up the numbers and call each resort, obtain fliers, or gather information from people who have already gone
  • Not easy or intuitive for new skiers and snowboarders, its hard to remember names, they don't know where to start

Why Avalanche is advantageous

  • Compares Resorts in an easy to remember and intuitive way, and provide information about all resorts hours/location and pricing
  • Limits the amount of searching and information gathering required to plan an adequate ski trip
  • All of the information is presented in one central application location

Meeting notes

  • Decided on project direction with webapp to track information about local ski/snowboarding resorts
  • Decided on the name of the web application : Avalanche
  • Determined specialized users will be skiers and snowboarders living in Maryland near the Washington D.C. Area
  • Discussed initial design prototype for the application
    • Decided to use top menu bar for navigation
    • Side menu bar for filtering data
    • Possible table display for comparing resort information
    • Individual information and travel info for each resort
Whiteboard1.jpg Whiteboard2.jpg

User and Task Analysis

Applicable Techniques

3 Applicable techniques:

Focus Groups

Gather focus groups full of people from different groups that ski, such as local community clubs and organizations(Chesapeake Ski and Sports Club, Southern Maryland Ski Club) various campus ski groups (TerpSki, York Ski and Outdoor Club), and other people who have never skiied before. The focus groups will be asked questions to be discussed and debated, and the responses will be recorded to gain a better perspective on how people think and approach the activity of skiing. Some questions that will be discussed in the focus group involve:

  • Describe your first skiing experience
  • Describe your worst skiing experience
  • Describe your best skiing experience
  • How would you take friends or relatives skiing with you?
  • What tasks do you normally perform at the ski resort that interest you?
  • When do you usually ski the most?
  • What information would help your decision to ski?
  • What is your opinion of the persona of ski resorts?

Direct Observation

To conduct our direct observations we will ask a person to perform a task, and observe the methods and thought process they employ to accomplish the task. We will need to select users who are skiiers, and users who have never skied before. The tasks we give to the users will be:

  • Find a ski resort
  • Find the closest ski resorts
  • Compare the prices of the closest ski resorts to find the cheapest
  • Find the cheapest/best value packages for a new skier
  • Find an event at the closest ski resorts that interests you
  • Compare overnight rates for ski resorts and availability of lodging
  • Compare skiing conditions for closest ski resorts

Questionaires

  • How long have you been skiing for?
  • How often do you go skiing?
  • What is your age?
  • What is the most important factor to you when choosing a resort?
  • Do you visit resort sites individually for information?
  • Do you research slope conditions before skiing?
  • How far are you willing to drive to go skiing?
  • How much money do you generally spend on a ski trip?
  • How many people do you normally ski with?
  • Are you a beginner, advanced, or expert skier?
  • Is a family friendly ski resort important?
  • Do you ever stay overnight at the ski resort?
  • Have you ever cancelled a ski trip, if so, why?
  • How good are your basic computer skills?
  • Would you go skiing more often if information about slopes was more readily available?
  • Is there any special needs you have when you go skiing?


User Classes

Causal/New Skiers

  • Age: 18-40
  • Education: College
  • Job: White collar, entry to mid-level
  • Computer skills: Average
  • Location: City
  • Motivation: Gather info about ski resorts that are close and are cheap
  • Social Context: College environment, Community Clubs
  • Usage Pattern: Mainly information gathering and searches

Experienced Skiers

  • Age: 18-60
  • Education: High School to College and Career
  • Job: Consistent work
  • Computer skills: Average to Intermediate
  • Location: Rural to Suburban
  • Motivation: Get detailed information on conditions and ski resort events
  • Social Context: College environment, Professional Environment
  • Usage Pattern: High, needs to know slope conditions everyday

Family Skiers

  • Age: 30-60
  • Education: Career
  • Job: Steady high paying work
  • Computer skills: Average
  • Location: Suburban
  • Motivation: Desires optimized trip for family bonding/enjoyment
  • Social Context: Family and Neighbors
  • Usage Pattern: Medium High, needs to gather as much information as possible about different aspects of ski resorts

Daytrippers

  • Age: 18-75
  • Education: High School, College, Career, Experienced Career
  • Job: None to College to Career to Nearing Retirement or Retired
  • Computer skills: None to Average to Awesome
  • Location: Anywhere
  • Motivation: Desires day trip for enjoyment
  • Social Context: Friends and Neighbors
  • Usage Pattern: Medium High, needs to gather as much information as possible about different aspects of ski resorts

Personas

Casual/New Skier

Sue Kimball is a 26 year old college dropout. She has decided to try out skiing because she has failed at most other things in life. Looking for something new, Sue would like to find some cheap accommodations for herself, where she can go for a while to "find herself". Although she isn't rich, Sue does have a lot of time.

Experienced Skier

Ezekiel Chavez is a 54 year old skiing veteran. Despite having broken almost all of his ribs over time, Ezekiel skis every year on at least a couple trips. Although he is quite familiar with the resort layout, it takes him so long to plan out his trips that he has to change his colostomy bag twice during the whole ordeal. He could really use something to speed up his info-gathering.

Family Skier

Herbert Chase is 39 years old and his wife is leaving him. He would like to take his 3 children on one last vacation before she gets full custody. Money isn't as much of an object to Herbert as this is likely the last time he will see his kids. Amenities and hotel ratings are therefore important to him.

Daytripper

Gregory French is a 19 year old philosophy student. Despite his rigid academic requirements he is able to find the time to go skiing almost everyday. He typically hits the bar before deciding upon a destination, and then he goes to another bar afterwards. After he has prepared himself mentally for the upcoming trip, Gregory hops in a carpool with a few other like-minded students and they zoom off to a nearby resort to spend an entire day at. Therefore basic conditions of nearby resorts are important to Gregory when he is sober.

Other Potential Stakeholders

  • Ski resorts
  • Ski condition websites such as skireport.com
  • Weather reporting sites
  • Search engines
  • Map direction sites such as MapQuest

Tasks

Find closest ski resort

Goal: Find the closest ski resort to your location, using our app's interface

Precondition: User doesn't want to drive too far

Sub-tasks:

  1. Launch app home page
  2. Type zip code into box labeled "Zip Code"
  3. Click "Find Closest Resorts"
  4. Click on name of closest open resort

Complexity: Very low

Frequency: Whenever user is only looking for proximity

Potential Errors:

  1. User types in wrong zip code
  2. Proximity algorithm returns incorrect results

Compare ski resorts for lowest price

Goal: Find the resort with the lowest price through our app's interface

Preconditions: User has a limited budget

Sub-tasks:

  1. Launch app home page
  2. Table of resorts on home page should already be sorted by price
  3. Click on name of cheapest open resort

Complexity: Very low

Frequency: Whenever user is concerned about price

Potential Errors:

  1. Price sorting algorithm incorrect
  2. Prices may not be up-to-date
  3. Prices may not reflect time-specific price reductions

Find best value package for new skiier

Goal: Find a cheap resort which has lots of beginner slopes

Preconditions: User wants to get their first experience with skiing and doesn't want to spend too much money

Sub-tasks:

  1. Launch app home page
  2. Look at table, it will be sorted by distance
  3. Click on a resorts to go to the resort page
  4. Look at the packages available, see how many beginner packages they have
  5. Determine if the beginner package suits needs

Complexity: Medium (Must have knowledge of what types of slopes/packages to look for)

Frequency: Whenever a user is interested in a first ski trip

Potential Errors:

  1. Certain slopes may be closed on certain days but not reflected on our app
  2. User may not know to look up how much lessons cost


Compare overnight rates and availability of lodging

Goal: Determine if a resort has overnight capabilities and how much it costs

Preconditions: User plans to be at the resort overngiht

Sub-tasks:

  1. Launch app home page
  2. Type in zip code
  3. Resorts are sorted by distance
  4. Click the filter option on the side to include only resorts with lodging

Complexity: Low

Frequency: Whenever user is looking for overnight lodging

Potential Errors:

  1. Rates of lodging change frequently and may be inaccurate
  2. Hard to determine whether or not lodging is full

Find an event at closest ski resort that interests you

Goal: Find a resort which is both close and has an interesting event

Preconditions: User wants to attend an interesting skiing event that is not too far away

Sub-tasks:

  1. Launch app home page
  2. Type in zip code
  3. Click on a few nearby resorts
  4. Look at events on each page, click on one if it interests you

Complexity: Low

Frequency: Whenever user is looking for a special skiing event

Potential Errors:

  1. Dates of events may not be up-to-date if rescheduled'
  2. All events for a certain resort may not be listed

Compare skiing conditions

Goal: Find a fairly cheap resort with moderately nice weather

Preconditions: User doesn't want to ski in bad weather

Sub-tasks:

  1. Launch app home page
  2. Look at table, click on "Conditions" column to sort by weather
  3. Find resorts with moderate conditions
  4. The table should be secondary sorted by distance, so click on prices to sort resorts with moderate conditions and lowest prices
  5. If resort has an acceptable price and acceptably moderate conditions, select it

Complexity: Medium (Must understand what different slope conditions mean) Frequency: Whenever a user wants to ski in good weather

Potential Errors:

  1. Weather conditions may not be accurate
  2. User may not understand exactly what each slope condition means

Design Sketches

Scenario

"Jim is a middle class man working as a manager at Ikea with a loving wife and two children. Jim has gotten a bonus at work recently, and would like to take his wife and children out for a wonderful winter weekend (MOTIVATED). Jim has not been skiing since he was a boy and has no idea what ski resorts are even near him (NEEDS). Jim has asked people at work about finding ski resorts and they suggested to use the Avalanche ski resort tracker. Jim navigates to the Avalanche ski resort tracker (CONTEXT) and enters his zip code (SUBTASK) and the clicks the find closest resort button (SUBTASK). Jim accidently entered and incorrect zip code (ERROR) but the application returns to the main page with a simple statement that the zipcode was incorrect (ERROR RECOVERY). Jim enters his correct zip code, and the resorts closest to Jim are displayed on the application (TASK 1). Jim examines the options that are now in front of him. Jim doesn't make a lot of money, and he wants to make sure he gets the best value for his money, so Jim wants to find the cheapest of all the resorts in front of him (NEEDS). Jim sees the filters on the side to sort the resorts(PRECONDITION), and he clicks the price filter(SUBTASK) and the resorts are displayed by their price (TASK 2). Jim is now curious whether or not there are any good beginner packages at the resorts so that his children can learn to ski properly (NEEDS). Jim clicks on the resort name(SUBTASK) and then under the description of the packages available, Jim determines which beginner package would benefit him (TASK 3). Jim is now satisfied with the amount of information he has obtained, and is able to make a decision about which resort he is going to go to. Jim's wife Natalie walks in and asks him whether or not the ski resort Jim has chosen has overnight possibilities incase they are to tired to drive home afterwards (NEEDS). Jim revisits the Avalanche web application and navigates to the resort page(SUBTASK), enters his zipcode(SUBTASK), and clicks the filter option to view only resorts with available hotel lodging (TASK 4)."


"James is an awesome snowboarder, and he wants to show off his gnarly snowboarding skills at one of the local resorts(MOTIVATION). James is a bit egotistical, and he wants to make sure he can impress as many girls as he possibly can. He wants a sweet event that he can invite all the girls out to. James goes to the Avalanche ski resort tracker and enters his zip code(SUBTASK), afterwards he clicks on his favorite resort Whitetail(SUBTASK) and looks at the resort page for upcoming events(TASK 5). James sees that there is an awesome half-pipe competition this Saturday, but he does not want to snowboard or have beautiful women out in crappy weather so he needs to know what the conditions will be like that day(PRECONDITION). James clicks the back button to the main page(SUBTASK) and clicks the filter on the side to sort by the weather conditions (SUBTASK). James is able to see the current conditions of Whitetail(TASK 6), but he is not sure of the weather for this weekend(ERROR). Regardless James is going to win the halp-pipe competition and impress lots of women."

Preliminary design sketches

Avalsketch2.jpg Avalsketch3.jpg

Storyboards

Conceptual storyboard

UI storyboard

Paper Prototype

Risk Assessment

These are some of the risky parts of our prototype, and which scenarios will test them:
Login page
All users will hit the login page first. Therefore, every scenario will test the potential risks on this page, such as:

  • User does not enter anything
  • User enters an invalid zip code
  • User enters a username which does not exist
  • User enters a password which does not match the username

Registration page
Any user who wishes to register will hit the registration page. Therefore, a scenario where the user has to register would test the potential risks on this page, such as:

  • User does not fill in all required fields
  • User fills in some fields with invalid data
  • User enters a user name/email which already exists

Main page
Users who wish to view all of the resorts and sort/filter them by certain conditions could encounter the following potential risks:

  • User does not know that they can click on the column headers to sort
  • User enters invalid constraints on the custom filter panel
  • User does not know that they can click on a row to go to the specific resort's page
  • User does not know how to reset the data table to its original state

Specific resort page
Users who wish to view extended details about a specific resort and look into buying tickets to the resort could encounter the following potential risks:

  • User does not know how to return to the page with a list of all resorts
  • User does not know where to click to buy tickets for the resort

Prototype Photos

Briefing

Users were briefed with the following information:
Avalanche is an appication that tracks information about Ski Resorts that are near your current location. It attempts to gather information such as distance, driving directions, conditions of the slopes, events currently going on, and lodging information for resorts near your zip code. Upon first using the application you are presented with an initial page that asks for a username and password or a zip code. If you are a returning user then you would login to our system, otherwise you will enter your zip code. There are three tasks to perform after entering your zip code or logging in, you must find the ski resort closest to you, filter the results of the ski resorts found, and determine the conditions and attempt to purchase a ticket from a selected ski resort.

Scenario Tasks

  1. Find the Closest Ski Resort
  2. Filter Results and Compare Prices
  3. Compare conditions and attempt to purchase ticket from a selected ski resort

Observations

Finding Nearest Resort: entering zip code does this automatically Filter Ski Resorts Find Conditions Order Ticket

Registration: make user type password twice Make sure the user doesn't have too much clutter. This can be achieved by having clear borders, color differences, spacing, etc.

Login screen: zip code entered (2/2 times)

Jeff Gunzelman - Satisfaction during operation "awesome!" - Stress: low - Suggests making links more recognizable as links - High level of satisfaction

Kashif Khan - Did all of the tasks on the first try, no confusion

Wen Li: - Chose to register - NO DOUBLE PASSWORD FIELD noted - Sorted/filtered easily

Mike Donovan: - need to specify which field need to be typed in - understood filters instantly - filtering: if no results, indicate that there are no results so user know's it's not still loading or a Flash error - Label/title the sections - Change "slopes" label to "Trail" name - In conditions, include weather and top-level stuff as well

Events near you: add a column for distance at the end

Frank Cannavo: - between Username/PW fields and Zip Code field, add an "or" label - used app very well

Idea: dump users, site does not require you to register

Prototype iteration

  • Elminated Login/Register Functionality

Found that Users did not use the login or register functionality and always accessed the application through the zip code. Users were often confused which text field they were suppose to type in, so we reduced the complexity to just the zip code text field.

  • Add weather conditions to Resort Pages

Found that Users were confused by the slope conditions on the Resort page, and the weather conditions on the sorted Resort table. The Resort page will be updated to contain both weather conditions and slope conditions.

  • Change the "Slopes" label on the Resort pages to "Trail"

Users were confused about the slope conditions on the Resort page, and changing the label to "Trail" may clarify the information and understanding.


Observations on the real users

Usability problems you discovered with the new prototype from testing with real users. You should include at least 3 users from outside the class.

Josh Fann
Not much trouble using interface - minor issues he raised include: need a way to go back to filtered table of resorts from a specific resort page, "Resorts" button should, however, reset the table filters.

Chris McCurdy
Thought our interface should specify that the "Buy Tickets" button will open the ticket order form in a new window/tab.

Anthony Arnold
Thought our interface should specify which type of ticket the "price" column in the data table is for, and allow users to pick which type of ticket should be used for the "price" column.

Eddie O'Neil
Thought it wasn't immediately clear what he had to do next to complete the task - the interface should have more instructions, tooltips, etc.

Risk resolution

  • Remember the User's filter settings.

Users would often navigate back and forth between the Resorts, and they would forget the filters they placed upon the resorts.

  • Hardcoding nearby accommodations.

It isn't feasible to integrate the web app with local accommodations. Therefore lodges can be initially and continually updated on the app. The effort required for this will be minimal as lodges don't come and go very often.

  • Display basic instructions for users.

A rough outline of what the user needs to do in order to complete the basic tasks should be displayed on the login page and then in smaller split-up portions around the app during user navigation.

  • Adding ticket types to the filter system.

This will tailor pricing results to the users better, based on what kinds of tickets they are looking for (day passes, weekend, beginner packages, etc).

Computer Prototype

Prototype

Avalanche!

Screenshots

System Requirements

The program was tested using both Windows and Mac platforms. Requires a basic version of Flash.

Fidelity

Low fidelity prototype. Visual refinement is basic in terms of color choices, but the final revision will be much more professional. The layout has been finalized, but the location of different components is unlikely to change dramatically. Functionality that has been implemented includes finding the closest resort, browsing the resort list, and entering the zip code. The functions that were implemented do not have that much depth, as they are only basic representations of what the actual page will look like. The prototype if fairly interactive, the user can enter different zip codes and visit different screens on the resort browsing page. The data model right now does not include any of the server database that will be implemented in the future, everything is run locally.

Comparison

  • Enter Zip Code

Avalproto3.jpg AVAvs0.png

  • Homepage

Avalproto2.jpg AVAvs1.png

  • Resort List

Avalproto4.jpg AVAvs2.png

  • Resort info page

Avalproto5.jpg AVAvs3.png

Experimental Design

Experiment 1 (Paul)

Part 1: Design

1. State a lucid and testable hypothesis A user can identify the nearest 2 ski resorts using Avalanche faster than Google Maps.

2. Identify independent and dependent variables


Independent: Method used to find 2 nearest ski resorts.

Dependent: Time taken to find nearest two ski resorts.

Controls (per user) (list three variables you may want to control)

1: internet connection

2: computer system used

3: user's environment


3. Design the experimental protocol Task: User must locate two nearest ski resorts using selected method. [x] between subject,  within subject


4. Choose the user population

Who? Skiers aged 18-30 years old.


How to sample? UMD Ski Club

Experiment 2: Avalanche vs Skireport.com (Ben)

Part 1: Design

1. State a lucid and testable hypothesis Avalanche can filter close resorts according to trail conditions faster than a comparable site (skireport.com) can.

2. Identify independent and dependent variables

Independent:

  • Avalanche interface or Skireport.com interface

Dependent:

  • Time it takes to get a list of close resorts arranged by conditions

Controls (list three variables you may want to control)

1: Internet browser type 2: User age / experience 3: Internet connection speed

3. Design the experimental protocol Task: The task is to find a list of the three closest ski resorts and have them sorted by overall trail condition. [ ] between subject, [x] within subject


4. Choose the user population

Who?

  • Mostly people under the age of 60
  • Male or Female
  • Basic computer skills
  • Multiple skiier experience/types (Daytripper, Family Skiiers, etc)

How to sample?

  • Use a range of ages (both younger and older)
  • Range of skiing/computer experience (less/more experienced users)
  • Range of professions (students to high-level executives)

Experiment 3: Avanlanche vs. DCSki (Justin)

Part 1: Design

1. State a lucid and testable hypothesis

  • Avalanche will get the user comparative information on ski resorts faster than the website DCSki.

2. Identify independent and dependent variables

Independent:

  • Location
  • Internet Service Provider
  • Interface

Dependent:

  • Speed of Access
  • Speed of Response


Controls (list three variables you may want to control)

1: Location

2: Internet Service Provider

3: Ski Resorts


3. Design the experimental protocol Task:

  • User will access both of the websites and compare all the ski resorts for a certain location to find the lowest price and best conditions. They will compile this information and the experiment will time the user to see how fast they can acquire this information.

[ ] between subject, [X] within subject


4. Choose the user population

Who?

  • Regular Skiers
  • New Skiers
  • Business Partners


How to sample?

  • Sample people in different age groups (18-45) and (45-70)
  • Sample males and females
  • Sample with people who have used the website DCSki before
  • Sample with people who have used Avalanche before

Experiment 4 - Avalanche vs. Orbitz (Jeff)

Part 1: Design

1. State a lucid and testable hypothesis

Is it faster for college students to find a hotel on Orbitz or a ski resort on Avalanche which is close to them?

2. Identify independent and dependent variables

Independent: Which website the user uses

Dependent: How long it takes them to find a hotel/resort

Controls (list three variables you may want to control)

1: Operating System

2: Browser

3: Internet connection speed


3. Design the experimental protocol

Task: Starting from the home page, try to book the hotel/resort nearest to you using only the instructions given on the pages.

[X] between subject, [ ] within subject


4. Choose the user population

Who?

College students

How to sample?

Stratified sample: Even distribution of freshman, sophomores, juniors, seniors, girls, boys, majors, etc.

Implementation

Program

Avalanche!

Status: Google Maps refuses to work from this spot on the server. The google api key is valid for this domain, but there is a seurity sandbox violation error which prevents it from working. So the Google Map and driving directions portion of this application will not work from here. Email disdanes@yahoo.com for a local copy to test.

Scope

MUST HAVE:

  • Google API Integration with Driving Directions [assigned to Justin Lindsey]
  • Sortable Results table based on each option (Price, Distance, Condition) [assigned to Ben Cwik]
  • Tickets Button opens to respective resort website [assigned to Ben Cwik]
  • Server backend with the resort data (at the least) [assigned to Jeff Jacobs]
  • Administrator Panel with a way of adding resorts, communicating with server, and updating resort info [assigned to Jeff Jacobs]
  • Short "How To" guide for new skiiers who need some starting guidance (people who are unsure of what they are looking for starting out) [assigned to Everyone]


NICE TO HAVE:

  • Pictures on the Results table for user satisfaction (ie. Suns next to Sunny condition, Clouds next to cloudy, storm next to snowing/blizzard) [assigned to Paul Goldin]
  • Pictures on the trails table for the trail difficulty (circles for green, squares for blue, diamonds for black) [assigned to Paul Goldin]
  • Nice Logo [assigned to Ben Cwik and Justin Lindsey]
  • Server backend processes distances and displays resorts based on a certain distance (so invisible auto-filter) [assigned to Everyone]
  • 3rd Tab with ski tips or just a links page to various ski shops/training videos or websites [assigned to Justin Lindsey]
  • Save/store temporary user information such as zip code/filter settings [assigned to Everyone]

User Testing and Analysis