Software Quality and Industry 4.0: The Industrial Internet of Things

DZone 's Guide to

Software Quality and Industry 4.0: The Industrial Internet of Things

One of the most exciting and lucrative aspects of the IoT is the Industrial Internet of Things. So what's all the fuss about?

· IoT Zone ·
Free Resource

The Internet of Things or IoT, in fairly simple terms, will enable the interconnection of the physical and virtual world based on interoperable communication technologies. This essentially means that every electronic device will have network connectivity – and that every manufacturer of electronic devices will also be in the software business.

What is the Industrial Internet of Things?

The broader definition of IoT generally encompasses more mainstream applications including home automation, smart appliances, wearables, health and fitness applications, etc. There has also been a similar evolution in the industrial sector that embraces the same concepts that is referred to as the Fourth Industrial Revolution, Industry 4.0, or more simply, the Industrial Internet of Things (IIoT.)  

The IIoT includes the integration of more complex devices and systems with networked sensors and software.  The Industrial Internet Consortium defines the concept as follows: “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.”[1]

Image title
IIoT can utilize the power of advanced intelligent technologies to significantly impact business operations -- reinventing business processes and production methods while creating new revenue streams.  For example, by utilizing IIoT technologies, manufacturers are introducing increased automation and flexible production techniques to improve productivity. Connected sensor networks are creating more efficient operations and reduced costs by monitoring logistics. Unmanned vehicles are used to inspect harsh environments to keep employees safe. Embedded technology is able to optimize freight liner routes to reduce delivery costs, or alert personnel to mechanical breakdowns, saving substantial resources -- and even lives.

All of these applications are being powered by advanced embedded software technology.

The Trillion Dollar Growth Opportunity

The recent “Winning with the Industrial Internet of Things[2]” report notes that the Industrial Internet of Things has the potential to add $14.2 trillion to the global economy by 2030. The report also states that the IIoT will “accelerate the reinvention of sectors that account for almost two-thirds of world output” and is “the biggest driver of productivity and growth in the next decade.”

But – Is the Industry Prepared for IIoT?

Although early adopters are certainly realizing the benefits, widespread adoption of the IIoT appears to be hampered by overall skepticism and lack of understanding. According to the same report, “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[3] 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.

There will be many new vendors providing applications, middleware, and connected devices in the IIoT industry.  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.  

The Software Quality Challenge

As stated earlier, the transformation to an Internet of Things-enabled environment in any industry will result in every manufacturer of electronic devices being in the software business to some degree. Vendors with a legacy of building mission-critical embedded software for industries such as automotive and industrial controls should have a sizeable advantage in transitioning to IIoT as they have already solved many of the real-time embedded challenges for application partitioning, redundancy, and long up-times. On the other hand, vendors without previous software experience, or that have consumer-grade software experience, are likely to underestimate the challenges associated with supporting IIoT. 

In either case, as production environments and business-critical applications continue to become more dependent on the products whose functionality is controlled by software, those software applications will have a requirement for dependable and uninterrupted operation -- particularly in situations where safety, security or human life is exposed to risk if software fails.  Vendors will need to implement processes that can reliably deliver high quality software.  

Solving the Problem

The biggest challenge that software developers often face is balancing testing completeness with time-to-market due to the fear of 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 typical product life cycle of a software application, 1.0 is the initial release to customers. In successive releases, bugs are fixed, and functionality that was missing from 1.0 is released. The product eventually reaches a point at which users are happy with the quality and the features of the product.

The “Quality Deficit” is 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.

Tackling this challenge involves addressing the second challenge that development teams face:  allocating development resources between requirements, design, coding, and testing. The workflow has historically been as follows:

Image titleWith many development teams, the highest priority is placed on coding, with less emphasis on the Application Programming Interface (API) and test case design. Groups generally assign senior staff to code development and junior staff to testing. However, if this 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 that formalize 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 software quality journey is that most development groups maintain a variety of test types, and a different group “owns” each type of test. It is common for the developers to create and maintain low-level tests, while the Quality Assurance (QA) department is responsible for the others.

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 is to treat test cases as a valuable asset of the organization, and leverage them across the entire team and application lifecycle.


As the industry adapts to the Industrial Internet of Things, there is an increasingly important role for software quality. Organizations that do not adjust development processes to produce higher quality applications are risking not only their brand, but their very existence. Organizations that do adapt will thrive.


[1] http://www.iiconsortium.org

[2] http://www.accenture.com/us-en/Pages/insight-industrial-internet-of things.aspx?c=glb_wef2015pr_10000001&n=otc_0115

[3] http://reports.weforum.org/industrial-internet-of-things/

industrial iot, iot, software quality

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}