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.
Zach Holman shares insights on creating a happy experience fueling developers’ creativity, being inspired by how things are done at GitHub.
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.
Ryan Slobojan discusses how to perform issue tracking, code review, commits and builds in an automated manner by integrating Git, Gerrit, Hudson and Mylyn.
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.
Ryan Slobojan presents Code2Cloud used to automatically set up a number of tools useful for development and deployment: Hudson, Git, task repository, wiki, Cloud Foundry Deployment Services and Maven.
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.
Scott Chacon explains the internal mechanisms used by Git to do version control based on three trees –head, index, work–, and some of its commands, especially ‘reset’.
Greg Young discusses how to use events to store data, and how testing, versioning and performance are impacted by an event-centered model.