For the past week, I have been doing some serious refactoring and Agile Code quality control. Some may ask why can’t I outsource this to contractors or other team members? There are many reasons and I will list some of them for general learning.
Code refactoring is usually done for many reasons and one of them is upgrade of legacy logic to current logic. In many cases, code refactoring takes a long duration amid a waterfall approach. In my case, I adopt an Agile refactoring approach. This approach warrants certain criteria and conditions.
- Project timeline is very short and agile refactoring approach is best suited for this nature.
- Code refactoring requires deep knowledge of domain and technical aspects of the system.
- There is a need to remove old codes that are irrelevant. Therefore, junior member or contractors are not able to provide the decision making.
- There is also refactoring for performance and upgrade of solution to current ones.
- Some codes are layered and entangled in logic. Sometimes, a rewrite is better taken to obtain the same output.
- Some codes are obsolete and require total removal. It take guts to cut away this cancer.
Code Refactoring is seldom recommended as it is time consuming and resource intensive. Decades old codes, performance issues and recurring user tickets could point a need to refactoring. You may choose to adopt Agile Refactoring approach instead. However, this approach can only be undertaken by SME (Subject Matter Expert) with deep techno-functional knowledge.