As part of an interview series, Studio.init() tasked me to design a mobile transit app that enabled Gen Z’ers to find and navigate public transit routes efficiently. They made it clear that the design should address the pain points of public transit with users in mind.
I was allotted thirty six hours for this project, so I prioritized design decisions based on ease of implementation and perceived business value. I wanted to flex my skills not only as a UI designer, but as a product strategist.
Recent advances in location tracking have made taking public
transportation more convenient than ever, where riders have better, consistent service accessibility, increased information around route schedules and planned disruptions, and more accurate arrival estimates than ever before.
Still, as anyone who has ever ridden (and missed) the bus can admit, taking public transit can be ... far from ideal. Live time navigation may not always be accurate, deteriorating credibility and user trust. Furthermore, when this failure is unacknowledged, users are left with a pervasive negative association with public transit and the app. This by far is the greatest pain point and area for improvement.
In addition, transit apps can be improved by providing route alternatives are that are tailored to rider preferences around walking or social distancing. Some apps will alert riders only when a bus is crowded, but tolerance for higher capacity bus trips is context dependent (Ex, some riders may not want to ride a crowded bus during flu season). We can further personalize the app to meet rider needs by saving common trip routes or stops. This allows the app to still retain functionality in internet-scarce environments.
Lastly, there are many missed business opportunities to encourage bus ridership leveraging existing rider habits. By capitalizing on the social benefits of taking public transit (reducing traffic congestion, lowering carbon emissions, relieving the stress of driving in rush hour, etc.), we can incentive future usage through through goal definition and performance praise.
Alongside a few impromptu user surveys, I consolidated multiple research papers to understand the current public transit environment, as well as drawing from my own experiences as an urban transit rider.
Why are public transit apps inaccurate, and what can we do about it? It turns out API calls pull outdated, inaccurate bus scheduling data, due to poor data management by transit agencies.This decreased perceived reliability of transit services and increased feelings of anxiety and frustration almost all riders. The frustration of waiting for a bus that never arrived is almost always unacknowledged, further exacerbating an already unsatisfactory user experience.
Additionally, users experienced friction in switching between multiple different transit apps when traveling to different cities, suggesting that from a product development perspective, both riders and transit agencies could benefit from a white-labeled aggregate transit app, rather than one developed in-house.
"Added value of a customized transit app for metropolitan bus trips;" Read study here.
"Mobile App for Public Transport: A Usability and User Experience Perspective" Read study here.
"Current practices and emerging trends of transit apps for fixed-route bus services in the US;" Read study here.
"Rider Happiness Benchmarking Report" Read study here.
My goal was to design an app that realistically addresses infrastructural shortcomings in upkeeping public transit databases, while encouraging future bus usage by capitalizing on existing information around rider habits.
A good indicator of data quality? Recency updated. By showing users when the last time data for this bus schedule was updated, users are enabled to make bus riding decisions based off their own risk preferences, which allows for better outcome experiences.
Bus schedule last updated a month ago? Probably reliable. If it was last updated in six years ago, however, you might be better off walking. Equipping users with this context upfront gives riders more accurate expectations around arrival and wait times, and reduces the risk of frustrating outcomes.
Recent searches/bookmarks match rider's habits
Downloading map covers offline navigation
Visual redundancy of bus icon
Meta level of information (last updated, capacity percentage)
Even, with more mediated expectations, it's impossible to prevent the frustrating experience of missing a bus the public transit app said was coming. We can mitigate this negative experience by offering to compensate the users next ticket. Offering this not only incentives users to give us more feedback around system failures, it also acknowledges the inconvenience and shows the agency is taking it seriously, turning the an initially negative experience into a positive one.
By capitalizing on the social benefits of taking public transit (reducing traffic congestion, lowering carbon emissions, relieving the stress of driving in rush hour, etc.) we can incentive future usage through through goal definition and performance praise.
Miles tracked can be calculated in two ways, through location tracking or by ticket purchased (which estimates average miles traveled per ticket bought). This gives users privacy controls, while still providing positive feedback for their patronage.
Greater usage could be acknowledged through coupon codes for future rides, rewarding and incentivizing others to become high-use users.
Another way to foster a sense of trust in the app is to open lines of communication from the user. This is especially important with regards to safety while riding public transit, but lighter grievances such as technical issues regarding the app can be communicated as well. Intentionally asking for feedback give riders confidence that their concerns are heard, and can also be an outlet for positive commendation to public transit workers.
Rider feedback is most useful when it is tied to a specific trip, as this can help with future sentiment analysis—are rider sentiments correlated with specific bus lines or drivers? Times of day?
In addition, saving specific stops and routes in the app aids in rider trip planning by accurately reflecting rider preferences (least walking, least transfers, seating availability etc).
I'm grateful to Studio.init() for giving me the opportunity to really showcase my design process: Imagine fantastically, iterate practically, and implement fiscally.
I showcased this project by thinking of the users holistically, rather than focusing on any specific point in the user journey. Often times, it's much more meaningful to design for when things go wrong than it is for when things go right. Different levels of information account for different potential blinds pots in data management, and failure of the system is recognized and compensated for, hopefully making your next bus ride that much more smooth.
See Next Project