Evolutionary Design: Beyond the Basics

You’ve practised evolutionary design for a few months (or more) on a professional project and you feel stuck or you’re facing complex tradeoff decisions that you’re not sure how to make. If this sounds like you, then you’re ready for this course.

This is not an introduction to test-driven development (TDD), but rather a chance to overcome difficulties associated with becoming comfortable guiding designs to evolve. In this course, we discuss the more complex tradeoff decisions involved in making evolutionary design a core, everyday programming practice. You’ll learn how to start to make the design flex, how to balance production with protecting your production capacity, and how to expand your view from the elements of simple design to higher-level principles of modularity.

If you need an introduction to TDD and evolutionary design, I offer the world’s best.


Any programmer who has practised TDD in a professional environment for at least a few months.

Key Topics



Participants need the following to attend this course.

Remote Training Preparation

Please do the following at least one day before the course is scheduled to start.

Delivery Options

Live/Remote Private Course

The standard course runs as 6 sessions of 1/2 day each scheduled within a 2-week period. The course is suitable for groups up to 12 people. Larger groups should run the course multiple times.

Add team working sessions to your course in order to better support teams working together during the course. During the 1/2-day team working sessions, we practise the techniques of the course using ensemble/mob programming. In these sessions, teams have the opportunity to rescue their legacy code with my guidance and support.

It is also recommended to add follow-up working sessions to be scheduled 1 month, 3 months, and 6-12 months after the course ends, as a way to support the group as they apply what they’ve learned to their daily work.

Start the booking process for your live/remote course.

Join a Public Course

Browse the upcoming course calendar to see which public courses are currently available. You’ll be able to subscribe there to be notified when new courses are scheduled.