The Natural Course of Refactoring

Doing refactoring seems to be an obvious programming practice. In many software development teams, this is not being done at all. “We have no time to do it!”. “We are not allowed”. “We don’t know where to start and how to do it pragmatically”. Many programmers are familiar with classic refactoring or even more complex refactoring to patterns, clean code rules and naming rules. But this is not enough! Pragmatic refactoring is a difficult practice that requires many years of programming and testing experience. And what if you or folks from your team don’t have that experience? Then refactoring may be more harmful than useful. The Natural Course of Refactoring (NCR) is a process, workflow that expresses something what may seem obvious for experienced refactoring practitioner but very difficult to figure out for beginners or even more advanced practitioners. It is like red-green-refactor for Test-Driven Development (TDD). NCR is a way of thinking which shifts your focus from single refactoring to a more holistic approach. It is also decision framework helping you to specify what is next pragmatic step (if there is any). It helps you to recognize what stage the particular fragment of source code is, what you can do about it and decide if to do something or leave it as it is. It guides you what exact refactoring you should take into consideration in the particular stage and also which refactoring are way too big steps.

Video producer: