Modern software development welcomes changing requirements, even late in the process, but how can we write our software so that those changes don’t create a mess? Evolutionary design is the key. It’s a technique that emerges from Extreme Programming, the method that brought us test-driven development, merciless refactoring, and continuous integration.
I first encountered Extreme Programming and evolutionary design nearly 20 years ago. Although I was initially skeptical, I’ve explored its boundaries ever since. In this invited talk for the December 2019 YOW! conference series in Australia, I share what I learned through in-depth animations of real-software projects. You’ll see how designs evolve over time and you’ll learn how and when to use evolutionary design for your own projects.