Agile Methods are most applicable to projects
where requirements are ill-defined and fluid since they
seek to accommodate change easily. Projects that are
unprecedented within an organization or use cutting
edge technology (or are themselves the cutting edge
technology) are examples of projects where change is
likely to have a significant impact on the project
Agile development does not lend itself to the types
of rigorous analysis required to ensure the degree of
assurance required for safety- and life-critical systems.
This is because proving correctness is a non-Agile
process requiring documentation and significant
analysis. While quality is kept high by having a large
number of tests, quality is only as comprehensive as
the tests themselves. Code reviews are performed, but
typically not with the rigor of formal methods that are
more typically used with such critical systems.