In this podcast recorded at the Agile 2018 conference Shane Hastie, Lead Editor for Culture & Methods spoke to Seb Rose, a dispassionate developer, and one of the principals of Cucumber Limited about his work at Cucumber, the Cyber-dojo charity, designing a robust certification program and involving testers in code reviews.
Key Takeaways
- There is a lot of confusion around what Behaviour Driven Development (BDD) is and isn’t
- BDD is made up of three distinct practices: Discovery, Formulation and Automation – Cucumber is only about the Automation practice
- Provide concrete examples to communicate business needs using BDD to ensure that business rules are defined unambiguously
- Cyber-dojo is a place for people to practice their coding skills on many platforms
- Ideas around designing a robust certification scheme
- The value of having testers involved in code reviews goes far beyond reading the code
Subscribe on:
Show Notes
- 00:25 Introductions
- 00:43 Passion can make us less rational. We want people to be diligent, considerate and involved but that doesn’t mean passionate
- 02:05 Describing an ideal environment for a Cucumber implementation
- 02:43 The impact of using Cucumber was reducing the testing cycle from about a week and a half to about an hour
- 03:14 The power of describing technical business rules in a business readable language
- 04:05 Seb running the training arm of Cumber Limited
- 04:40 The benefits of using Cucumber as a collaboration tool
- 05:04 There is a lot of confusion about what Behaviour Driven Development (BDD) is and what it isn’t
- 05:31 BDD is made up of three distinct practices: Discovery, Formulation and Automation
- 05:40 Cucumber is only useful in the Automation practice, but you must start with Discovery
- 05:52 Discovery is all about communication between the business and the delivery team
- 06:20 Using concrete examples to communicate business needs using BDD to ensure that business rules are defined unambiguously
- 06:43 Requirements are rife with ambiguities and potential for misunderstanding
- 07:03 Use tools such as Fit, Fitness and Cucumber take those examples and convert them into a format that is readable by non-technical members of a team
- 07:22 In the Cucumber ecosystem this formulation is done in the Gherkin “Given-When-Then” format
- 07:36 Concrete, unambiguous examples documented in business language so business people can give you feedback on them
- 07:47 The third phase is Automation where the examples are wired up to the system you are building
- 08:02 The recommended approach is to automate the examples before implementing any code – this results in behaviour DRIVEN development
- 08:59 BDD does not replace TDD – BDD supplements TDD
- 09:24 Introducing the Cyber-dojo organisation and how it works – open source environments to practice coding techniques in multiple languages that is free to use for individuals
- 10:45 100% of the licence fees paid by companies goes to purchasing Raspberry Pie computers for schools in developing countries
- 11:14 Seb’s talk on Certification at the conference
- 12:05 There is a lot of scepticism about certification in the agile community
- 12:20 Researching certification in other industries to see how they are applied – what are the properties, what do they guarantee, how do they help and what value do they offer
- 13:25 Designing the Cucumber Approved Trainer (CAT) scheme based on the research
- 13:40 The CAT scheme is quite onerous and explores many aspects of attitude, knowledge and competency
- 14:15 Describing the “See it, do it, nail it” approach to certification used in CAT
- 15:30 Another talk which encouraged the inclusion of testers in code reviews
- 15:40 There is a proliferation of organisations where the cross-functional team is in name only, with testers excluded from the teams
- 16:11 There are lots of disfunctions in many organisations that are adopting agile
- 17:21 The value of testers being involved in code reviews is not to review the code but to review the thinking behind the code and that the code is readable
- 17:47 This includes having method and variable names that echo concepts from the domain
- 18:26 The benefits that flow from using domain language in the naming of variables, methods etc
Mentioned: