The typical agile set-up involves a small, co-located team working on an agile-friendly technology stack (Java, .NET, or a modern dynamic language) with automated testing and rapid continuous deployment. Sadly not all environments have that luxury. I have recently been working with a number of teams across all kinds of complex legacy technologies in challenging business environments, figuring out how to leverage agile methods to change decades-old working and management practices.
This session describes some of the approaches we are trying, and how agreeing on a set of shared guiding principles and applying these intelligently in different contexts is enabling us to achieve a surprising degree of agility in unusual environments. Things like putting Java and COBOL programmers together, allowing anybody but the domain expert to deliver features, and taking time to make legacy technologies testable are starting to pay dividends. Focusing on the goal rather than minimising the time for each feature sometimes means stepping back and choosing to make an investment.