News & Media
New Software Development Methods Require New Systems Engineering Methods
A waterfall software development approach has formal processes and strict steps that require a lot of time and preparation. If requirements change during development, then engineers may have to scrap work. New requirements then need to be defined. New designs are necessary to satisfy the new requirements. All of this can be costly and time-consuming.
In contrast, agile software development methods enable the Navy to develop new systems and modernize legacy software with less risk. Agile is a lean, cost-effective way to prove out concepts. The agile approach encourages adaptive planning, frequent deliveries, and continuous improvement to reduce the cost and risk of an uncertain or complex project.
Traditional system engineering processes that rely heavily on documentation are suited for traditional software development methods. Unfortunately, this heavily structured, document-centric approach contradicts agile’s iterative and fast-moving methodology that welcomes frequent change.
In addition to the staffing requirements—often dozens of engineers dedicated to updating hundreds of documents—and costs to support labor-intensive traditional system engineering methods, the Navy faces other issues:
• Slow speed to deployment as inefficient, manually-maintained systems engineering processes hold back agile software development. Often, it’s not easy to find the information a development team needs.
• Slow onboarding times as new engineers try to review dozens of documents dispersed across many databases, many of which containing outdated information.
• As documentation is not always maintained and updated, this can cause communications issues in development, introduce errors, and require additional development time to correct these issues.
• Similarly, complex, manual documentation may not be accurate, introducing errors in software development. Again, costly time is required to update code, retest, etc.
• Slow answers to stakeholder questions about how system changes, capability improvements, and capability gaps may impact a system and warfighter abilities.
Instead of manually updating documents (What we have image, below), a model-based approach (What we need image, below) will generate documentation from precise, traceable, and dynamic modular units of information from a single model. This dramatically reduces errors on deliverables and the amount of time spent preparing them. Model-Based Systems Engineering (MBSE) automatically generates deliverables from the model. Because of the dynamic, bi-directional traceability of the model elements, one change to one element in the model automatically propagates to every use and reference to that element everywhere. Traditional systems engineering approaches cannot achieve this level of agility and response to change.
An initial concern about implementing MBSE is that not everyone understands how to read the models. Everyone knows the English language, but not everyone knows the Systems Modeling Language (SysML). There’s apprehension about staff learning another language and another tool. Fortunately, the power of SysML and Cameo Systems Modeler can translate the model’s information into user-friendly documentation.
MBSE models house information in a structured, organized way. The information is also networked, unlike in a Word document. MBSE methodology uses generic templates that can automatically generate documentation for compliance and other purposes. In contrast, the Word and Excel approach to documentation requires users to know which documents must be updated and make necessary changes manually.
The Navy’s “Compile to Combat in 24 Hours” or “C2C24” initiative requires the Navy to change its software architecture and systems engineering approaches. The goal is to deploy new software capabilities in 24 hours, not the 18-month+ timeframe that’s now common. Because it usually takes decades to develop new platforms, the focus is to save money and time by modernizing the current fleet.
However, the Navy can’t just change the way it develops and deploys software. It must also change the way it does systems engineering. To fully realize the benefits of agile software development, the Navy needs to prioritize a shift to Model-Based Systems Engineering.