Growing software from examples

Seb Rose

Workshop: 90 minutes

Summary

There are a wealth of methods that use specifications, examples and tests to drive out the design and implementation of software systems: TDD, ATDD, BDD, SbE and more. Beyond a common feeling that the use of the T-word (test) is unfortunate (because it serves to distort the intent and distract the focus of the practitioner) there is little agreement. A further impediment, from a development perspective, has been the partitioning of the techniques into business-facing (ATDD, BDD, SbE) and technical (TDD). All methods that make use of executable examples require the participation of developers and share a common subset of pitfalls and gotchas.

This session will demonstrate how we can use executable examples to productively grow software. We will examine simple, yet effective, techniques that should be used irrespective of the layer at which you are working, while highlighting concerns that are specific to the business and technical layers. We will emphasise that the techniques are frequently common to all the methods and point out the occasional exception. Tooling will only be discussed to the extent that it empowers a particular technique.

In conclusion, we will make a case for a more inclusive nomenclature that emphasizes the shared underpinnings of all example-based techniques.

Short Bio

Seb Rose is an independent software developer, trainer and coach based in the UK. He specialises in working with teams adopting and refining their agile practices, with a particular focus on delivering software through the use of examples. He first worked as a programmer in 1980 writing applications in compiled BASIC on an Apple II. He has worked with many mainstream technologies since then, for many well- known companies, such as Amazon, IBM, NCR, HBOS, Standard Life and Aegon. He is a regular conference speaker as well as a contributing author to O’Reilly’s “97 Things Every Programmer Should Know”