Legacy Code Retreat with test data builders and the Mikado method

Friday morning 10:00 - 12:00 CET (UTC+1)


Philippe Bourgau, Ahmad Atwi, Christophe Cadilhac, Damien Menanteau and Patrice Dalesme


“Remember to add tests before you fix any bugs!” That’s very nice in theory, but a lot more tricky in practice.

We know we need to add tests, but it’s easier said than done. In legacy codebases, just setting up the objects for the test is most often an unjustifiable nightmarish 2 weeks of work. Mocks are a common workaround, but mocking legacy codebases usually makes them more difficult to change, not less!

In this hands-on mob programming code retreat, you will combine the Mikado Method with test data builders to build a baby-step plan to add your first test to an open-source legacy codebase. We’ll draw a graph of nested test data builders so that we can instantiate test data, without mocks.

In more details:

  • Test Data Builders simplify and factorize test data initialization
  • The Mikado Method is a technique to split a large refactoring in a graph of baby-steps
  • These baby steps remain deployable at any time and don’t block other development
  • When we combine these 2 techniques together, we get an incremental plan to create test data builders
  • At every step, test data is easier to initialize, the overall testability improves, helping everyone to add more tests
  • Driven by usage, critical code parts naturally get testable first
  • By making reuse and extend the easiest option, these techniques snowball
  • Relying on a visual Mikado graph, these techniques are collaborative by design

During the session, every mob will choose to experiment with test data builders, the Mikado Method, or both, thanks to self-service guides. By the end, we will all compare the different techniques to identify the best ways to apply them.

After this session, you will be able to inject these contagious testing techniques into your team!

Practical information

Clone the repo at https://github.com/murex/mikado-testbuilders-kata

Make sure you can run the App in one of the provided languages: C++, C#, or Java.

We will be extensively using Miro. Please make sure you can join the board: https://miro.com/app/board/o9J_lWZCRcE=/

About Philippe Bourgau

Continuous Refactoring Coach Twitter LinkedIn Blog Company Website Detailed Bio

Life is too short for boring stuff! I help software engineers to reach a productive and sustainable pace through continuous refactoring of their code and organization.

Speaker Track:

About Ahmad Atwi

Software Developer & Technical Coach Twitter LinkedIn Blog Company Website

A software developer at Murex Systems, blogger, speaker and squash player.

Passionate about software engineering and technology. Spend most of my free time reading books and articles or writing code for fun and exploration.

About Christophe Cadilhac

Software Developer & Technical Coach Twitter Company Website

Christophe is software developer since 2012. After 5 years of consulting, he started working as a freelance.

He’s hooked on TDD ever since he discovered this technique. This is what brought him to eXtreme Programming in the first place.

Passionate, relaxed and always happy to share, he codes and/or coaches on a daily basis.

About Damien Menanteau

Agile Technical Coach Twitter LinkedIn

Agile Technical Coach

About Patrice Dalesme

Murex developer and technical coach LinkedIn Company Website

Working at Murex for 18 years.