Software Quality and the Industrial Internet of Things: Why it Matters NOW
Which manufacturers are on the glide path to realizing increased productivity and more with the IIoT?
The International Telecommunication Union defines the Internet of Things (IoT) as a global infrastructure for the information society, enabling advanced services by interconnecting physical and virtual things based on existing and evolving interoperable information and communication technologies . What’s already clear in that in a nutshell, with every electronic device having network connectivity (see Figure), every manufacturer of electronic devices will essentially be in the software business.
|Figure 1. Courtesy Vector Software.|
The Common Thread
The broader Internet of Things trend generally refers to consumer applications such as wearables, home automation, kitchen appliances, etc. There has been a similar evolution in the industrial sector that embraces these concepts, known as Industry 4.0, the Fourth Industrial Revolution, or more simply, the Industrial Internet of Things (IIoT.)
The IIoT is more specific than the IoT, and includes the integration of complex devices and systems with networked sensors and software. According to the Industrial Internet Consortium, “The Industrial Internet is an internet of things, machines, computers and people, enabling intelligent industrial operations using advanced data analytics for transformational business outcomes. It embodies the convergence of the global industrial ecosystem, advanced computing and manufacturing, pervasive sensing and ubiquitous network connectivity.”
The ability to connect these types of systems will significantly impact business operations. The IIoT can utilize the power of intelligent technologies to reinvent business processes and production methods while creating new revenue streams and transforming the modern workforce. For example, IIoT technologies are already helping to increase productivity, reduce operating costs and improve safety conditions for employees.
Manufacturers are introducing increased automation and flexible production techniques to improve productivity, while connected sensor networks monitor logistics to create more efficient operations and reduce costs. Embedded technology in freight applications is able to optimize routes to save fuel and reduce delivery costs, or alert relevant personnel in the event of mechanical breakdowns, saving substantial resources—and even lives. Unmanned vehicles are being used to inspect remote pipelines in harsh environments to help keep employees safe. A common thread throughout all of these applications is that they are being powered by advanced embedded software technology.
IIoT: Don’t Let Me Be Misunderstood
To quote the recent “Winning with the Industrial Internet of Things ” report , the Industrial Internet of Things is “arguably the biggest driver of productivity and growth in the next decade” and it will “accelerate the reinvention of sectors that account for almost two-thirds of world output.” The report states that the Industrial Internet of Things has the potential to add $14.2 trillion to the global economy by 2030.
However, although early adopters are realizing the benefits of the IIoT, its widespread adoption is hampered by skepticism and lack of understanding. According to the same study, “CEOs and executives express remarkable confidence (96 percent) that the senior leadership in their organizations grasp at least something of the nature of the IIoT… but far fewer say their leaders have completely understood it (38 percent).” A similar study was conducted in collaboration with the World Economic Forum which surveyed more than 90 market leaders who are actively pursuing IIoT initiatives. The vast majority (88 percent) said that they still do not fully understand the underlying business models and long-term implications of the IIoT.
Is Industry Prepared for IoT?
With the Internet of Things happening at a broad level, in every industry, there will be many new vendors providing applications, middleware and connected devices. Many of these vendors will be new to building embedded software, engineering robust software, or both. Additionally, consumers and manufacturers alike will expect the operation of the connected devices to be seamless and reliable and deliver a positive user experience in general. Consider how Apple destroyed Nokia and Blackberry. Was it with better electronic components? Not really—it was with better software, which provided a better user experience.
Let’s revisit the point earlier that the transformation to an Internet of Things-enabled environment means that every manufacturer of electronic devices will essentially be in the software business. Vendors with a legacy of building mission-critical embedded software for industries like automotive and industrial controls should have a sizeable advantage in transitioning to IIoT. They have already solved many of the real-time embedded challenges for application partitioning, redundancy and long up-times.
Vendors with no previous software experience, or with experience building consumer-grade software, are likely to grossly underestimate the challenges associated with supporting IIoT.
In either case, as more software applications have a requirement for dependable and uninterrupted operation, vendors will need to implement processes that can deliver quality software.
Software Under Scrutiny
As production environments and business-critical applications continue to become more dependent on the products whose functionality is controlled by software, the quality of the software has started to come under scrutiny, particularly in situations where safety, security or human life is exposed to risk if the software fails.
The biggest challenge that software developers face is balancing testing completeness with time-to-market. Often the fear is losing the “first mover advantage” for the sake of testing completeness. However, sacrificing quality for time to market is a dangerous choice that can have a significant effect on brand value.
In the normal product life cycle for a software application, 1.0 is the initial release to customers. In subsequent releases, bugs are fixed, and functionality that was missing from 1.0 is released. The product typically reaches a point at which users are happy with the quality and the features of the product.
The Quality Deficit sits between the first release of the product and when the market considers the product to be of good quality. Minimizing or eliminating this Quality Deficit should be high on the priority list of every organization that is building software.
Journey to Quality
To tackle this challenge involves addressing the second challenge that development teams face: allocating development resources between requirements, design, coding and testing. Historically, the workflow has been as follows:
Most development teams place the highest priority placed on coding, with less emphasis on the Application Programming Interface (API) and test case design. Generally, groups will assign senior staff to code development and junior staff to testing. However, if this model were to be completely reversed, then the most valuable software development products would have a complete and flexible API, and the test cases prove the correctness of this API.
If a great API is developed, and tests formalizes the correct behavior to this API, then the actual code writing can be done by junior staff, the code can be re-factored with confidence, and quality will be greatly improved.
A final challenge to address on the journey to software quality is that most groups maintain a variety of test types, and a different group in the organization “owns” each type of test. It is very common for the developers to create and maintain low-level tests, while the Quality Assurance (QA) department is responsible for the others.
The QA tests are generally run only after several weeks of development, when hundreds of source changes have been integrated into the code base. This makes finding the root cause of a broken testing time consuming and frustrating. The solution to this challenge is to treat test cases as a valuable asset of the organization, and leverage them across the entire team and application life cycle.
There is an increasingly important role for software quality as the industry adapts to the Industrial Internet of Things and the fourth industrial revolution. Organizations that do not adjust their development processes to enable them to produce higher quality applications are risking not only their brand, but also their very existence. Organizations that do adapt will thrive.
John Paliotta is co-founder and chief technology officer of Vector Software.
Note: This article is sponsored by Vector Software.