Viewpoints: What Can Agile Methods Bring To High-Integrity Software Development?
Viewpoints: What Can Agile Methods Bring To High-Integrity Software Development?
Viewpoints: What Can Agile Methods Bring To High-Integrity Software Development?
viewpoints
Viewpoints
What Can Agile Methods
Bring to High-Integrity
Software Development?
Considering the issues and opportunities raised by Agile
practices in the development of high-integrity software.
T
HERE IS MUCH interest in
Agile engineering, espe-
cially for software develop-
ment. Agile’s proponents
promote its flexibility, lean-
ness, and ability to manage changing
requirements, and deride the plan-
driven or waterfall approach. Detrac-
tors criticize Agile’s free-for-all.
At Altran U.K., we use disciplined
and planned engineering, particu-
larly when it comes to high-integrity
systems that involve safety, security,
or other critical properties. A shallow
analysis is that Agile is anathema to
high-integrity systems development,
but this is a naïve reaction. Pertinent
questions include:
˲˲ Is Agile compatible with high-
integrity systems development?
˲˲ Where is Agile inappropriate?
˲˲ Do Agile’s assumptions hold for
high-integrity or embedded systems?
PHOTO BY UK’ S GOVERNM ENT DIGITA L SERVICE/F LICKR (C C BY 2 .0)
O C TO B E R 2 0 1 7 | VO L. 6 0 | N O. 1 0 | C OM M U N IC AT ION S OF T HE ACM 39
viewpoints
ways able to accept delivery of the build (perhaps once every six months) In mitigation, we reduce on-target
product and use it immediately. This has a complete assurance package, in- testing with more static verification.
is not realistic for high-integrity proj- cluding a safety case, and is designed Secondly, if we know that code is com-
ects. Some customers have their own for eventual operation. The trick is pletely unambiguous, then we can jus-
acceptance process, and regulators to make the iteration rates harmonic, tify testing on host development ma-
may have to assess the system before both with each other and with the cus- chines and reduce the need to repeat
deployment. These processes can be tomer and regulator’s ability to accept the test runs on target. Hardware sim-
orders-of-magnitude slower than a and deploy releases. ulation can give each developer a desk-
typical Agile tempo. Embedded Systems Issues. Agile top virtual target or a fast cloud for the
iFACTS uses a deeper pipeline and presumes plentiful availability of fast deployment pipeline. While virtual-
multiple iteration rates, with at least testing resources to drive the devel- ization of popular microprocessors is
four builds in the pipeline: opment pipeline. For embedded sys- common, high-fidelity simulation of
˲˲ Build N: in operation with the cus- tems, if the hardware exists, there may a target’s operating environment re-
tomer. be just one or two target rigs that are mains a significant challenge.
˲˲ Build N+1: undergoing customer slow, hostile to automation, and dif- On one embedded project, all de-
acceptance. This process is subject to ficult to access. We have seen projects velopment of code, static analysis, and
regulatory requirements, and so can revert to 24-hour-a-day shift-working testing is done on developers’ host ma-
take months. to allow access to the target hardware. chines, which are plentiful, fast, and
˲˲ Build N+2: in development and offer a friendly environment. A final
test. re-run of the test cases is performed
˲˲ Build N+3: undergoing require-
Agile presumes on the target hardware with the expec-
ments and formal specification. tation of pass-first-time, and allowing
All four pipeline stages run concur- plentiful availability the collection of structural coverage
rently with multiple internal iteration of fast testing data at the object-code level.
rates and delivery standards. The de-
velopment team can deliver to our test resources to drive the Opportunities
team several times a day. A rapid build development pipeline. High-integrity practices can comple-
can be delivered to the customer (in, ment Agile. We previously mentioned
say, 24 hours), but comes with limita- the use of static verification tools.
tions on its assurance package and While we have a preference for devel-
allowed use: it is not intended for op- oper-led, sound analysis, we recog-
erational use, but for feedback from nize that some projects might find
the customer on a new feature. A full more benefit in unsound, but easier to
O C TO B E R 2 0 1 7 | VO L. 6 0 | N O. 1 0 | C OM M U N IC AT ION S OF T HE ACM 41