Konfayakon is a term we use at Pichak to refer to major refactors. It is a persian term came from Quran with a change in the meaning. To konfayakon something means to change it so much that it is no longer recognizable.
My experience shows the need for a major refactor is caused by writing spaghetti code to deliver features as soon as possible one after another.
Teams developing projects should set a rule: Avoid Konfayakons! Believe me, you don’t want that! This simple rule has consequences:
- First, teams should value not only the final product, but the code itself. Code should be clean and maintainable.
- Teams should set deadlines based on realistic assumptions. Never force a developer to deliver a feature without giving him enough time for thinking, implementing and refactoring.
- The code should be reviewed by another developer before it is merged into the product to make sure it is clean and well-formed.
Remember there is no room in tomorrow to refactor the code you write today. There is always a new feature you want to code.