title: Should Debug.Assert and Debug.Fail be used liberally, and should they be left in production code?
body: <p>I am reading a book which <em>asserts</em> (pun intended) "You should load your code with <em><code>Debug.Assert</code></em> methods wherever you have a condition that will always be true or false."</p>
  
  <p>I haven't been using these two debug methods, but it makes some sense. However, I am loathe to have this stuff littered all throughout my production code bases.</p>
  
  <p>Thoughts?</p>