Few forces limit your ability to deliver the way that legacy code does. Even if you do everything else well -- understand your market, design your product, communicate with your colleagues, test-drive every feature -- if you have to work with legacy code, then you will eventually have to pay back some random amount of time by both working around some parts of it and rescuing others. Even the decision when to work around it and when to rescue it will distract you from delivering new features. You need to practise working with legacy code, and what better way to practise than with a full day of coding and coaching with one of the most experienced developers in the world.
You will focus on the craft of software development by working on a very simple exercise with a wide variety of people and in a wide variety of ways. You practise test-driven development, focus on the Four Elements of Simple Design, then work with an ever-changing set of challenge constraints.
This session runs a little differently from what you might be used to. You work in pairs, you work in 45-minute sessions, and you (mostly) throw away your work when you're done, so you get to focus on the techniques that will help you most. These techniques help you fix the problems that usually stand between you and practising test-driven development in and around legacy code. We give you a code base to start from (in your choice from 14 programming languages) and we guide you with the techniques that have helped us most in our work. Most importantly, you spend most of your time practising and talking about what you've learned. Hundreds of programmers have told us that they benefitted from this session, and afterwards you'll never treat legacy code the same way again.
JB Rainsberger is a consultant, coach, mentor and author, helping both teams and individual programmers learn high-productivity techniques for delivering software. He is a long term advocate of XP and author of JUnit Recipes
Synopsis:
Few forces limit your ability to deliver the way that legacy code does. Even if you do everything else well -- understand your market, design your product, communicate with your colleagues, test-drive every feature -- if you have to work with legacy code, then you will eventually have to pay back some random amount of time by both working around some parts of it and rescuing others. Even the decision when to work around it and when to rescue it will distract you from delivering new features. You need to practise working with legacy code, and what better way to practise than with a full day of coding and coaching with one of the most experienced developers in the world.