When your codebase has 13 million lines of code, is written in C++/XUL, and dates back to 1998, it may seem like an impossible task to write a modern web app using technologies like React, and tools like Github, while still managing a graceful integration with the existing codebase. Developing new functionality in a legacy codebase which wasn’t originally built for the modern web can introduce a bunch of new and exciting challenges. This talk will categorize the problems of when old code meets new code in four ways: testing challenges, source control and issue tracking challenges, human and cultural challenges, and technical challenges.
At Mozilla, I’m working on a major feature which was developed independently from the rest of the Firefox codebase, and has since been tightly integrated into the rest of the source tree. Along the way we have faced challenges in each of the categories. I will identify some of the pitfalls that developers can run into when trying to merge old and new codebases, and will provide practical advice in avoiding these problems down the road.