Michael Harper

UX and Product Designer

Alfred Self-Service


Alfred already served the task of contactless access control via Apple and Android devices, but this approach required ticket takers equipped with scanner devices. Based on a stripped down set of functionality, the self-service application allows guests to scan their own tickets for quick access to venues, suites, or clubhouse seats via an Android powered kiosk scanner. While much of the functionality is similar to the hand scanner, the change in form factor and user personas meant the application needed a redesign.

Given my familiarity with the hand-held version of Android, I was assigned as the user experience design resource for the redesign. I worked together with the stakeholders group, which included ticket sales specialists, technical writers, developers, and representatives from Boundary Devices, who would oversee the manufacturing of the devices and implementation of the software.

Constraints & Circumstances

Adapting an existing application for a new kind of user presents unique challenges that need to be considered at the beginning.

  1. The existing Alfred application included many highly technical features for venue staff, which would no longer be necessary for guest users. Some features could be removed outright, but other features would need to be simplified or combined to provide guests with relevant information for their tasks.
  2. While mobile devices can be easily repositioned for better visibility or access to touch interactions, the self-service devices would be fixed to stands or to walls. It was crucial that both the device and the application be built with these issues at the heart of every consideration.
  3. Since the production of the device was centered in China and the application began in late 2019, the COVID-19 epidemic and eventual pandemic complicated development and design. The few completed prototype devices had to be shared between all the stakeholder and device-based user tests planned for Major League Baseball's 2020 Spring Training were canceled.


While Alfred can provide a wide range of error codes for ticket takers to diagnose issues, guests using self-service only need to understand high level issues and how to fix them.

Using an early prototype, we did internal heuristic evaluations on Alfred's error messages to find which ones were helpful, confusing, or unnecessary, and whittled down the messaging to cogent, actionable messages for the guests. Further, we compared the Alfred data set with information present on paper tickets and popular ticketing applications to narrow the unique ticket information that users would find helpful on the self-service device.

In testing, we quickly discovered that it was easy to accidentally scan one ticket multiple times, which is much harder to do with a trainer ticket taker using the hand-held version. To better meet this issue, I designed an error state that would inform user of this mistake without appearing alarm and hopefully guiding them to the next ticket.

Prototype of Alfred Error Prototype Alfred Error Finalized version of Alfred Error Final Alfred Error

With the information requirements established, I was able to design a UI to clearly communicate this information in a highly readable format, with considerations for how message lengths might affect font sizes and legibility.

User Flow

While ticket takers could receive extensive training on the Alfred device, guests needed to be able to intuitively scan their tickets, navigating not just the software UI, but also the hardware's features like bar code scanning and Near Field Communication (NFC) scanning.

Working with business analysts and stakeholders, I narrowed down the required Alfred functionality required for guests to use self-service. Advanced Alfred functionality like reporting or ticket sales would not be necessary, so initially I prepared a rough prototype, fitting only the relevant Alfred functionality to the appropriate form factor.

Performing regular usability tests with stakeholders, I was able to refine this functionality into a smooth flow. For example, functions like scanning bar codes or NFC tickets required button presses in the ticket taker application, but on the self-service machine these functions are left on awaiting a user to interact with the device. Additionally, I created decals for the hardware to better indicate proper areas for bar code and NFC scans.

Prototype of Alfred Home Screen Prototype Alfred Home Finalized Alfred Home Screen Final Alfred Home


Since Alfred is a white label product, venues needed to be able to apply their own branding to make their customers feel at home. Additionally, venue branding would need to support application's core functionality, provide accessibility, and be visible in a wide range of indoor and outdoor lighting situations.

Prototypes were developed with WCAG and ADA guidelines in mind, including color blind contrast considerations, readability from all angles, and easy to read fonts. Testing was carried out on devices in a number of locations including under sunlight and fluorescent lighting, and screen legibility was tested from above and below.

A set of branding guidelines was written up, with specific requirements on contrast ratios and recommendations on colors. Additionally, I worked with the manufacturer to improve the screen quality in specific situations, resulting in an upgrade to the screen's display technology after the prototype phase.


Alfred's development was completed in February, and we were able to begin demonstrating the final functionality to clients and venues. The initial impressions were promising, but the closure of venues and stadiums due to the COVID-19 pandemic prevented us from collecting data from real world usage. If we can revisit the project some day in the future, I would like to improve venues' abilities to theme the application with more color and font choices. I would also like to see how the application fairs in higher traffic areas, like entrances, versus low traffic areas like clubhouse suites and VIP areas, and iterate on the application for both use cases.