Leaving Your Legacy
Leaving Your Legacy is a presentation about how to take a product-driven approach to dealing with legacy code. The talk explores the need for a product-driven approach (rather than a purely engineering approach) as a key strategy for dealing with legacy issues, the cost of re-engineering without a product-driven approach, the cost of keeping legacy product features you’re hesitant to remove, how to decide what to remove, some examples of ways to remove product features.
If a codebase reflects a product’s history, legacy code often represents legacy features. Those features in turn represent legacy notions about the product itself. It becomes clear that to solve the legacy code problem you have to examine if legacy features fit your evolving understanding of your product. The aim of course is to be able to delete all that legacy code, by removing legacy features, allowing you to focus engineering efforts where they’ll contribute the most to the development of the product.