Refactoring & the Wider Software Development Process

  • Refactoring's early adoption was part of Extreme Programming.

  • To operate in an agile way, a team has to be capable and enthusiastic refactorers.

  • For this to happen, the Team's processes must align with making refactoring a regular part of their work.

🪨 Foundations for Refactoring

  1. Self-Testing Code: A suite of automated tests can provide confidence that changes aren't breaking functionality.

  2. Continuous Integration: Each member's refactoring efforts are quickly shared with the team.

  3. YAGNI: Refactoring & yagni positively reinforce each other. It's easier to change a simple system rather than one with speculative flexibility.

  • Balance these practices and you get a virtuous circle with a code base that responds rapidly to changing needs and is reliable.

  • A firm technical foundation can drastically reduce the time it takes to get a good idea into production.

  • These practices aren't easy but they are proven. They take practice & skill.

Last updated