In November 2016, the team at Making Sense dove into an exciting new project involving the Internet of Things (IoT). We knew that it was going to be a huge challenge since this is not the kind of project that we normally tackle. But the allure of this particular project meant we just couldn’t pass it up.
The IoT is One Way Growth Takes Place
The IoT promises to bring any company into the future. Nowadays it’s actually common to hear people talking about the IoT, how to apply IoT data to create useful solutions to make our lives easier, and possible ways the IoT can help bring in more revenue.
We’re always interested in new ways to make growth happen in the IT industry, so we decided to embrace the new opportunity that came our way via one of our partners. It was going to be our first endeavor in this area so there was lots to do. The flexibility of our team and their eagerness to undergo constant training allowed us to get up to speed quickly so we could quickly put hands to work!
The main goal of the project was to measure product movement in grocery store refrigerator trays. Here’s what that looks like:
- Following products as they move into stores
- Quantifying the stock
- Tracking sales
- Measuring out-of-stock intervals
- Calculating revenue
- Calculating missed revenue due to products being out-of-stock
Here are the 5 key takeaways from this project.
1. The First Challenge is to Keep Data Consistency in Mind at all Times
Working with hardware added a whole new dimension to our work. It meant we had to bypass our usual approach and integrate our standard software development process with the hardware. That created our first challenge!
One of the biggest difficulties was testing and adapting the hardware side. Why? Because there are many variables and each one is specific to the actual device/event being tracked. There are seemingly endless possible scenarios to cover, resulting in an untold number of unknown possible outcomes. That makes it necessary to identify as many as we possibly could and take care of them before we could do anything else.
Remember, data consistency is the most important thing here :)
2. IoT Testing Different!
Normally, as a tester, you deal with acceptance criteria, expected results, and business rules. These allow you to define the testing scope, testing technique, and the data that will be used to derive the expected outcomes.
But in this case, we were facing a brand new system made from scratch. That meant that we had to try what appeared to be a viable option and evaluate its effectiveness through trial and error in order to get to know the hardware we were dealing with, its capabilities, measurements errors, variables which deviate the regular functionality of the device and the firmware, etc.
3. Defining the Test Strategy Means Covering All Angles
After this first phase of testing, which normally does not exist in software development projects, we could start defining test strategy, testing scope, testing technique and the expected outcomes in front of different situations.
I have to add here that I felt so lucky to be the one who was on site in charge of making sure that all the hardware was working properly. It gave me real insight into the project. It was a huge deal to think about all the possible scenarios that we needed to cover with hardware or software to make it fully functional. It’s about real interaction in the real world, so there are many variables that we can not control.
4. The Human Element is Central
We’re still talking software, but there’s a human element involved that complicate things. Hardware, in an IoT project, by nature react to human behaviour. Input is not delivered through action on a button in the browser or a text field or a form being submitted that can be controlled and restricted by using validations into the form, as it is in software.
The physical act of taking products out from somewhere, moving products around or even staying close to something, are actions that will provide us with different data, and it has to be collected and stored somehow, that is all about.
5. To Master Development Details, Be Flexible
From the development side, specific firmware and protocols were developed specially for this project. The goal was to integrate different technologies to get an E2E functional system showing data in real time.
The team was able to think outside the box and quickly adapt the work, approach and implementations to the project/customer needs. After 3 months, we came up with an E2E functional solution that addressed the main problem. Success!
Finally, the Keys to Success
The team’s agility, adaptiveness, innovation and commitment were the keys to making this project a success. This was a great experience and it looks like it’s just the first of many.
The team here at Making Sense would like to thank our partner for involving us in this exciting IoT project and we look forward to many more like it.