#dddx Cyrille Martraire – When DDD meets Documentation

So Eric’s talk had got me thinking about Documenting our system using Context Maps. With the new acquisition by IIX I’m working with their technical writer at the moment to pass on the domain knowledge the team and I have built up over the last two years. So this is very topical for me at the moment and clearly at the forefront of my mind.

image5

Cyrille is an amazing presenter. Full of energy, entertaining and brilliant content.

He started his talk by covering something I was desperately looking for when I started at Allegro. How to start a greenfield project board. Although if you’re starting at a new company, got a new starter, wanting to inject some new life into a project that’s starting to bore you or become too comfortable, these are amazing techniques!

Trust
Cyrille suggested that management asking for documentation was generally a symptom of a lack of trust.

You can successfully transfer knowledge by having conversations, pair or even mob programming.

Create an investigation / obsession wall
Like the police on the telly have. You can put all your inspiration or clues on this wall. Things like competitors, websites, photos of people int he company, documents they use, maps and any artifacts really.

But how do you go about gathering these?image6

Cyrille briefly touched on Event Storming Workshops as another cool way to learn more about the domain (go have a read, proper fascinating shit).

Shadow a user or Live their life. I really want to go and try this in the office. I think that James and I could get so much knowledge from doing a shift with Service Desk and improving the internal tools we create for them at Allegro. Learn their language, their context, their problems. Same with sales and the network Engineers!

The rest of Cyrille’s talk focussed on how to create living documentation from your code! Using BDD, cucumber tests, diagrammr.com to create plain text diagrams. Starting to name your tests as Domain and Infra rather than Test. Use comments in your code to embed learning like links to particular patterns or concepts. Add a bounded context to your namespace, and tag your code for a glossary of terms.

Of course, Cyrille covered much more than this in an entertaining way. Go watch his talk and BUY HIS BOOK!