Each and every time, the situation is the same: a big, messy code-base, few (if any) tests and many production issues. It’s no accident that, when he joined what would be the first XP team, the first thing Kent Beck said was: “Let’s scrap it!”
Even with a world class team, these problems can be almost insurmountable. And we don’t usually start out with world class teams. Learning all the XP practices is hard enough without a Big Ball (of Mud) and Chain holding you back.
So maybe we should rebuild. But the Agile way: incrementally, iteratively, and with close involvement from the business.
Using examples from practice, I’ll show that:
We can set up a clear, loosely coupled architecture around the existing system, so we can replace parts while its running
We are then free to use all our modern practices for the new parts, and start Continuous Delivery from the first sprint
We can closely involve the business to surface the actually needed functionality, and build up Living – Documentation in the process
We can get even an inexperienced team using and accepting practices such as TDD and ATDD quickly