Johan Herland explains how Git does branching and merging in a distributed (and partially disconnected) environment, how to rewrite a commit history, and why staging is useful.
Ian Goodsell discusses the challenges encountered with tool versioning and new approaches needed to support continuous delivery.
Mike Long describes techniques for managing large legacy restoration projects, using a roadmap, prioritizing technical debt remediation tasks and motivating devs and stakeholders during the process.
Sandro Mancuso runs a hands-on demo adding tests to a Java legacy code then refactoring it.
John Davies walks through a reference implementation of a in-memory database meant to combine dozens of different legacy databases developed by banks over time.
Ignaz Wanders discusses service versioning, compatibility issues, and how to implement the governing process of service versioning.
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.
Jesse Newland discusses how GitHub pages were re-written with Erlang, Riak and Webmachine in order to improve their performance.
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.