Case Studies

I study people and problems to design effortless experiences.

Mobile Cold-Chain Monitoring

Project Overview

The client reached out to me interested in developing a simple, mobile solution for short-range cold chain monitoring. I was hired to design the experience and build the iOS app in Swift.

The Problem

Cold chain monitoring is an important and well-established component of food and pharmaceutical safety across the globe. Until recently, much of the temperature data collection had been done manually, with individuals recording temperatures at specified intervals. Now, more and more monitoring is being managed by cloud-connected digital thermometers. These systems reduce human error and provide greater insight into product temperatures. However, there is still a dearth of affordable, mobile temperature monitoring solutions. The client had begun developing a small, cheap, Bluetooth temperature sensor and was interested in developing a mobile monitoring app to expand their business into this market.

Relevant Skills

  • End-to-end product development
  • UX design
  • Wireframing (Sketch) and prototyping (InVision)
  • iOS Development

My Role

  • Research the problem space
  • Identify user groups and user needs
  • Define the minimum viable product ("MVP")
  • Design and prototype the MVP
  • Implement the MVP as an iOS app in Swift

Defining the Problem Space

The client had years of experience with temperature monitoring in closed environments, so we were able to leverage their existing customer-base and explore different mobile monitoring needs. My initial goal was to identify some core use cases that would help define the MVP. Through conversations with their existing customers, we narrowed the problem space to short-range, temperature monitored deliveries. In particular, we identified short-range pharmaceutical deliveries (from vaccine/medication storage facilities to pharmacies and clinics) as the primary use case to design around.

 
 

Trying to understand short-range, temperature-monitored deliveries in an early whiteboarding session.

 

Understanding User Roles

Throughout the project, it was important to remember that we should not be reinventing the wheel. Businesses were packing, transporting, and unpacking temperature-controlled products without this product, and paying close attention to their existing systems and pain points was the best guide for product development.

I identified three primary user roles specific to the mobile monitoring experience: Packers, Drivers, and Receivers. Packers are responsible for moving temperature-controlled products from their storage locations into packages ready for transport, Drivers are responsible for bringing the right packages to the right destinations, and Receivers are responsible for confirming the temperature safety of each package and unpacking the products at their destination. This research also revealed situations in which a single person might play one, two, or all three of these roles. 

While I learned a lot through conversations with potential customers, I conducted additional research about efficient delivery practices by investigating how UPS, FedEx, Amazon, and others manage the logistics of getting packages from A to B.

 

Throughout the project, it was important to remember that we should not be reinventing the wheel.

User Flows & Rapid Prototyping

Having identified the primary user roles, I then documented their journeys and organized an detailed list of tasks.

 

Over time, insights get translated from the whiteboard into a structured documentation of user tasks and the information needed to accomplish them.

 

After developing this early concept of the user flows the app needed to serve, I sketched out possible home screens. I like to begin with hand-sketching because it allows me to quickly experiment with many different design patterns and select the best ones before jumping into digital wireframing or code.

 

My initial sketches often show multiple versions of the same screen and are annotated with notes about interactivity, states, and implementation considerations (among other things).

 

Over a couple of weeks, I designed low-fidelity wireframes in Sketch and combined them into a clickable prototype in InVision. Sketch and InVision integrate wonderfully for fast iterations on meaningful, interactive designs. Very quickly, we were ready to begin scaffolding the iOS app.

I like to begin with hand-sketching because it allows me to quickly experiment with many different design patterns and select the best ones before jumping into digital wireframing or code.

Intentional Software Architecture and Development

The deliberate and detail-oriented design process I had been working with so far made it easy to plan a software architecture for the app. I adapted the information collected in the user flow documentation and the InVision prototype into a document that outlined the various data models and view controllers that would make up the app, as well as third-party libraries I planned to include in development. Explicitly laying out this information before beginning development made it easy to identify areas where we still had questions, and to find gaps in the client’s existing APIs. Doing so made my development plan transparent and ensured that the client was on board. It also allowed the client to plan for backend development to be done in parallel with my work on app development. Finally, it made initial development extremely efficient as I had already written a thorough documentation.

Implementation Highlights

  • Model-View-ViewModel architecture
  • Bluetooth temperature sensor integration
  • Connection error detection and prevention 
  • QR/barcode scanning for data entry and search
  • Custom, interactive temperature-incident graph and legend

User Testing, Revision, and Future Directions

Once implemented, we had the opportunity to pilot the MVP with a potential customer and learned a lot from their experience and feedback. While the client’s internal development team worked on integrating their updated backend, I took the feedback and revised the designs in Sketch and InVision. 

The initial MVP enabled users to see a single temperature-monitored delivery from package creation through completion. However, the next iteration would need to incorporate multiple concurrent deliveries, leading to new design challenges. The shift to multiple deliveries led to an enhancement of the app’s architecture. I finished our engagement by handing off the app code and creating a thorough InVision prototype for version 2.0 that included the revised architecture and a comprehensive “Help & Recovery” system allowing users to locate missing packages and recover temperature data when things go wrong. The client is continuing development on the product and is working with potential customers to bring it to market.

The Deliveries screen is a central location in the app and surfaces the deliveries that an individual user is following (ex. the ones in the Driver's truck) while also offering visibility to other active deliveries (ex. for Receivers or Managers).

The Deliveries screen is a central location in the app and surfaces the deliveries that an individual user is following (ex. the ones in the Driver's truck) while also offering visibility to other active deliveries (ex. for Receivers or Managers).

The app knows when it isn't able to connect to a package's logger and can warn the user that something is wrong. This little bit of intelligence helps users from accidentally completing a delivery for a package that never arrived.

The app knows when it isn't able to connect to a package's logger and can warn the user that something is wrong. This little bit of intelligence helps users from accidentally completing a delivery for a package that never arrived.

If a package was never added to an in-app delivery, users can still attempt to recover data. In this case, we ask them a few simple questions and show them the recorded temperature readings so that they can estimate the time the delivery started. He…

If a package was never added to an in-app delivery, users can still attempt to recover data. In this case, we ask them a few simple questions and show them the recorded temperature readings so that they can estimate the time the delivery started. Helping users easily recover from mistakes is critical in an environment where food and pharmaceutical safety is on the line.