title: Premature refactoring?
body: <p>We have all heard of <a href="http://en.wikipedia.org/wiki/Program_optimization#When_to_optimize" rel="noreferrer">premature optimization</a>, but what do you think about premature refactoring? Is there any such thing in your opinion? Here is what I am getting at.</p>
  
  <p>First off, reading Martin Fowler's seminal work <a href="http://refactoring.com/" rel="noreferrer">"Refactoring"</a> quite literally changed my life in regards to programming. </p>
  
  <p>One thing that I have noticed, however, is that if I start refactoring a class or framework too quickly, I sometimes find myself coded into a corner so-to-speak. Now, I suspect that the issue is not really refactoring per se, but maybe premature/poor design decisions/assumptions.</p>
  
  <p>What are your thoughts, insights and/or opinions on this issue? Do you have any advice or common anti-patterns related to this issue?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>From reading your answers and reflecting on this issue more, I think I have come to the realization that my problem in this case is really an issue of "premature design" and not necessarily "premature refactoring". I have been guilty of assuming a design and refactoring in that direction to early in the coding process. A little patience on my part  to maintain a level of design agnosticism and focus on refactoring towards clean code would keep me from heading down these design rabbit trails.</p>