Industrial Internet of Things (IoT)

Why isn't software eating IIoT?

Marc Andreessen famously declared that "software is eating the world," but software has not solved the IIoT challenge.

Marc Andreessen famously declared that "software is eating the world," but software has not solved the IIoT challenge.

IIoT is not a software problem

Software as a barrier, not a facilitator

Today, no company can escape from the use and impact of software. It is being embedded into every product and system, from our daily conveniences to the core functionalities of business operations. 

When it comes to the Industrial Internet of Things (IIoT), there is plenty of software available -- from large cloud platforms to focused vertical solutions. Yet IIoT adoption progress is slow, most IIoT projects fail, and most companies are stuck in the process. Why has software not solved the IIoT adoption challenge?

Example: Reducing machine malfunction with IoT

To understand this, let’s first look at how to implement a real IIoT project. An engineer wants to reduce CNC machine malfunction by monitoring its vibration signature. He needs to deploy this solution to 90 CNC machines at a large facility. Below is the process for him to develop this solution:

  • He acquires a vibration sensor and connects it to an IoT edge gateway.
  • He sets up a virtual development environment on the IoT edge gateway, which requires installation of sensor driver, development packages, software frameworks, etc.
  • He sets up a Github repository and syncs the repository to his development environment.
  • He writes his application code, which gets the vibration data and sends them to a remote time-series database.
  • He pulls the data from the time-series database into a dashboard software to evaluate the vibration signature for the normal state and the error state.  
  • He then goes back to his application code and adds threshold detection on the vibration data.
  • Once he’s happy with his application code, he checks in his code and builds a container image.  He adds process control inside the container image.
  • He pushes his container to a container repository.
  • He logs into the cloud platform of his company, which is maintained by full-time software developers, and he deploys his container image to a new edge gateway.
  • He tests the container image and once the performance is satisfactory, he is ready to deploy to 90 machines.
  • He is expected to continue to maintain and update his application.  Additional sensing and data functionalities need to be added over time.  
  • Every change means he needs to rebuild the container image, push to cloud, and deploy to 90 machines.
  • He wonders how to build cloud analytics to aggregate statistics over all machines.
  • He wonders how to improve reliability when the network connection is intermittent.

As can be seen, it requires strong skills on both the engineering side and the software side to implement a project such as above.

Software is everywhere, but the software development process often misunderstood

Because software is everywhere and there are many software developers at large technology companies, the software development process is pushed to IIoT.  Customers are expected to work with Software Development Kits and scripting languages. The fact of the matter is, very few IT/OT engineers are able to support the software development process.  

There is also a misunderstanding of software. People think that software is easy and intuitive. This is not true at all once development is required. The software development process is a complex, rigorous process that requires a large team and a stringent pipeline of development, integration, and testing.  For this reason, software products are developed to solve a focused problem that can scale to a large number of users at once.

IIoT adoption favors gradual roll-out that grows in scale and capability over time.

An IIoT system, on the other hand, is fragmented, heterogeneous, and constantly evolving. There are many different equipment in the system, and each works differently and requires customized treatment. IIoT systems favor gradual roll-out that grows in scale and capability over time, and they need to be supported by engineers, not software developers.

The misalignment in thinking and skill set has made software mythology a barrier, not a facilitator, to IIoT adoption.  

A familiar challenge with a familiar solution

Finding ways to overcome fragmentation and heterogeneity isn't new to the industrial sector. Industrial automation systems and data acquisition systems face both of these challenges. They solve this with engineering software, which enables engineers to create programmable solutions through graphical programming. Solutions like RsLogix from Rockwell Automation and LabVIEW from National Instruments exemplify how ease of use and flexibility can be the key to helping users to implement complex industrial systems. 

An engineering software is commonly based on functional block programming: a user drag-and-drops blocks onto a design workspace, connect the blocks by wires to indicate data flow, and build a complex system solution without development environment, software frameworks, extensive coding, or container orchestration.  Functional block programming is much more intuitive and can develop much faster than full-code software development.

So why software development cannot take over the role of engineering software?  There are some distinct differences between the two approaches, and these are listed in the table below:

Software development

Engineering development

Mainly for business logic

Mainly for data and computation

Worked on by software teams

Worked on by engineering teams

Optimizes software performance

Optimizes system performance

Emphasizes software skills

Emphasizes domain knowledge

Rigid development process

Fast experiments and iterations

Fast adoption ramp up

Gradual adoption ramp up


It is clear that IIoT is an engineering problem, not a software problem. This does not mean software cannot help engineering development. Software is very useful in engineering, in particular in scripting various components in a system. However, if engineers are expected to use software and software frameworks to develop IIoT applications at the edge and in the cloud, it is not feasible. Engineering development approach must be applied. Today, this engineering development approach is also called low-code.


Prescient Designer brings simplified low-code IIoT development to the industrial sector

We built Prescient Designer on the ideology of helping engineers to develop customizable IIoT solutions. Being able to work with and customize IIoT solutions internally is the key to IIoT adoption success. By simplifying the IIoT process with low-code, a daunting task like IoT integration is achievable and can happen much faster than it seems. Even if you have different devices, sensors, and you are not familiar with IIoT implementation, successful IoT adoption is within reach. If you're thinking about using IoT for your business, we recommend consulting our experts to help you develop an IIoT solution that works for your business. 

Get in touch with us easily, or request a free trial of our software, Prescient Designer.


Similar posts

Stay informed on IoT trends and insights

Discover the business and technology insights of IoT to accelerate the success of your digital transformation strategy. Sign up for our mailing list today.