I grew up writing software for embedded real-time control system software world, out of graduate school working on Radar Systems, Flight Systems, Safety Systems, and Process Control Systems. I moved to enterprise business systems, then to product development, then to managing systems like these.
I'm now back to managing the processes and governance of the development of these systems using agile development processes.
The first question is are agile methods and safety-critical software compatible?
- Can Agile methods be applied to safety-critical software and the software still be rigorously built and meet certification criteria?
- What evidence is there for the benefits of Agile methods, especially as regards safety-critical software?
- Can DO-178D and EN 50128 for aviation and rail systems be applied while developing the software with Scrum?
Let's look as an Agile method and give them color grades [1]
- Short release cycles
- Incremental requirements development
- Customer presence on the project
- The customer determines the functions for each release
- Small teams
- Large teams
- Process adapted for each project
- Multi-skilled team members
- Any team member can change anything
- Pair Programming
- Test Driven Development
- Retrospectives
- Refactoring
- Less emphasis on design and documentation
- Self Organizing Teams
- Departments as service providers
DO-178C Software Considerations in Airborne Systems and Equipment Certification is the primary document used by certification authorities like the as FAA, EASA and Transport Canada to approve commercial software-based aerospace systems.
The outputs of DO-178C include:
- Plan for Software Aspects of Certification
- Software Development Plan
- Software Verification Plan
- Software Configuration Management Plan
- Software Quality Assurance Plan
- Software Requirements Standards
- Software Design Standards
- Software Code Standards
- Software Requirements Data
- Software Design Description
- Source Code compliant with these guidelines
- Executable Object Code component with these guides
- Software Verification Cases and Procedures
- Software Verification Results
- Problem Reports
- Software Configuration Management Records
- Software Quality Assurance Records
- Software Accomplishment Summary
[1] "Agile Methods and Safety-Critical Software, Are They Compatible?, Peter Gardner, Silver Atena