Robert Reppel discusses applying DDD and SOLID techniques in order to improve legacy code, exemplifying with real code.
Håkan Råberg and Jon Pither on introducing Clojure to an investment bank team having a large Java code, dealing with cultural differences, the lessons learned, and ways of dealing with legacy code.
Eric Evans shares 4 strategies for dealing with messy legacy systems: Bubble Context, ACL Synchronization, Exposing Legacy Assets, and Domain Events Channel.
Brian Foote shares 17 tips that help dealing with muddy legacy code: Testing, Divide & Conquer, Neoteny, Gentrification, Demolition, Quarantine, Refactoring, Craft, etc.
Eric Jan Malotaux shares his experience converting a legacy C++ application to Java, the strategy used, the lessons learned along the way, and the unsolved issues remaining.
Eoin Woods shares some of his architectural experience along with principles and techniques useful when working with legacy systems.
Stuart Charlton presents Canadian Pacific’s strategy for a modern IT: adopting hybrid cloud, introducing Agile/Lean development, automating everything, distributed data systems, RESTful integration.
Ahmed Syed explains how to use testing and defect management in an Agile project to ensure product quality, addressing design quality, legacy systems, and how build management affects quality.
Nat Pryce presents the reengineering effort made to transform a legacy system through incremental improvement, the development process implemented, the results and some takeaway lessons learned.
Josh Graham addresses 10 myths related to working on legacy software, attempting to prove that one can make good use of legacy code without having to rewrite the entire thing.
Amit Uttam and Derek Longmuir cover what legacy systems are, typical approaches to dealing with legacy systems, replacement strategies/techniques, migration plans, and continually evolving a system.