Nicole Rauch

Nicole Rauch

Software Developer and Development Coach

@nicolerauch · Germany


Nicole Rauch is an independent software developer and development coach with a solid background in compiler construction and formal methods. Her focus is on Specification by Example and Domain-Driven Design as well as the restructuring of large Java legacy code applications. Nonetheless, her secret love is for functional programming. Also, she took part in conducting a number of self-organized conferences related to software craftsmanship and agile coaching, e.g. SoCraTes conference. She is one of the initiators of Softwerkskammer, the german-speaking Software Craftsmanship community.


Refactoring Legacy Code: From "Big Ball of Mud" to Domain-Driven Design

This workshop is intended to introduce the participants to a systematic and structured way of performing large restructurings and of introducing Domain-Driven Design patterns in object-oriented code.

The restructuring strategy presented in this workshop addresses a common coding pattern: Fields in objects are written from multiple locations. The effects: The value of a field at a given time is not clear, and tracking back all the methods that write the field is difficult. We call this way of coding “Push” because the code actively pushes its results into some object’s fields. The resulting code is rather fragile and tends to be buggy.

Instead, the output values can be calculated on-demand. This way, the domain logic for each value is clearly visible and very descriptive. It is encapsulated in entities and aggregates. We call this style “Pull” because the values are pulled by other parts of the code. The resulting code has proven to be readable, understandable, testable, changeable and extensible.

This workshop shows how a large restructuring can be performed in a systematic way. The code becomes object-oriented and clean, with small methods in objects communicating with each other, in one word: the code has become “domain-driven”.

In order to participate in the workshop, it is helpful to have the following codebase already installed and set up in an IDE of your choice: (and please make sure to pull again in the week before the conference to be up-to-date with short-term changes!)

Mel Conway

Inventor, Educator, Author of “Conway's Law”

Eric Evans

Author of “Domain-Driven Design”

Rebecca Wirfs-Brock

Responsibility-Driven Design

Udi Dahan

Founder of NServiceBus

Prof. David West

Author of “Object Thinking”

Jimmy Nilsson

Author of “Applying DDD & Patterns”

Weronika Łabaj


Debasish Ghosh

Functional and Algebraic Domain Modeling

Nick Tune

Co-author of “Patterns, Principles and Practices of DDD”

Greg Young

Creator of CQRS

Alberto Brandolini

Inventor of “EventStorming”

Felienne Hermans

Author of "Grokking Computational Logic"

Andra Sonea

Solutions Architect, Financial Services

Ken Power

Complexity Navigator

Jérémie Chassaing

Software Gardener

Scott Wlaschin

Creator of

Avraham Poupko

Technical leader

Edwin van Wijk

Software Architect

Romeu Moura

Reasoned Schemer

Marijn Huizendveld

Nerd in a suit

Stijn Volders


Robert Smallshire

Modeller of domains, systems and processes

Mathias Verraes

Student of Systems

Michel Grootjans


Yves Lorphelin

Loves Chaos & Failures

Arnaud Bailly

Event Sourcing, Functionally

Paul Rayner

Leading DDD and BDD practitioner

Nicole Rauch

Software Developer and Development Coach

Thomas Ploch

Infinite State Machine

Cyrille Martraire

Deliberate Designer

Thomas Coopman


Yves Reynhout

The Journeylist

Oana Juncu

Agile Business DJ

Allard Buijze

Pragmatic modeller, creator of AxonFramework

Vaughn Vernon

Author, consultant, trainer


Contact us at for sponsor opportunities.