Software Product Assurance
Observing the earth, launching rockets, understanding deep space, communicating, broadcasting information, allowing life in space, retrieving space science data, commanding satellites; all this requests the collaboration of thousands people with very accurate and specific skills in tens of domains - each domain having its specific constraints, both technical and programmatic. Since Sputnik 1, launched on October 4, 1957, technologies, processing, and knowledge of space have evolved in an exponential way leaving room for more and more potential for errors and failures.
Nowadays, most of the domains involve software and it is easy to see why software complexity has increased. Ground and flight systems have different intertwining, memory, processing and development constraints that must be taken into account.
So, the need is clear for an organisational approach to coordination and ensure that the whole set of activities will contribute to a final system fulfilling the required needs. This is an essential part of management but when budgets come into the loop, it is attractive to skip activities which could be seen as redundant or useless. Wherever software is concerned, this where product assurance starts.
How many software engineers does it take to change a light bulb? Just one. But the house falls down. -- Andrew Siwko (Software engineer proverb)
What is the Software Product Assurance domain?
Independent experts in ESA'se Software Product Assurance branch are involved in developments through each and every programme stage. They aimto ensure that their programme is not jeopardised by unwise decisions when it comes to deviating from state of the art processes defined for space by the European Cooperaton for Space Standardisation. They also seek to make sure that all necessary analyses have been performed to ensure that the satellite mission will not fail due to an unexpected error either within the system itself or due to human operation, that data will always be available for processing on ground, that systems are correctly connected and perform in an adequate way.
How many Quality Assurance testers does it take to change a light bulb? QA testers don't change anything. They just report that it's dark. -- Kerry Zallar (Software engineer proverb)
In other words, Software Product Assurance assesses the organisation and performance of activities for software processes and enforces their improvement when deemed necessary to allow the correct evaluation of software products.
Why is Software Product Assurance important?
Recall the Ariane 5 first launch in May 1996: After a successful series of Ariane 4 launches, the Ariane 501 maiden flight ended in the Atlantic. A software product from Ariane 4 that was considered reliable and therefore suitable for reuse had not gone through all the verification and qualification process that are normally applied.
Due to budget and schedule constraints and with applying the appropriate risk management principles, the choice had been taken to shorten the qualification process.The risk may be taken not to perform all activities but this is only worth taking if properly assessed by Product Assurance.
One can then see Software Product Assurance as equivalent to safety net of a tightrope walker during the development, production and exploitation of our complex software systems.
In other words, Software Product Assurance assesses the organisation and performance of activities for software processes and enforces their improvement when deemed necessary to allow the correct evaluation of software products.