We started our engagement with an in-person release planning session at Koller’s headquarters. Dennis had a long wish list of features for the application, so we worked with him to prioritize features, classifying everything as a "need," "want," or "desire." Using this method, we were able to understand the features required for a minimum marketable product (MMP) — notably temperature sensing and dynamic light controls.
Getting into a Rhythm
When we first told Dennis that we needed to have daily meetings (standups), he wondered how much benefit he would get from being that involved. But after a week of participating in standups, the value was obvious. By staying in constant communication with the team, Dennis was able to make course corrections and make sure the product came to life exactly how he imagined.
Hardware, Software and Design
Next, we started a hardware research spike to fully understand Koller’s hardware requirements and how they would impact our framework choices. Keeping Koller’s target cost per unit in mind, we made recommendations for a temperature sensor, lights, and a microprocessor to control it all and send the data to a web server.
We also spent a lot of time making sure that Koller’s customer data was secure. All data stored on the device is encrypted and all communication between the device and the web server is encrypted both at rest and in transit.
Dennis wanted to create both an iOS and Android application, so we chose React Native for our front-end framework. Koller’s hardware requirements meant we couldn’t use our preferred combination of Nerves and Elixir, so we decided to use Arduino’s C++ framework instead, and added custom C++ libraries as necessary.
Our front-end engineering team created detailed mappings of user flows and designed 74 wireframes. By doing this, our design process goes much faster because we know exactly how we want an application to behave before we start our more detailed screen designs.
Because we set specifications for the hardware design, and developed firmware and software, we had the entire ecosystem at our fingertips. If Koller needed to change something with hardware, we’d be able to immediately address changes with the firmware and software.