There are many considerations. First, your critical safety. If your answer is “A” or “B” (and indeed “A”), then absolutely NOT. You will not succeed in making Agile in any way in form or form. There are very strict coding standards, documentation standards, and process standards required from level A software (my experience is about 15 years). It includes:
- Full traceability up / down.
- Full coverage of branches.
- Full tiered coverage.
- Key documents outlined by DO-178B include: SRD, SDD, SCI, SCMP, SDP, TQP, SCI ...
Thus, you must not only certify your code, design and requirements, but also certify tool kits, compilers, automated test equipment, etc.
In short, this is really not a small feat, and it will not be done with a small team. Similarly, the interfaces are really robust and very specific as well as static. Changing interfaces usually requires coordination with 3+ companies (Airframe, Vender 1 - Vender 2).
Honestly, a 12-line code change can cost up to $ 170,000. Of course, changing 500 lines of code would be $ 190,000. In short, there is a huge process overhead associated with level A code (much less with level B, even less with C and very little with level D), making small iterations very expensive; i.e. it costs a lot of money to get a fully charged and flying 777 to test a little change. Even the system test laboratories of large commercial aircraft will have a burning rate of $ 10,000 per day.
For example: Level A: HUD, Thrust Reversers, Power-Systems, FADEC (engine control) Level B: Secondary switching logic, Voice communication systems. Level C: In flight data channels. Level D: in flight entertainment systems.
Tier D and possibly Tier C may be candidates for Agile.
Steven noyes
source share