SPA Conference session: Growing software from examples

One-line description:Examining differences and commonalities of popular example-based development methodologies to attempt a synthesis of a unifying nomenclature.
Session format: Tutorial/workshop [read about the different session types]
Abstract: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 limited 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 the commonalities between the methods and show how they can work together productively to 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. 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 emphasises the shared underpinnings of all example-based techniques.
Audience background:Anyone involved in software development. Some basic knowledge of agile development practices are useful, but not essential.
Benefits of participating:After this session participants will be able to:
- explain how example driven techniques improve many facets of software development
- describe how examples facilitate collaborative software development
- identify different popular methodologies that share a common underpinning
- demonstrate simple techniques to effectively utilise these methodologies
- discuss these techniques using an inclusive nomenclature
Materials provided:Some slides. Index cards.
Process:There will be a lot of interaction throughout, but there will be some slide-ware based exposition.
A couple of games will be be used to break up the session and to re-iterate the work done in the preceding sections.
Detailed timetable:- The different aspirations and applications of the various example-based techniques in use at present will be discussed with the attendees. (5 mins)
- This will be followed by a short presentation of the motivation, history and evolution of the techniques (10 mins)
- We will play a "Deal or no deal" game to explore the motivation behind example-based development. (5 mins)
- This leads into a discussion of the aspects that unite and differentiate example-based methods at different layers within the development stack. (10 mins)
- Informed by the results of a survey conducted in Q1 2012, we will examine some of the key issues that regularly cause problems when utilising example-based techniques. Each example will be explained, and a discussion of solutions will follow. Key insights will be distilled before moving on to the next issue. (30 minutes)
- We will play the “Name this approach” game, using simplified examples. This builds on the previous discussion. (5 minutes)
- A unified nomenclature will be proposed to allow practitioners of all example-based techniques to communicate more effectively. Discussion will follow (15 mins)
- Wrap-up, summary and questions (10 mins)
Outputs:Blog post & web page.

Summary. Distilled insights of participants.
History:Not yet presented. Accepted at Scandinavian Dev Conf 2013. Proposed XP 2013
1. Seb Rose
Claysnow Limited
2. 3.