Software Practice Advancement Conference

SPA Conference session: Exploring Emergent Design with TDD

One-line description:A coding dojo enabling participants to explore how TDD can help software designs emerge.
Session format: Workshop [read about the different session types]
Abstract:One of the benefits often claimed of the TDD process is how it allows the design of the system to 'emerge'. But what does that mean? Is simply following red/green/refactor enough to ensure a good design? What it a good design? Are there practices/guidelines we can employ to help this process achieve robust code that is easy to extend?
We will explore how breaking down a feature into small slices of functionality and the key TDD practice of refactoring are vital to emergent design. We will look at the importance of listening to your tests (and what 'listening’ to your tests actually means), the importance of seeing your tests fail and how we should all pay more attention to the failure messages generated when they do. The session will include a coding challenge with the aim of exploring and practising emergent design.
Audience background:Developers with some experience of TDD.
Benefits of participating:To gain greater understanding of how to get the most out of using TDD to drive design.
Materials provided:A coding problem to solve with emergent design.
Process:A short presentation, some audience participation to gauge what challenges emergent design presents and ideas of how to overcome them.
Practical exercise to try out the techniques.
Reflection of what we learnt, what went well, what we could/should explore further.
Detailed timetable:00:00 – 00:45 Introduction to emergent design. What is emergent design? What makes a good design and how would we recognise it?
00:45 – 00:55 Gather list of what participants hope to learn/improve
00:55 - 01:10 Introduce problem and pair up
01:10 – 02:10 Code time, practicing emergent design
02:10 – 02:30 Reflection. What did we learn? Did we learn/improve what we hoped we did. A chance to show off any code pairs are particularly proud of.
Outputs:Blog post, future talk describing the findings.
1. Leon Hewitt
2. Neil Kidd