Absolutely agree that the thinking required to write testable code is a huge benefit. And, you don't know how testable it is without the tests.
Enforcement can be a bit tricky -- the key is to get the desired mindset and behavior. Sometimes rules and enforcement can become a monster, and drive behavior that's compliant with the enforcement, without the necessary judgment (or understanding of the right mindset). Maybe an opportunity to start with some lightweight / nonthreatening checks, and view noncompliance as an opportunity to discuss and explore, rather than to reject transactions?
Cofounded Host Collective (DiscountASP.net). Cofounded Player Axis (Social Gaming). Computer Scientist and Technology Evangelist with 20+ years of experience with JavaScript!
Absolutely agree that the thinking required to write testable code is a huge benefit. And, you don't know how testable it is without the tests.
Enforcement can be a bit tricky -- the key is to get the desired mindset and behavior. Sometimes rules and enforcement can become a monster, and drive behavior that's compliant with the enforcement, without the necessary judgment (or understanding of the right mindset). Maybe an opportunity to start with some lightweight / nonthreatening checks, and view noncompliance as an opportunity to discuss and explore, rather than to reject transactions?
It is important a balance must be achieved for the enforcement. This is why it's up to the teams to decide their own rules.