One not-terrible way to start on your bug-free crusade would be to switch to functional programming languages and styles and &quot;pure&quot; functions.<p>Having done 10 years of OO before I began coding in a functional style and realized all the benefits, this is my experience talking.