Table of Contents
- Part 0: Overview
- Part 1: What is Agile, Anyway?
- Part 2: What’s Your Problem?
- Part 3: Agile Contracts and the Downfall of Requirements
- Part 4: Digital Transformation (you’re here!)
- Part 5: Agility on Large, Complex Programs
A quick detour
This article is a quick detour on an important enabler for agile systems engineering. “Digital transformation” means re-imagining the way businesses operate in the digital age, including how we engineer systems. As future articles discuss scaling agile practices to larger and more complex systems, it will be very helpful to understand the possibilities that digital engineering unlocks.
Digital engineering enables the agile revolution
The knee-jerk reaction to agile systems engineering is this: “sure, agile is great for the speed and flexibility of software development, but there’s just no way to apply it to hardware systems”. Objections range from development times to lead times to the cost of producing physical prototypes.
Enter digital engineering (DE). DE is the use of computer models to develop, analyze, prototype, simulate, and experiment with the system. Of course, we’ve used computers in engineering for decades for computer-aided design (CAD), modeling & simulation (M&S), and more. DE integrates and builds upon these individual tools to model the entire, integrated system. It takes advantage of the latest discipline tools for development, integrates them using model-based systems engineering (MBSE) techniques, and uses simulation tools to test performance in realistic mission environments.
Because all components are digitally modeled, it can be treated much more like a software project using Dev*Ops. Engineering teams in every discipline work in a version control system and can branch, collapse, experiment, and unit test. They feed in data from analyses and tests to improve the fidelity of the model. When a component design is ready, it gets pushed to a test environment where automated testing makes sure nothing breaks. Then, it is deployed into a “production” simulation environment where a combination of automated and manual simulation puts the system through its paces and evaluates performance in various test scenarios.
Ready to build for real? Pick a configuration and move into a real-world prototyping and/or initial production effort with confidence in the design. We can then compare actual and simulated performance data to verify the accuracy of the models, as well as feed the results back into the model to increase its fidelity going forward.
The most-cited success story for DE and agile system development is the Saab Gripen E multi-role strike fighter [pdf]. Using a Dev*Ops approach, any version of the aircraft could be “compiled” and virtually flown at any time. Want to compare different mission system packages, armament sets, or other configurations? It’s easy to pull those options and go fly.
As a systems engineer, I love this! We can use powerful simulation environments to understand complex system interactions, conduct trade studies, and optimize the design across the entire system. And because it’s virtual, we can make changes quickly to explore possibilities with no risk—even off-the-wall ideas just to see. Systems engineering becomes generative again, breaking out of the reductive mindset we often find ourselves in.
Lifecycle analyses, digital twins, and other benefits
The benefits of the DE go far beyond the initial development. So far we’ve focused on system operational performance, but the entire system lifecycle range can be simulated. Maintainability, reliability, failure modes and effects, safety, robustness, survivability, usability, etc. WOW! This enables holistic lifecycle systems engineering like we’ve never seen before.
The digital system model can be reused in many ways, providing benefits far past the initial development for example, simulation capabilities can be packaged into training devices, providing more accurate training for a reduced cost/development time.
The biggest impact may come from the concept of a “digital twin”. This involves feeding real-world data back into a digital model for each individual unit in order to maintain an exact (as much as possible) simulation. There are many applications, such as:
- Condition-based maintenance: a unit which has seen severe service may be brought in for maintenance sooner than scheduled, while a unit with light duty may be able to extend its maintenance interval
- Performance prediction: test performance virtually before operating in previously unanticipated environments or configurations
- Failure reconstruction: if a unit fails, having an exact digital model enhances the investigation
- Software upgrade testing: perform testing of upgrades on each fielded configuration to ensure compatibility
- Threat analysis: test each fielded configuration for vulnerabilities to new cyber and physical threats
Digital twins can be built after-the-fact, but a native digital design allows for a very simple transition from engineering to operations1.
DE isn’t necessarily a prerequisite to agility nor does adopting DE make a program Agile. However, the combination of Agile and DE can be extremely powerful. The real key for Agility is how the program is planned and functions prioritized. More on that next time.
Have you worked with a DE for a large system? Did I overlook any impacts or benefits? What are pitfalls to be aware of? Share your experiences and opinions in the comments below!