Rapid Prototyping for IoT
Sergio Scaglia
Engineering & Management | IoT & Machine Learning | tinyML | IoT Instructor at Stanford University
What is prototyping
A prototype is a simple experimental model of a proposed solution. It’s a representation of a potential product before its final design exists, and it can simulate the future product in tasks such as design verification, value proposition validation and gathering early feedback from customers and stakeholders. Multiple iterations of this process will land in a final product which was successfully validated in many aspects.
The prototype will allow us;
- Early test of business value
- Early feedback from customers
- Early test of technology involved
- Change priorities, considering what is more important for the users and business
- Test, learn, modify and iterate
There are multiple stages in the process of developing a product or service, from the initial idea conception to the final release. During this process, we have different resources available to validate different aspects of the development;
- POC (Proof of Concept): targets the feasibility of the product, service or use case, and it normally focuses on one specific aspect to be validated. For example; low power consumption or wireless coverage area.
- Prototype: it is a little more elaborated than the POC, and tends to be a very early representation of the intended final product.
- Pilot product: it is a product still in the development phase, tested by the prospective customer to provide early feedback and customer’s needs validation. These Pilot programs are normally run in small-scale for final testing before full deployment.
(Although there are differences between POC, a Prototype and a Pilot, we will refer to Prototyping as the activity of creating and developing any of these).
As we see, there are multiple opportunities to test our concepts and developments, getting early feedback and validation, before going to the final product, minimizing the risk of failure.
Why is more important in IoT
The Internet of Things (IoT) refers to the connection of physical devices to the Internet. If you want to learn more, here is my previous article.
In the case of IoT (Internet of Things) end-to-end solutions, given the complexity due to multiple components and associated technologies, the need for validation is even higher. From sensor evaluation, to low power operation measurement, to wireless connectivity and coverage test, to cloud configuration, to web/mobile apps user interface testing; just to mention some of the components that will require a technical validation.
From technical feasibility, to UI/UX testing, to business model validation, to customer engagement and earlier feedback gathering; prototyping gives us an opportunity to validate and improve our design, to get closer to real customer needs and expectations.
The larger and more complex the system, the greater the associated risks. Prototyping will allow us to get earlier feedback from customers and stakeholders, minimizing these risks.
Prototyping vs Rapid Prototyping for IoT
Rapid Prototyping refers to a collection of tools and techniques to accelerate the prototyping activity. Since IoT projects span multiple technologies, different tools and resources will be needed.
For example, to build the hardware to support our prototypes, we might not need to design our custom boards from the ground at this point. Rather, we can use off-the-shelf hardware and break-out boards to resemble our use-case hardware. While this might not fulfil the low-power requirements, it’s enough to demonstrate the functional requirements to our customers and get the corresponding feedback. As per the low-power showcase, we might approach it using another hardware stripped out of the unnecessary components that might affect our low power results. Separating functionality and requirements in different use cases, we can work faster and validate sooner. At some point, we will need to have all combined in our custom design, but at that time, we will have our initial assumptions validated and possibly corrected, closer to customer expectations and real user requirements.
(Credit: Photo by Zan on Unsplash - https://unsplash.com/@zanilic)
Another example is related to the cloud configuration and web-access user dashboards. Instead of starting our custom design, we can rely on ready-to-use solutions that ingest data from devices, store it, and display it in customized dashboards, drastically minimizing the development efforts and time. Once we validate and potentially get feedback from customers, we can develop our now validated design, incorporating the provided feedback.
As per the device software, there are plenty of options covering a broad set of libraries supporting different types and brands of sensors and actuators, wireless components, communication protocols and processing algorithms. Selecting the right components, we can easily build software for our devices that showcase our solution in action, having the opportunity to engage with customers and stakeholders and validate our initial assumptions.
It’s clear that at some point, we will have to re-engineering our solution, but by that point, our prototyping activities gathered crucial information regarding our initial assumptions validation and feedback from prospective customers and stakeholders, which will allow us to continue (or not…) with the right direction minimizing the associated risks. Of course, we should not wait until this point to start this re-engineering; as market requirements and conditions evolve very fast. In other words, if we now take a year to finalize the project, we might be very late to the market. Instead, we can start the re-engineering process as soon as we validate each of the components, almost in parallel with prototyping, if possible.
Prototyping is cheap, engineering is not… Prototyping is low risk, and high reward!
How is Agile development and Rapid Prototyping related
In the Agile development era, and especially in the IoT field, rapid prototyping is an ideal way of developing an idea, use case, or business opportunity; getting early feedback from customers; testing frequently; validating the use case with the client; and minimizing risks.
With Rapid prototyping, we can develop IoT hardware and software the same way we develop any application in an agile environment; working in short sprints that get working product versions out for frequent testing and feedback.
Interested to learn more about IoT? Check out my IoT course at Stanford Continuing Studies!