The Right System Architecture Will Reduce Software Failures