Our clients don't know what they need.
This happens because no one can foresee the future. Requirements will evolve and change rapidly over the lifecycle of the project. That's why we need to constantly refine systems. We can keep building and discarding prototypes, but it's extremely costly. Often we can't afford to rewrite everything from scratch only because some new domain insights were discovered.
This eventually leads to a mismatched model. Is there another way?
We can focus on domain only and refine our model through examples, until we find the right conceptual contours ((http://...)
). Each such iteration of the model is a kind of experiment challenging the upfront decisions.
During this presentation I'm going to show how you can use example mapping combined with business-oriented TDD to be able to run rapid experiments directly on the domain model, without a need to rewrite the system again.