Published Sep 3, 2019

Episode 55: Refactoring Pt. 2

Delve into the complexities of software engineering with insights from Martin Fowler on large-scale refactorings, including strategies for maintaining API backward compatibility and managing database schema changes. Discover practical solutions and cultural considerations for successful implementation in ever-evolving systems.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Refactoring Challenges

    Refactoring in software development can vary significantly in scope and complexity. explains that large refactorings often involve multiple system components and can take weeks or even months to complete. This contrasts with smaller refactorings, which are typically manageable within a day and can be handled by individual developers using standard IDE tools 1. He emphasizes the importance of continuous small refactorings to avoid the need for large-scale changes, although unforeseen domain concept misunderstandings can still necessitate major refactoring efforts 2.

    You can try to avoid big reflections by doing small reflections all the time, and you really should do this.

    ---

    The complexity of large refactorings requires careful planning and communication within the team to ensure everyone understands the changes and their purpose 3.

       

    Strategy Development

    Developing strategies for large refactorings involves balancing the need for detailed planning with the flexibility to adapt as new challenges arise. suggests that while it's beneficial to have an overall plan, the specific steps often need to be adjusted during the process 3. He highlights the importance of integrating changes into the main codebase regularly to keep the team aligned and to avoid the pitfalls of working in isolation on a separate branch for extended periods 4.

    It's beneficial to work on a branch while doing the larger refactoring.

    ---

    Additionally, scripting refactorings can aid in managing changes, especially when dealing with published APIs, by automating updates for clients 5.

Related Episodes