It takes a village
07 August 2017
Why you need a software platform powered by a robust ecosystem.
What will you do with LabVIEW?
“It takes a village.” While this African proverb generally refers to the need for an influential infrastructure beyond the immediate family for the healthy development of a child, you might be surprised to learn that this same concept can be extended to the engineering world. The pace and promise of a connected world have rapidly escalated the demands on the design and test of engineering systems, and now, more than ever, it takes a village – a village of software.
Today’s engineering software has typically evolved along two diverging paths. Along one path, you’ll find specialisation – software designed for a specific task or type of hardware. Along the other path, you’ll find abstraction – a simplified interface to a once complex concept that makes it easier to accomplish the task faster, but at the price of removing low-level control. Any vendor that claims to solve these challenges with a single software is either confused or naïve. I’m not sure which one is worse, but know that whichever path you choose, you must demand interoperability or risk bearing the burden of integration yourself.
History teaches lessons, if you’re willing to listen
As history has repeatedly taught us, combining disparate software from competing vendors is cumbersome, expensive, and particularly difficult to ensure interoperability. Interoperability is best achieved by building multiple software out of a single platform, and then having a vibrant ecosystem built on top of that platform for specialised IP and functionality. This concept is best exemplified by the Operating System.
Decades ago, Microsoft Windows evidenced the advantages of a unified platform by defining standard communication protocols on top of a common infrastructure – the PC. The result was a common interface that was easily extensible, thus making the hardware platform of the PC highly efficient. Over time we have seen point solutions, such as cash registers, replaced by the general purpose PC with custom software. One could argue that the Apple iOS took the platform concept to the next level. In the case of the iOS, its robust ecosystem built on top of the standard infrastructure was what catapulted it forward.
To provide ultimate interoperability and maximise the designs engineers are working on, vendors need to build software the right way. As a company, NI’s philosophy is taking the benefits that the desktop Operating System brought to the PC market and applying it to engineering software.
The value of an engineering OS
Figure 1 (continued)
While both of the previous examples are consumer OSs, the analogy can be carried forward to the design and test of engineering systems. Consider the concept of an ‘Engineering OS’ – a software platform that’s designed to standardise and simplify the interaction between a human and the engineering system he or she is designing, just like a traditional OS simplifies the interactions between a human and a PC.
Figure 1 – An ‘Engineering OS’ is a software platform that’s designed to standardise and simplify the interaction between a human and the engineering system he or she is designing, just like a traditional OS simplifies the interactions between a human and a PC.
A true Engineering OS is a collection of technology components, or fundamental building blocks, that can be used to architect various software products aimed at solving different problems. These fundamental building blocks are common across almost any engineering software – UI elements to visualise data, signal processing IP, compiler architectures to optimise code for various processor architectures, professional language constructs, driver APIs, and deployment architectures. However, the packaging of these components together is what ultimately fosters productivity and creates efficiencies when accomplishing tasks. For example, the combination of these elements into a software designed to manage a high-level test sequencing architecture will not only look different, but have different workflows, skinning, IP, and an interaction design from a software designed for an interactive hardware configuration and data acquisition experience.
Figure 2 – The platform-based approach to software development enables the design of highly-specialised products from one singular collection of tools – including a test sequence manager and an interactive hardware discovery and configuration interface.
It’s the holistic collection of these software tools that provide the value of an Engineering OS. Out of this singular platform, highly specialised products like hardware drivers, deployment management, and distributed systems management are created. Out of this singular platform, high-level configuration-based products like a test sequence manager, a cloud-based analytics interface, and a turn-key online condition monitoring management software are created. Out of this singular platform, highly customised development environments that contain a highly productive graphical development language or an ANSI-C based development language are available. Out of this singular platform, each of the individual components needed to solve your application is accessible and created in a way that promotes and simplifies the integration between them. Furthermore, because the technology components of an Engineering OS are built from the same platform, there are direct and indirect benefits you will realise as the user.
Simplified learning curve
There is a straightforward, but not simple, trend in software today – the demand for more powerful and capable software with higher-level starting points and increased ease of use. One of the benefits of the platform-based approach, when done well, is that the final product presents a common and simplified learning curve. The common capabilities are addressed by the foundational building blocks, which provide two unique benefits. First, the commonality in these foundational building blocks means that users do not need to re-learn these core elements when combining multiple software in a system because the interaction paradigm is shared across the platform. Secondly, the development team can wrap these foundational elements in the appropriate end-to-end design flow that’s required by the task at hand – giving you a tailored experience.
With the growing complexity in today’s solutions, the need to combine multiple software languages, environments, and approaches is becoming fairly ubiquitous. However, the cost of integrating these approaches is considerable and continues to increase. The platform-based approach simplifies the interoperability on several fronts. First, the built-in IP and APIs across products are shared. This promotes a high level of code reuse without any measure of refactoring or rewriting. This can drastically reduce the cost of integration throughout an organisation, in addition to the integration at the individual user level. This also eliminates the bifurcation between abstraction and specialisation. From a single platform, a highly specialised software can be developed to accomplish a specific task, such as data logging, offline data correlation and analysis, or even a test sequence manager. Then, that specialised software can be further extended by, or integrated into, a higher-level tool. With this unique combination of capabilities, you can ultimately select the right tool for each aspect of your project, and not be burdened by the costly task of integrating these tools together.
It’s become a truth for successful software – without the ecosystem, the software struggles to stay relevant. There is no successful professional software tool that exists in a silo. The ecosystem provides immeasurable value for support, example code creation, networking, and referrals. Perhaps most importantly, the ecosystem can extend the platform with highly specialised IP beyond the vendor’s core competency or areas of expertise. Take a look at the Apple App Store – Apple engineers are not experts in fitness monitoring or reading a weather radar, but those capabilities were designed on top of their platform.
The platform-based development approach for software not only promotes the concept of ecosystem extensions, but actually simplifies the interface that these critical members can use to accomplish the extension. The fundamental approach of the platform is that the individual core capabilities are designed as reusable entities that surface in multiple products and can then be further customised for the specific needs of that user. The only way to effectively do this is to design the core capabilities around an extensible set of APIs that the individual product development teams use to extend and customise the functionality. It’s these same APIs that enable the ecosystem to further customise the functionality for their application, their company, or for their clients if they’re building a business on top of the platform.
Bringing an engineering OS to life
At our annual NIWeek conference in August 2016, we recently announced the company’s first ever NI Software Technology Preview, in order to demonstrate our continued commitment to engineering progress that builds on the past three decades of innovation in the Test and Measurement market. This Software Technology Preview features several builds of software that combine related capabilities together. Among other things, these capabilities are organised around solving key challenges that you face as an end user, such as:
Custom UI development from the desktop to the web
Systems management, visualisation, and documentation
In-product learning through rich media integration
Data analysis and management from the desktop to the server
Creating a path to programming from configuration-based software
These problem statements span many industries and can be solved in unique ways by different products. That’s the beauty of using a platform-based approach. The capabilities showcased in the Software Technology Preview are designed in such a way that they can be integrated into multiple software products from NI’s platform.
While the Software Technology Preview is focused on future unreleased developments and capabilities, there are solutions in the market today that are realising benefits from this platform investment. VeriStand 2016, a high-level software interface designed to simplify real-time test applications, includes an interface for designing graphical user interfaces that be easily embedded or deployed. LabVIEW 2016 system design software, the 30th anniversary release of LabVIEW since the 1.0 on the Macintosh Plus, features an innovative new communication protocol that uses a single wire to transfer data between parallel segments of executing code.
Figure 3 – NI’s investment into the Engineering OS is both setting the stage for future technology releases and informing existing products in the market today – including VeriStand 2016 and the latest release in the flagship software, LabVIEW.
Demand platforms – stay ahead of the competition
Simply put, designing an effective software platform is not simple. However, solving this difficult problem is exactly the investment software vendors need to deliver to help you solve the increasingly complex challenges faced by you and your companies. If you’re still using point solutions and wasting valuable time and energy working on integration instead of the business challenges you’re ultimately trying to solve, it’s time to consider a platform-based approach. Whether you need to solve an engineering challenge right now or need to prepare for the technology changes ahead, you need a platform that provides the right starting point, uses the right software approach, and is supported by a robust ecosystem.
Contact Details and Archive...