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.
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.
User Flows & Rapid Prototyping
Having identified the primary user roles, I then documented their journeys and organized an detailed list of tasks.
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.
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.
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.