I’ve been invited to speak at the upcoming Internet of Things Expo in New York City about why software quality is an increasingly critical concern in the Industrial Internet of Things environment. Here’s my take on it: the Industrial IoT has been around for some time in applications such as transportation, factory automation, smart buildings and more. However, as the industry continues to rapidly grow, there will be new vendors providing applications, middleware, and connected devices to support the thriving ecosystem. This essentially means that these electronic device manufacturers will also now be in the software business.
The problem is that many will be new to building embedded software or robust software. This creates an increased importance on software quality, particularly within the Industrial Internet of Things (IIoT) environment where business-critical applications are becoming dependent on products controlled by software. Quality has to be the central focus when safety, security or human life is at risk if software fails.
A lot of “consumer-grade” software will also find its way onto critical paths in new safety- or performance-critical applications, in large part due to the re-use of legacy code bases. Without proper software quality methods in place to ensure the integrity of this legacy code, the overall safety of the system could be compromised.
If we use the connected car as an example, one of the initial applications of a telematics system was to provide interaction with the GPS system for navigation and traffic features. As we move into the era of connected and autonomous cars, that same GPS system will now also be used for features such “auto SOS,” which summons help in the event of a crash. This functionality will likely be built on top of the existing telematics architecture. Therein lays the problem.
Legacy applications often carry an enormous amount of technical debt. Technical debt is a metaphor for shortcuts taken during the initial design and development of a system. This “debt” is often caused by the continual development of software without the correct quality control processes in place, typically due to the tremendous business pressure to release new versions. The accumulated liability of the technical debt created eventually makes software difficult to maintain.
As the quantity and criticality of software is increasing, the traditional workflows are no longer sufficient to meet the challenge. We cannot install quality at the end. We need processes that build in quality, and we need to engage in process improvement before it’s too late. Organizations will need to adjust their development processes to produce higher quality applications.
John Paliotta’s presentation at the Internet of Things Expo, “The Industrial Internet of Things and Software Quality: Why It Matters Now,” will be held on June 8 at 5:00 pm ET. The Internet of Things Expo is taking place from June 7-9, 2016 at the Javits Center in New York, NY.