<<< Previous speaker next speaker >>>

Author BDD Dan North, ThoughtWorks

Author BDD Dan  North Dan is a principal consultant with ThoughtWorks, where he writes software and coaches teams in agile and lean methods. He believes in putting people first and writing simple, pragmatic software. He believes that most problems that teams face are about communication, and all the others are too. This is why he puts so much emphasis on "getting the words right", and why he is so passionate about behaviour-driven development, communication and how people learn. He has been working in the IT industry since he graduated in 1991, and he occasionally blogs at dannorth.net

Presentation: "Pimp My Architecture"

Time: Friday 16:15 - 17:00

Location: To be announced

Abstract:

I didn't ask for this mess - it was here when I moved in. You can see where the previous tenants have botched one job after another. Amateurs every one of them! The place isn't even structurally sound, and you can see the layers of old wallpaper where they have "decorated". Three of the rooms have almost the same stuff in them and there's one door that doesn't even lead anywhere. The services are coupled to the clients, the database schema has leaked out and left a nasty stain all over the UI, and the noise and smell from the deployment process is just unbearable.

The trouble is, my landlord is (understandably) reluctant to let me burn it all down and start over. It's too risky, too expensive, and besides there are lots of other people living here and we can't move them all out during the renovations.

So, join me as I try to pimp my architecture within all these constraints - whilst trying to keep the noise down and not disturb the neighbours. It can't break any downstream dependencies, and we don't want any down time or regression defects when you go into production.

Training: "Behaviour-driven development: writing software that matters"

Time: Tuesday 09:00 - 12:00

Location: To be announced

Abstract:

Behavior-driven development (BDD) is an evolution of the ideas behind agile software delivery. With its roots in test-driven development, domain-driven design, and automated acceptance testing, BDD focuses on the ways an application is expected to work - its behaviour. By constantly reflecting on the varied points of view of different stakeholders, BDD helps ensure that product owners and the development team are in sync on what is really needed and what to work on next.

In this highly-interactive session, Dan North introduces the principles behind BDD and describes how it works in practice. He provides an overview of the methodology of BDD: understanding your domain and who your stakeholders are, identifying and exploring requirements, automating acceptance criteria, and delivering working and tested software. Dan then looks at the nature of change and describes how to implement BDD in different contexts, including applying it to an in-flight project, managing distributed or large-scale development, and working with legacy systems. Dan encourages both experienced and novice agile managers and practitioners to join this session and bring with them their current challenges—and war stories.

Training: "Test Driven Development for Java"

Time: Wednesday 09:00 - 17:00

Location: To be announced

Abstract:

This tutorial demonstrates the development of a small system using test-driven development and supporting technologies. The system will comprise a handful of Java classes that exemplify typical components found in enterprise applications, including domain objects, a service layer, and gateways.

The tutorial presents two complementary approaches to TDD: state-based testing and interaction-based testing. Both approaches will be discussed in depth during the development of the system, and benefits of each approach will be highlighted and contrasted. The tutorial also covers common trade-offs and edge case, e.g. how to deal with testing private methods and when not to use dynamic mocks but hand-crafted stub objects. The implementation will use modern technologies such as JUnit 4, Hamcrest, and Mockito.

Attendees will gain an understanding of how proper use of test-driven development fosters good design; through decoupling and interface discovery for example. Attendees will also gather a nice catalogue of the most commonly used patterns used in conjunction with test-driven development.