Conversations such as "Oh, this is such a cluttered design", "This software has high technical debt", and "What a complex piece of code!" may lead to exchanges such as "Can't we do something about this?", "Why can't we scrap this?", and "Can refactoring make it better?" Essentially, the discussion boils down to the famous dilemma "Refactor or re-write". Let's take a closer look at the dilemma and a few factors that impact the dilemma.