Be the first to like this
Doing refactoring seems to be obvious practice in a software development. In many teams times it 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 refactorings or even more complex refactorings to patterns, clean code rules and naming rules. But it is not enough. Pragmatic refactoring is a difficult practice that requires many years of 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 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 TDD. NCR is a way of thinking which shifts your focus from single refactorings 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 refactorings you should take into consideration in the particular stage and also which refactorings are way too big steps. Who can benefit from this?
Every programmer beginning refactoring practice or having need for clear guidance about refactoring process.
Every leader who wants refactoring to become an everyday practice even in inexperience team.
Every coach who wants to have a simple yet powerful framework to teach refactoring as a whole process (not only weakly connected pieces).