Programming Rules: When Overruling the Machine Makes Sense