The hype around the Internet of Things is now rapidly giving way to the reality of implemented products and services.
Analyst firm IDC predicts that the worldwide IoT market spend will grow from approximately USD 690 billion in 2015 to USD 1.46 trillion in 2020 with a compound annual growth rate of 16.1 percent. The installed base of IoT endpoints will grow from 12.1 billion in 2015, exceeding 30 billion in 2020.
Connectivity has moved from being an interesting feature to being a so-called “price of entry” requirement to achieve competitive product value and differentiation in many of today’s markets.
IoT products and services can range from the basic to the critical: cost-critical, availability-critical, brand-critical, even safety-critical. Therefore, the makers of products and services must understand and respond appropriately to the challenges of engineering for the IoT.
As connectivity increases the capabilities of IoT products and services, so it also increases their complexity. New capabilities bring new failure modes. Added complexity—unless managed appropriately—can increase the likelihood of failures occurring. Furthermore, the consequences of failure can themselves be hard to predict.2
Therefore, increasingly critical products and services require robust IoT engineering. The primary challenges include:
- Delivering compelling functionality (where the requirements might be continuously changing)
- Delivering appropriate dependability, in the form of safety (freedom from harm), reliability (availability of services) and security (freedom from intrusion, interference or theft)
- Delivering the solution in an open context—where some of the technologies and components that contribute to the solution are not under direct commercial or engineering control
- Delivering the solution with appropriate speed and at appropriate cost to respond to competitive threats and changing market demands
IoT-related products and applications will require a more systems-oriented approach to engineering. Systems thinking, especially the concept of emergent behavior (both wanted and unwanted) is crucial for high-quality IoT development and design. Systems engineering, especially system-of-systems engineering, can help reinforce the agility and quality of IoT development and design, especially if the product being designed needs to respond to other products and systems that are not under the designers’ control.
However, systems engineering approaches must be right-sized to apply to IoT, between the two extremes of, on the one hand, extremely agile ad hoc development projects and, on the other, meticulous and expensive aerospace-grade systems engineering. Special attention must be given to safety and security aspects of IoT systems, more so than for conventional apps and software products. Tools supporting such engineering approaches must be flexible and integrated so they can provide the right amount of control and rigor, but also meet the needs of fast development cycles and time-to-market pressures.
To make the most beneficial impact on IoT development, systems engineering approaches should be part of a comprehensive continuous engineering methodology. Continuous engineering makes use of the feedback available from connected products and systems to continuously inform product refinement and new design. It consists of proven principles and practices combining systems thinking and systems engineering, embedded software development and IoT application software development, together with appropriate automation to enact those practices efficiently in a real product development environment.
You need this new design thinking in your IoT projects. IBM is pioneering this Continuous engineering construct under WatsonIoT.