Since Fowler's definition, refactoring has become a daily practice for developers in teams around the world. It is an essential technique for maintaining adaptable software code, and a test suite is a requirement for this. Meanwhile, refactoring also requires discipline and maturity in those who apply it, such as how, when, and why it becomes a necessity not only for a developer but also for the business.