Sep 272011

Liz Keogh

“Liz’s half-day XP2011 tutorial on BDD was superb.
For me, the highlight of the conference.”

- Clarke Ching, XP2011 attendee

I’m Liz Keogh, a coach and trainer and best known for my work in Behaviour Driven Development.

BDD is a mini-methodology which helps teams focus on delivering software that matters. It works very well alongside other Lean and Agile methodologies like Scrum, XP and Kanban.

BDDers talk through examples of how the software is used, explore scenarios which might otherwise not be considered, question each other to find more examples, and help everyone on the team to reach a common understanding of the intended behaviour of the system and its value to the business. Each scenario they come up with can then be captured, providing documentation of the system’s behaviour, and automated to ensure that the system continues to support business capabilities and behave correctly, even while it changes.

At a lower level, BDD developers apply the same conversational and questioning techniques to their code, providing descriptions and examples of the behaviour of each element, and thinking about its responsibilities. Sometimes called “TDD done well”, BDD at this level can help teams to produce well-designed, maintainable code with readable tests that act as documentation.

At a higher level, Feature Injection – BDD in the analysis space – helps us pull requirements out of an initial vision. This can help a team to focus on their stakeholders’ goals, actively seek out feedback from appropriate stakeholders and act on that feedback, and produce working, valuable software more quickly.

The philosophies of Deliberate Discovery and Real Options, which lie behind BDD and Feature Injection, can help us identify risk, keep options open for the risks we haven’t identified, and target areas of high uncertainty in which quick discovery and learning is most beneficial.

As one of the world’s best-known BDD specialists, I offer substantial experience of coaching teams to use BDD in unusual or difficult circumstances.

New to Lean or Agile?
Looking for technical excellence?
Product manager tired of grooming your backlog?
Not enough money to fund the project?
Legacy system or project in need of rescue?
Legacy system in need of replacement?
Greenfield development?
Adopting or improving BDD?
Looking for a developer?
Looking for a speaker?

New to Lean or Agile?

It can be hard to change a team’s mindset. People who are used to working in a functional team, with large quantities of documentation as the main communication point, sometimes struggle to adopt the collaborative culture required to support iterative methodologies like Scrum, XP or Kanban. Blend BDD with other methodologies and practices, provide simple conversational templates to get people talking, play on the typical strengths of analysts, testers and developers, and help your team explore the behaviour of the system and the value it provides. Now with Deliberate Discovery to help teams have courage, share their learning and actively seek feedback!

3-day Agile, Lean & BDD course now available – or combine with coaching for ongoing support.

Looking for technical excellence?

Find out how to keep code maintainable, legible and well-designed using BDD and TDD. Adopt continuous integration and deployment techniques to ensure that everything you produce can be delivered and to make testing easier. Use skeleton architectures with Real Options to address technical risk and discover solutions quickly. Find out what social practices might help the team learn and grow together, sharing their specialities and building on their strengths. When the cost of change is low, change becomes easy!

Various courses and coaching available – or hire me as a developer and put me on your team!

Product manager tired of “grooming” your backlog?

Use Feature Injection in combination with Kanban to produce a high-level understanding of the vision and system capabilities, identify areas of risk and uncertainty, then limit the amount of lower-level analysis done but not delivered. As well as providing a clearer picture of the vision for the whole team, this allows problems to be solved creatively, with quick feedback on the feasibility of the product and a quick release of minimum viable features – plus all of Kanban’s other benefits too!

Usually a 1 or 2 week transformation per team with occasional 1-day support afterwards.

Not enough money to fund the project?

Use Feature Injection and models of differentiation to identify the minimum deliverable that will deliver value. Identify commoditised features to leverage existing expertise, open-source or off-the shelf software, while keeping your differentiator easy to change. Use BDD scenarios to slice stories finely, deliver through a Kanban system and quickly get feedback on whether the budget is enough to make a difference!

One or two days coaching.

Legacy system or project in need of rescue?

Use Feature Injection and BDD’s scenarios to explore both the existing and the intended behaviour of the system, and narrow down the scope to the smallest thing which could be valuably released. Establish desired business outcomes and stakeholder goals to provide a space for creative, alternative solutions. Explore, refactor, clarify and document the behaviour of legacy code within the safety net provided by automated scenarios and examples.

Please get in touch to discuss your particular context.

Legacy system in need of replacement?

Take an incremental approach to replacement and benefit more quickly from new system features and production feedback. Use Feature Injection to establish new, differentiating functionality and explore the minimum capabilities which the new system needs to support it, then add features incrementally until the legacy system is retired. Produce well-designed, maintainable, documented and tested code with BDD’s scenarios and examples, and help your new system avoid the fate of its predecessor!

Please get in touch to discuss your particular context.

Greenfield development?

Use Feature Injection to establish a clear vision around which the team can collaborate, then pull a high-level backlog from secondary stakeholders’ goals and the business outcomes and system capabilities which will need to be delivered to achieve them. Using the philosophies of Deliberate Discovery, identify the greatest areas of ignorance and the biggest risks. Apply the principles of Real Options to provide simple, flexible and scalable architecture. Address technical concerns early, integrate systems quickly and help your stakeholders sleep soundly.

Usually a 1 or 2 week start with occasional 1-day support afterwards.

Adopting or improving BDD?

Phrase your scenarios in terms of business and system capabilities for easy readability and maintenance and focus on value. Learn what to automate, what not to automate, and when and how to do it. Question and understand the value, scope and behaviour of your system using Feature Injection and conversational patterns. Quickly adopt those aspects of BDD which will best support your unique context, build on what you’re already doing, or tune the practices already in place.

1/2 and 1 day workshops for experienced Agile / Lean practitioners. Coaching also available – find out what a difference a day makes!

Looking for a developer?

Want a BDD expert on your team? I love to code! If you’re willing to work around occasional speaking commitments and my 4-day week, please get in touch for details of reduced rates for mixed development / coaching. Java / C# specialities.

Looking for a speaker?

I am a well-known and well-received conference speaker with extensive international experience. Please note that due to overwhelming demand, and associated financial constraints, I am giving preference to conferences which can fund my accommodation and travel.

I am also available to speak at your company event. Please get in touch to discuss rates and dates!