I quote a recent article as it struck me as a rational for a comprehensive development architecture and environment.

The article begins:

"A software 'fix' sent up to NASA's Mars Global Surveyor spacecraft in June 2006 ultimately led to its failure five months later...

...The incorrect June 2006 software upload was, in turn, meant to fix a problem created in September 2005"

Later in the article:

"The report says the mission team followed existing procedures and processes in running the mission, but that these procedures were 'inadequate' to catch the errors, and that the failure may not have occurred if the protocol had been more thorough or the team had recognised and addressed the inadequacies."