Legacy systems are like wisdom teeth. You know you’ll need to address the problem at some point, but unless it’s bothering you all day and keeping you awake all night, sometimes we just keep delaying it. When setting priorities, deprecation efforts often end up not making the cut.
Only more pain comes once you start working on actual deprecation: having to understand obscure and untested code, reverse-engineering the contract, weeks of testing and debugging, ensuring minimal disruption when actually flipping the switch.
This is a story of a 2-year-long deprecation of a legacy system that used to support several crucial parts in Netflix’s signup and account management space. Come and learn:
- The 3 most important skills for deprecating legacy systems: inquisitiveness, proactiveness and simplification mindset
- A few technical approaches we took which proved extremely useful, eg. retrofitting end-to-end tests or using A/B experiments - and a few which we wish we didn’t take
- How Netflix culture of freedom and responsibility enabled the project to move forward, despite the usual prioritization caveats - and how to apply this in your team
- What principles (both technical and people-oriented) we established for the new system, with the hope of giving it a longer shelf life