Automating the delivery of reliable software