For example, the Scouts’ Rule is really nice in general, but there are exceptions.
A good exception was given to me the other day from a friend. If you work with integrating different third party subsystems, blindly following Scouts’ Rule and cleaning up parts of the third party code is not a good idea. Why? Because in a year, when the new version of that third party code ships, solving lots of small issues and improving performance and so on – you really want to use the latest version. But that is not so easy if your whole team has used Scouts’ Rule without exception, even to that subsystem. At best the Scouts’ Rule refactorings in that subsystem has been a waste, at worst you are facing a lot of headache updating the subsystem because of all changes your team has made.
Only fundamentalists lack doubt. Do not be a fundamentalist; always question your own ideals.
Keep experimenting and learning
The most important question to ask yourself every now and then is “Why?”. Why are you following a certain rule-of-thumb, why are you solving problems in a certain way and so on. Do not stop experimenting and learning just because you have found a set of principles you really love.
This is closely related to the topic of “Because we have always done it that way” (upcoming topic), probably the most popular answer to the question “Why do we have to do it this way?”.
Be aware that if you cannot yourself answer that question for your own rules, you might not be ready to follow the rules, and the rules become simple dogma or religious do-not-ask-why rituals.
The search for too rigid rules to follow is the search for becoming a robot; you are not a robot, you are human.
In short – stay open minded.