With the advancements in computing power and wireless internet connectivity, the Internet of Things (IoT) has grown to include billions of connected devices that are collecting and sharing data without human intervention.
From light bulbs to jet engines, IoT is transforming the world around us making devices smarter and more responsive – connecting our world in ways that were unimaginable only a decade ago. As a result, companies of all sizes and across all industries are incorporating IoT capabilities in their operations and their products. This guide provides information regarding the IoT product development process and the important considerations to ensure a successful project:
The term “Internet of Things” (IoT) has come into common usage today, but what does it really mean?
To understand IoT, it’s helpful to know the meaning of the traditional, “non-thing” internet. The network known as “the Internet” connected mainframes and servers. Later, it connected microcomputers such as desktop PCs. Each computer, or “node,” had a unique address that distinguished it from other computers on the network. As computing technology advanced, it became possible to pack more powerful computing resources into smaller packages.
These days, almost any electronic device can be made with enough computing power to communicate with other devices over the same internet that traditional computers have used. These “non-computer” computing devices are the “things” that make up the Internet of Things. Each device can be placed on the network and use standard TCP/IP protocols to communicate with other devices and computers that are also connected to the network. In its simplest form, an IoT system consists of several components working together:
The IoT device hardware specifications will, in turn, inform the requirements for the software running on the device. Depending on the scope of the device capabilities, the device software might consist of one firmware program. Or it might involve several programs and an operating system. At a minimum, any IoT device will need software to operate its sensors, actuators, and other hardware components as well as software to manage its communications with the other parts of the system.
To make life easier for the application developers, an application programming interface (API) should be developed for the device. The API provides “hooks” that simplify the programming needed to fetch data from the device or issue commands to it.
System Architecture Design Considerations
The IoT device itself is just one part of an IoT system. To build a complete IoT-based system, IoT devices must be integrated with application software.
An important part of this integration is determining how the data will get from the devices to the application (and vice versa). If your system involves a large number of devices and all of them transmit data to the application all the time, your local network might not be able to handle the load. The situation can be even worse if your application is hosted on a cloud server; your internet bandwidth could be saturated with IoT device traffic.
Edge computing is a common approach. In an edge computing environment, the IoT devices communicate with a dedicated device (the “edge computer”) that, in the network topology, is as close as possible to the devices. The edge computer summarizes the incoming data and sends the summary to the application.
This design reduces traffic flowing across the local network or to the cloud. Depending on the number of IoT devices in the system, you might need more than one edge computer.
Wireless IoT devices have their own issues. They might not have enough power to transmit data over long distances, such as outdoor locations where it is not practical to deploy Wi-Fi access points. In this case, a wireless sensor network (WSN) may be the answer. In this architecture, a distant device transmits its data to a closer device, which relays the data to the access point.
WSNs have the added benefit of being self-organizing; they collectively determine which devices act as relay nodes. This feature is important if the locations of the devices are not known in advance or if the devices will move around. Self-organization also adds cost and complexity to the system.
Development of the hardware and software can proceed in parallel, but not in isolation. The hardware, firmware, and application development teams must coordinate to ensure they stay on the same page with regard to inputs, outputs, timing, and protocols.
Remember the NASA Mars orbiter that crashed because one team was working in metric units and another in English units? Collaborative hardware and software development will avoid that kind of situation.
Prototyping can be a tricky exercise on the hardware side. Because the IoT device prototypes require physical fabrication, there is no practical method of “rapid prototyping” for the hardware. Still, the application developers can do much of their prototyping without the IoT devices.
Early application prototypes will likely be low fidelity, to give stakeholders a general idea of the user interface and application features. As development proceeds, prototypes can be produced with higher fidelity, providing closer approximations of the “real thing” to obtain finer-grained feedback from end users.
Because the application developers may be ready to start testing before the hardware team has a device for them to test with, it’s probable the software team will need to simulate communications with the hardware for some period of time. In a similar vein, the hardware will need to undergo extensive testing on its own to ensure the devices meet all the hardware specifications.
At some point before launch, the hardware and software must be tested together. This process is known as integration testing. The teams verify the hardware and software can communicate as designed and all communications between the hardware and application meet expectations.
Finally, the entire system must be tested under real-life conditions to ensure the system meets the stated requirements.
With proper project management and coordination between teams, there should be no surprises in the last stage of testing. Hardware issues can be expensive to fix, so any bugs should have been discovered and resolved much earlier in the process.
Where to Go From Here
IoT systems are anticipated to see wide adoption in many industries, driven by the promise of rich data that IoT devices can provide, as well as the opportunities for automation that can be realized by IoT-based systems. As a result, many billions of IoT devices are expected to be deployed in the next few years.
You now know the development of IoT applications is far more complex than that of traditional software applications. If you don’t have experience with hardware integration projects, you could be in for a rough ride and it would be wise to consider experienced support.
AndPlus has the experience and expertise to guide your IoT development project through this uncharted territory.
We have helped many clients with hardware IoT integration projects and understand the best approaches and the pitfalls to avoid. If you have a great idea for an IoT-based system for your organization’s digital transformation, we’re here to help.
AndPlus is a digital technology consulting and development firm that helps clients accelerate digital transformation by closing the gap between strategy and execution. Fusing deep technical and business expertise with a custom Agile development process, we help our clients rapidly implement digital transformation strategies that achieve optimal results with less risk.
For more than a decade, AndPlus strategists, builders, innovators, engineers, and designers have pushed the boundaries of mobile, web, IoT, firmware, and advanced technologies to create or improve processes and products that deliver measurable value and exceptional user experiences.
A Minimum Viable Product (MVP) has only those features needed to validate its continued development. Its primary goal is to obtain this insight at a lower cost than that needed to develop a product with more features.
Our process begins by identifying the primary goal that will address both our client's business goals and the end user's goals. We select the methods that the MVP will use to accomplish these goals. Our design team then defines the minimum scope of work and use this list of features to map the ideal user journey.
Early product prototypes are often developed at this stage in order to illustrate concepts and ensure that business objectives and user experiences are aligned and optimized.
Once the user journey is mapped, the code starts flowing. Early prototypes/wireframes are brought to life by our engineering team. We use an Agile Scrum process that is custom tailored to our industry. And that's the kicker. We don't just utilize this same Agile framework straight from the textbook, we optimize the development process based upon more than a decade of development experience gained from hundreds of digital development projects.
The fun part! Our sprints run in 2-week increments. You get actual working builds of your product every two weeks. These builds are tested, and iterated upon as the project moves forward. We pride ourselves on iterating these builds to perfection by launch day.
Our deep expertise and custom Agile development process enable AndPlus to iterate quickly, provide transparency, and deliver on time and on budget — helping our clients get to market faster.
AndPlus is a digital transformation agency that applies technologies to create or improve experiences, processes, and products. For more than a decade, our teams of builders, innovators, engineers, and designers have worked the boundaries of mobile, web, IoT, firmware, and advanced technologies including data warehouse, machine learning, AI, and big data.
Put simply, we’re here to guide and assist your organization in its digital transformation journey by delivering the best strategies, expertise, processes, and technology.
Give us a call and let’s get started.