Spiffy Car Wash App - UX Case Study
Evaluation & Redesign Concept
After experiencing some usability issues when booking a car wash, I undertook an evaluation and redesigned the spiffy car wash mobile app as a user experience concept.
Approach: heuristic evaluation, task analysis, cognitive walkthrough.
After conducting evaluation and analysis, I discovered the existing app violates a number of usability principles. These violations make learnability really difficult for the user, they increase the cognitive load required to book a car wash appointment, and decrease the flexibility and robustness of the application's usability.
For a social application that user's visit every day, usability violations are often overlooked because the daily use ensures memory of obscure user flows and inconsistent actions. However, when a utilitarian application, used infrequently, violates so many usability principles, the user has to relearn how to navigate and operate the application every time.
First Use Pain Points:
- The main case, booking a car wash appointment, is given equal weighting on the home screen to messaging, arguably an edge case.
- There is no obvious design pattern, UI elements, their placement, and their colors are inconsistent and they lack affordance.
- The navigation has too many items and they are not grouped according to Gestalt's proximity principle.
- There is no ability to cancel an appointment once scheduled.
- Tame the color palette.
- Persistent navigation elements have been deployed reducing 3 screens to 2.
- Priority has been given to the main case, booking an appointment.
- The ability to cancel scheduled appointments has been provided.
- Messages now contained within a single feed, accessible from the persistent navigation, but not occupying the home screen.
- Account items have been grouped together and reduced by removing anything superfluous to booking appointments.
Booking a Car Wash Pain Points:
- The steps to book a car wash are out of context and they are spread out across too many screens.
- Users think of booking based on a time and day which informs the location, instead the app forces users to think location first.
- There is inconsistent language used across the app for similar user actions.
- UI elements for regressing to a previous state and exiting from a user flow are conflated.
- Total steps reduced from 5 to 2 with a more subtle progress UI approach.
- When and where a user wants the car wash contextualized following Gestalt's proximity principle.
- Date, time and location all accomplished in one step.
- Consistency in closing out of each screen.
Vehicle and Service Selection Pain Points:
- Selecting a vehicle, which informs the price (sedan vs SUV) is 4 steps when it could be reduced to 2.
- There is no way of reverting to the previous state from the vehicle info screen.
- There are too many service options and they are impossible to compare by tool tips and overlays for each service.
- Another set of options appears to choose from and I obviously don't have the data, but I would guess a significant majority of users simply skip.
- Half the number of fields now required for vehicle info.
- Reduced the service options just 3 to choose from, low, medium and high to increase conversions and minimize cognitive load from too many choices
- Easy to compare the 3 available service options.
- Number of steps to complete has been greatly reduced.
Date Selection Pain Points:
- Time and day selections are spread out across 2 screens when they could be condensed to 1.
- The confirmation screen implies that it is the 5th and final step, but you have to enter payment details afterwards, which is frustrating as you are made aware of progress.
- These pain points have been addressed by moving the date and time selection up front along with the location, as seen in previous screens
Payment Pain Points:
- The application immediately crashed after I entered credit card details.
- There is not enough error messaging, exits or error prevention within the app.
- Stored credit cards must be verified by reentering all details for each subsequent booking.
- Easy to identify accepted cards before attempting to enter them.
- Minimum number of steps required to complete.
- Task migratability from the user to the system for storing and retrieving card details.