Amr Noaman Abdel-Hamid: Sustainable Legacy Code Refactoring: A Systematic and Stepwise Approach 2017-01-28T10:17:33+00:00

Track: Technical

Duration: 90 minutes

Description: Teams transitioning to Agile usually suffer from issues due to large inherited technical debt. In Egypt, we have suffered a lot with many companies moving to Agile as part of the GoAgile program, an agile adoption initiative sponsored by the Egyptian government for expanding agile practices and lean thinking. We have faced problems like moving towards shorter iterations with shorter 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.

To tackle these challenges, we have crafted a roadmap of 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) Build quality in the code by wrapping components with automated tests. The intent was not to refactor, but to qualify the code to be refactor-able!

In this session, I will present the challenges that we met while applying this model on two products (300 kloc and 1 million loc). I will explain which steps worked well and which did not, and when it was necessary to step over some of them and why. I will explain how we tried to answer the famous question by managers: “When are we going to finish?”, I will explain some visual indicators used to relate the effort spent with the value achieved. I will also present some insights about refactoring anti-patterns that we found out to be the real impediments of refactoring. Finally, I will present interesting facts about how managers are involved in such technical effort, and how developers sustained such a lengthy and hectic roadmap of refactorings.

This session will be delivered at Agile2013 at Nashville, Tenessee.

Bio of Amr Noaman Abdel-Hamid:
amr_noaman
Amr is an agile coach, trainer and practitioner whose life vision is to spread lean thinking in software organizations in Egypt and the Middle East. Amr is a Senior Consultant at the Software Engineering Competence Center (SECC) of Egypt. His primary role is helping teams and organizations do successful Agile transformation and develop software at their maximum potential. Amr is a Certified Scrum Professional (CSP), a Sun-Certified Enterprise Architect (SCEA), and Six Sigma black belt certified for IT and Software Engineering .

Amr is the founder of the Egypt Lean & Agile Network and is the co-author of the ‘Process Increments’ method, an agile method for software process improvement. Amr is one of the drivers of Egypt’s GoAgile program, an agile adoption initiative sponsored by the Egyptian government for expanding agile practices and lean thinking in software houses in Egypt. Amr has trained 400+ practitioners, coached many teams from a wide range of private and public organizations in Egypt and the Middle East.

Currently, Amr is researching different topics, some of which are how legacy applications evolve and how to harness this evolution towards a better maintainability; and how to appraise agile teams openly and fairly. Amr’s blog: http://amr-noaman.blogspot.com/ and could be reached at amr.noaman@gmail.com.

Leave A Comment