An approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s). It advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages flexible responses to change. This allows us to deliver requirements in a more continuous manner and getting immediate customer feedback. This helps us create higher quality products more swiftly than traditional development methods.
This is the level of confidence that software is free from vulnerabilities, either intentionally designed into the software or accidentally inserted at any time during its lifecycle, and that the software functions in the intended manner. We have defined and implemented software assurance policy for customers, trained customers on proper use of tools, e.g., Fortify, and developed an Executive Reporting Dashboard to clearly identify risks and show mitigation strategies.
Comprised of the procedural and administrative actions taken to produce or deliver a “quality” product or service. The process used to generate the product or service is assessed, measured, and improved as necessary to increase the quality of the output of the process. We typically adopt industry best practices (and processes) as the baseline by which we assess, measure, and improve our processes and processes of organizations we are assessing.
We perform these two functions to make sure a product or service meets the requirements or specifications and that it fulfills its intended purpose. Verification ensures that as a requirement is built, it is meeting the requirements and specifications along each step of the development process. Validation ensures the end product meets the intended purpose and satisfies the customers need. Often, our team is set aside from the development team’s organization, thereby being independent. The ultimate goal is to help the development teams develop meets the system’s requirements and provides the customer what they need and expected.
In the family of Quality Assurance, Operational Testing is used to ensure the product is ready to be released. It often focuses on Reliability, Availability, and Maintainability as measures to determine how ready the product is to be delivered to the user. When we perform Operational Testing, we observe testing, assess data, determine if Key Performance Parameters have been satisfied, and make assessments and recommendations related to the use of each product release.
DO-178 is a guideline applied by the FAA to determine if software will perform reliably in an airborne environment. Our team uses DO-178C as a baseline of best practices expected to be implemented during the development of airborne software, especially for systems to be used in commercial airspace. For each Design Assurance Level (DAL) associated with a particular software system, there are a corresponding set of objectives/practices required to satisfy the DAL. Our team assesses the processes and products associated with such systems using DO-178C as the standard.
Airworthiness is the measure of an aircraft’s suitability for flight. We assess the aircraft and provide recommendations in the form of an Airworthiness Release (AWR). We assess various system components, subsystems, and systems taking into consideration design, drawings, tools, data, human factors, structures, etc., to determine if the aircraft will meet particular operating environment requirements or if there are any limiting factors.
These are guidelines and methods for conducting safety assessments on civil airborne systems and equipment and for assessing the development process related to the certification of such aircraft. We often interface with the FAA while performing these types of assessments.