Alex Bolboacă – Exploring design alternatives using TDD
Design is the process of creating artifacts that solve problems. In the case of software, design is the creation of code entities that implement a feature.
After trying up-front design for a while, we realized that we can take advantage of the fundamental property of code: we can change it very fast. We realized we can do incremental design, and the most popular way to do it is TDD.
Ask anyone who does design (graphical, building, industrial etc) and they will tell you it involves exploring alternative solutions. For some reason, I’ve rarely heard about exploring alternatives when we program.
Those who do explore do it informally or with design sketches. TDD is however an interesting technique to use for exploration.
In this talk I will show a few patterns of design exploration using TDD. I’ve discovered them with the teams I helped and during community events, mostly during the 30+ code retreats I’ve facilitated or attended.
Basics of Design
Exploration by varying the number of entities you start with. From TDD with upfront design to TDD as if you meant it.
Exploration by constraints.
Exploration by paradigm (functional, object oriented).
What you will learn?
You will learn a few techniques that allow you to use TDD as an exploration technique for design alternatives.
If you have never applied TDD before, it will be harder to understand the ideas presented in the talk.
Read Design: Creation of Artifacts in Society by Karl Ulrich
Practice and share your experience in communities
Do the attendees need a laptop?