When I was on Cumberland Group’s IoT and Digital Platforms team, one of our first customers was a major temperature-controlled warehousing and transportation logistics company based in North America. Due to upcoming regulatory changes in the US, the customer needed to replace their antiquated system of analog thermometers that was used to monitor the ambient temperature in their freezer storage warehouses. My team was hired to implement an IoT solution that consisted of a network of smart temperature sensors that reported temperature data back into a proprietary data platform.
During the engagement's first milestone, we were manually registering the temperature sensors into our data platform for each site deployment. This made the process a bit clumsy because:
We might have been able to put up with these pain points, but we knew this wouldn’t be sustainable once the process was passed on to external contractors.
Regiscan was a mobile app that leveraged the phone’s camera to scan a device’s QR code and extract its identification number (ID) and serial code (SC) for use in device management tasks. Technicians would be able to use Regiscan to register devices, delete devices, and check on the status of a device to ensure data was being reported and connectivity levels were acceptable. Our goal was to improve the speed and efficiency of the site deployment process and for technicians to be able to perform site deployment tasks themselves.
After co-deploying a few sites, I learned first-hand how much this bottleneck limited an on-site technician’s capabilities to troubleshoot their own work. From those experiences, I distilled three pain points to tackle in the design of Regiscan:
My early sketches of the app prioritized simplicity, since the app had to be easy enough to use while wearing cold-weather gear, and hinged all subsequent user interaction on the initial act of scanning a device with the camera.
But sharing these initial concepts with the engineers on my team soon made it apparent that I might have been focused a little too much on the "scan" in Regiscan. Because this was all part of an enterprise Platform-as-a-Service solution, I learned I wasn’t accounting for a slew of information that would need to be distinguished:
I was so caught up in the novelty of building an app to solve the challenges that were immediately in front of me, that I hadn’t considered how it would work in the larger scale of managing devices in our data platform.
Getting schooled by engineering and mapping out user flows helped me think through how and when the necessary technical details could be provided. In this example of the "create new device" user flow, the type of device determined the subsequent steps in the process, with sensors needing the extra step of being "assigned" to a gateway before they could be registered.
In the "delete device" user flow, I got rid of the admittedly bad idea of an authentication code and replaced it with a simple confirmation step. This was much simpler and didn’t require technicians to commit an authorization code to memory.
In the “device details” user flow I added a refresh button at the end of the process for users to re-query the status of a device while troubleshooting. Since devices “phoned home” to the data platform in set intervals, I wanted users to be able to continuously check for updates without having to rescan the device each time.
Learning about the technical requirements the engineers were accounting for via the user flow maps led me back to the drawing board - literally. I added fields to the Create New Device screen for information like:
On the Delete Device screen I included the device’s site as a required field in the deletion process because I thought it would be a good idea to at least require the user to confirm where they were deleting the device from.
Based on my own experiences troubleshooting devices in freezer rooms that sometimes got down to -10°F, I had an idea of what I wanted to be immediately highlighted at the top of the Device Details screen. Consistent across multiple iterations of sketching out the information hierarchy were details such as:
The blockframe and mockup process was, for the most part, a straightforward translation of my sketches, though I wanted to do my best to apply two lessons I learned in my sketches:
On the Create New Device screen, I opted for a dropdown menu to select the device type instead of the two check boxes seen in the sketches. Using a dropdown menu wouldn’t restrict device types to just gateways or temperature sensors and would allow us the option to include a variety of devices as needed. It would also be much easier to use with bulky gloves on.
To make the Device Details screen as informational as possible, I recreated the data visualizations that a user might see in the desktop interface of our data platform solution. Statistics like average temperature and device connectivity would provide technicians with even more critical information at-a-glance as they used the app.
With the exception of battery life, last check-in time, and last error time, I opted to make everything full screen-width in the end. Stacking all the details this way would keep information easily scannable in top-to-bottom fashion and made the interface more modular, allowing for fields to be removed or replaced depending on the device and customer.
Last but not least, below are my blockframes and mockups of the Delete Device screen. I took the information requirement a step further and decided to add fields like Asset ID, Area, and Zone. Including these as additional safeguards made certain that the user was aware of the unique device they were managing through the app.
Unfortunately, development of the Regiscan app stopped there. Scope creep and ballooning costs resulted in the whole customer engagement being prematurely shut down once the first couple of milestones had been reached. If I had the opportunity, I would have tested for three things:
Although it was disappointing to not get the chance to develop the app and use it in context, the experience wasn’t a total loss. I had the unique advantage of designing the app based on pain points that almost everyone on my team dealt with first hand and I learned some important lessons through the process, including: