The Agile Way - Practising Dynamic Development in Critical Systems
High-integrity systems, like those in defence, present a range of challenges for developers. Learn how Agile, Waterfall and other project management methodologies can give developers the tools to meet the demands of these systems.
Organisations operating in the defence sector rely heavily on high-integrity systems in some of the most demanding situations imaginable. These systems are designed with a strong focus on the safety and security of people and assets, playing a big role in critical operations. Training and simulation, situational awareness or fire support are just a few examples.
In defence, it’s not difficult to imagine how complex these systems are and to understand the crucial role they play. Having advanced and reliable technology solutions can be the difference between life and death. This pressures defence organisations to stay ahead of the game, requiring them to quickly adapt to new threats and technological developments.
But what does this have to do with agile and waterfall software development methods?
High-integrity systems are traditionally developed with a classic waterfall approach that’s supported by many industry standards. Why waterfall? High-integrity systems rightly demand evidence that certification standards have been met in order to guarantee system safety, security, reliability and availability – things that waterfall methods handle quite comfortably.
However, not everything is perfect in the world of waterfall. Waterfall typically carries the cost of sizeable gaps in time between a system’s specification and its eventual delivery. If system requirements change, this makes it tricky to adapt, not least because the lengthy software development and validation phase requires stable specifications. As soon as “change” and “iteration” are brought into the fold, the waterfall approach faces serious challenges. Agile more easily addresses these issues. Agile enthusiasts highlight how flexible the approach is because of its ability to adapt to changing requirements.
However, there are some things that have traditionally been a challenge to agile being used in the development of high-integrity systems. For example, agile uses stories to document requirements but this doesn’t guarantee the necessary completeness required by high-integrity systems in order to achieve certification standards. Does this mean that agile is not compatible with high-integrity systems? We don’t think it does.
High-integrity systems use many forms of verification to achieve certification, such as safety assessment analyses, code reviews and requirement tests – and agile is entirely compatible with these! So, we decided to set ourselves the challenge and test agile methodologies on our high-integrity system projects. We ended up developing our very own approach, using agile frameworks and user-centric design to ensure a more flexible development process that retains the standards required for high-integrity systems certification.
To find out more, check out our step-by-step guide on how to use agile to develop high-integrity systems.