Agile Event Session

Sustainable Legacy Code Refactoring: A Systematic and Stepwise Approach

This video content is for Agile Alliance members only

If you’re already an active member, please log in now.

To view this content, and gain access to many more valuable resources, conference discounts, and invitations to exclusive networking and learning events, please consider becoming an Agile Alliance member.

Abstract/Description

One of the most painful activities in software development is maintaining extremely poor legacy code. Teams transitioning to Agile suffer from challenges like moving towards shorter iterations with limited time for regression testing, trying to cover poor code with automated tests, prioritizing which refactorings to apply on which code, and convincing managers with the value of refactoring.

In this session, I will present a simple, sustainable, and stepwise approach. This approach divides the effort to refactor legacy code into three stages:

1. Quick-wins; simple and least risky enhancements
2. Divide-and-conquer the code into functional, utility, and architectural components, with identified and clear component interfaces
3. Inject-quality-in the code by wrapping components with automated tests

I will also give an overview of several experiments and case studies applying this approach and will present some interesting observations and insights about refactoring legacy applications. Finally, if time allows, I will drive you through some of the key roadmap activities to refactor (or tame) a large cluttered code base.

The video shown is from Agile2014.

Additional Resources

Add to Bookmarks Remove Bookmark
Add to Bookmarks Remove from Bookmarks
Add to Bookmarks Remove from Bookmarks

Speaker(s) may be willing to present this session at local group meetings and other events.

Agile2014, Agile2017
Slides, Video
Practicing

More Agile Event Session Videos

Strategic Domain-Driven Design
If you’re a software developer or architect who wants to play a more influential role in ensuring your software systems are optimised to support business goals, then you need to learn about the benefits and techniques of strategic domain-driven desig…
TDD – It’s About More Than Just the Tests
Test driven development is all the rage. But why do people choose to write their code in a test driven fashion? It's so their code will have tests, right? Ending up with tested code is a nice benefit of test driven development (TDD), but it's not the…
Strategic Domain-Driven Design
If you’re a software developer or architect who wants to play a more influential role in ensuring your software systems are optimised to support business goals, then you need to learn about the benefits and techniques of strategic domain-driven desig…

Have a comment? Join the conversation

Discover the many benefits of membership

Your membership enables Agile Alliance to offer a wealth of first-rate resources, present renowned international events, support global community groups, and more — all geared toward helping Agile practitioners reach their full potential and deliver innovative, Agile solutions.

Not yet a member? Sign up now