Modern software systems are very complex and everyone notices when a system fails. These are things we do to ensure our software is a reliable as possible.