Connecting hardware and software lifecycles to build the Internet of Things
Traditional software development practices and tools can’t scale up to support the accelerated delivery cycles and iterations of products designed for the Internet of Things. You need modern tools and practices designed for the IoT to succeed.
In the past, traditional development methodologies were waterfall and led in one direction: from design to deployment, with little data coming back to the development team from deployed products. However, in the Internet of Things, embedded software and sensors in the hardware send operational data back for analysis and action back to the developers. Real-world usage data is now available for developers to improve the quality and usability of their products quickly. We refer to the IoT development process as a feedback loop.
Teams that have successfully leveraged agile methods to improve software delivery now want to carry that over to hardware, to apply the same agile methods to mechanical, electrical design and manufacturing processes. They are challenged with connecting software, hardware and device services components together and linking together the engineering disciplines that deliver these components of the completed product.
Hardware and software configurations evolve at different rates, and keeping track of which software goes with which hardware requires clear connections. As product complexity increases, each component’s configuration and its linkages across the overall product configuration can soon become unmanageable without a system to support the process.
Product lifecycle management
In product lifecycle management (PLM), hardware configurations are managed through the Bill of Materials (BOM). There are several types of BOM including the electrical design, mechanical design and manufactured assembly, such that now a “product” is actually a “system” – and you need a way to trace the parts of that system and their dependencies across the phases of the product development (and deployment) lifecycle with clear linkages. In IoT, this is sometimes referred to as the “digital thread”—the traceability through the nodes of a BOM through its lifecycle and back.
In application lifecycle management (ALM), software configurations are managed through software change and configuration management tools. The capabilities of these tools have become increasingly critical to successful software development as software complexity has increased, software supply chains of different component vendors have evolved, and agile methods have become important to the timely delivery of software.
In the context of IoT development, linking your software configurations with your hardware BOMs is vital to successfully delivering a quality product that can be evolved in the light of changing customer needs informed by operational feedback. Rapid and accurate understanding of the impacts of changes across the whole IoT product, including all aspects of hardware and software, is critical to the IoT lifecycle.
The linking of the worlds of ALM and PLM in this way is a difficult challenge; PLM and ALM tools are typically supplied by different vendors and are often deeply embedded in an organization’s engineering and development processes. ‘Rip and replace’ of existing environments often simply isn’t an option; you need connectivity between the worlds of PLM and ALM.
Linking ALM and PLM is a big step toward digital transformation of product development and realizing the “digital thread”.
Learn how IBM is linking ALM and PLM.