When a program always generates a report (including smooth, uneventful execution) you run the risk of missing errors simply by glossing over the report. I know it's stupid, but it's human. Programs should only report on failure, if it can be at all helped. If you define failure as including the case of not running at all, there needs to be some other mechanism in place for checking whether or not the program ran and generating a notification if not.