Some critical infrastructure runs on ancient software. Engineers should understand how software can fail.