The World Economic Forum Annual Meeting 2016 was entitled “Mastering the Fourth Industrial Revolution”, the event covered the potential applications of new technologies that collectively are referred to as the Industrial Internet of Things (IIoT) or Industry 4.0. The event did little to address the core technological challenges ahead. Much was said about IoT in a general sense and the potential effect on society, from autonomous cars, robotics to artificial intelligence, and yet nothing was said about the technology it is all entirely dependent upon.
Embedded Electronics and Embedded Software.
Product development in the age of Industry 4.0 is in many cases all about the same old products manufactured with both embedded electronics and embedded software, these together provide extra value in terms of functionality, – including connectivity. Take the autonomous self-driving car as an example, what makes the difference between a Classic Car from the 1960’s and a new Car in 2016 is the inclusion of around the 1 million + lines of code, and embedded electronics. The code is responsible for modern features and enables the cars electronic components to talk to each other externally with outside networks and technologies such as GPS and cellular networks. The future autonomous car will have far more code and therefore will be far more complex.
Industry 4.0 is entirely dependent upon Software Development and Embedded Electronics.
Scaling – Up Complexity: Lean, Agile, Kanban
A byproduct of our reliance on embedded electronics and associated software to add functionality to products is increased complexity of the end product. The inevitable consequence of this increased complexity is increased incidence of bugs and software failure, all too obvious in the car industry over recent years. The product development methods used by the Car industry to adapt and manage the increasing complexity of cars over the years, led to the concepts of Lean, Agile and the Just-in-time (JIT) delivery, using Kanban to schedule parts deliveries to maximize the supply chain. Today, many of these Agile ideas and methods are used in software development for every industry but are applied to manage infinitely more complexity, much more than the Product Development Lifecycle Software was designed to handle in traditional product development.
Application Lifecycle Management Software (ALM Software) for Managing Software Development
As the need to manage software development complexity increased so did the need for tools, systems and processes for managing it. Today, terms like Scrum, Kanban and Agile are all main-stream as are the associated tools for managing teams working with Agile Frameworks. At the very cutting edge are those tools designed for scaling up Agile and Lean methods for Enterprise use, specifically for the development of products where functional safety is a big issue (Medical, Aviation, Automotive industries). From the various methods for Scaling up Agile, the Scaled Agile Framework is by far the most widely used (successful) and consequently, those tools designed for use with the Scaled Agile Framework are the most advanced, going beyond Agile, adding Agility and extending ALM software and the Scaled Agile Framework for use by Operations in what has become to be known as DevOps.
The various features of ALM software mitigate many of the associated risks of software development, and is designed to ensure traceability and transparency during development, necessary to meet the compliance requirements of industry standards. ALM Software is first a collaboration tool enabling geographically dispersed team members to collaborate effectively for development. Core features include Requirements Management, QA and Test Management and Development Management and critically they support the Agile Framework used (Advanced ALM Features).
DevOps Provides Real Time Feedback
The significance of DevOps cannot be understated. Looking back 20 years from now, Agile Methodology and DevOps will be seen as one of the most significant enablers of the Industry 4.0. Its rise from the Agile Development community has given led to the tools that provide real time feedback from end users, directly to development teams and team members working to fix bugs. Nothing defines Agile more than the expectation of constantly changing requirements and the ability to adapt to constantly changing consumer demand. Agile Methodology provides the ‘how to work’ while IIoT connectivity provides the mechanism by which developers can fix bugs remotely via updates, (even before 99% of users encounter a problem). New features are now just an update to an existing product, purchased online and installed remotely (just as is done for mobile applications today, it will be for increasing numbers of products across all industries, extending the lifespan of the physical product.