Why the Boy Scout rule will make you a better developer