Do you need the help of a trusted adviser? We can work together for much less than the cost of an on-site visit. You can start getting the advice you need right now for less than the cost of the flight to visit you.

Start the World's Best Introduction to TDD... free!

Agile Design: Beyond the Basics

You’ve learned the basics of test-driven development. You’ve practised it for a few months. You’ve run into a few problems and figured out how to overcome them. You’re ready to take the next step in your evolution as a designer. This course is for you.

In this course you’ll practise test-driven development as a technique for learning to design well. If you’ve been writing tests first primarily as a means of reducing defects, then this course will help you build on that skill, helping you build systems that do not want to be completely rewritten every two years.


This is a hands-on programming course. You will spend at least 50% of your time writing code. We will use a simple kanban system to plan the course: I will provide a starting set of topics and you will decide which ones we do. In addition to practising evolutionary software design, we will practise group decision-making.

I propose these topics

We will not have time to cover all these topics in great depth, but we will certainly have enough time to introduce them all and dive more deeply into the areas that interest the group.

Before you arrive…

You will need a laptop with a development environment ready to work. We will use git for version control, for which you can find installation instructions here.