How are we going to add this new feature when the code is a mess?
We can’t change this file-- it’s too risky!
How do I test this class when it depends on X, Y, and Z?
There is not enough time to make the changes you want!
What does this code even do!?
I feel overwhelmed and it’s never going to get any better.
Android isn’t new anymore. Most applications are not greenfield projects. Many of us find ourselves in the position of working with code we did not author and which we don’t fully understand.
In the spirit of Michael Feathers' classic book, Working Effectively with Legacy Code, this talk explores the ways we can navigate, maintain, and evolve a legacy codebase. We will cover topics like testing, refactoring, architecture, and dependency breaking techniques with examples based on the speaker’s own experience over the past 9+ years as an Android engineer.