A few months ago I had the opportunity to go to the Agile Testing & BDD eXchange 2016 conference (https://skillsmatter.com/conferences/7428-agile-testing-and-bdd-exchange-2016). I’ve finally had the chance to write up the notes I took (if any of the speakers are reading this and feel that I’m ‘stealing their lunch’ or infringing on their rights, please let me know and I’ll remove the offending content.)
The notes below reflect my own jottings down and interpretations, and not necessarily the views of the speakers.
- Good tests
- Inspire Confidence -no third party service
- Fast -milliseconds or second
- Lowcost -easy to write and maintain: decoupled architecture, don’t try to test a UI.
- Use Decoupled architecture, direct injection and ‘contracts’ so that you have a load of smaller, cheap unit tests, and a few deeper, full stack ones.
- Testing doesn’t find defects, testing prevents them
User Stories, OOPSI Method (Jenny Martin)
- User stories are deceptive, they look too simple
- There is no ‘scope creep’; the scope was already there, just not known about.
- JIRA is not a documentation system
- Focus on concrete examples and outcomes, not stories
- Use User Story Mapping to chunk work into Opening, Mid and End games (stages). Get an MVP for your outcomes as soon as possible.
- Use the OOPSI system to focus on the following, in this order:
- Outcomes -what outcomes do we want (in business terms)
- Outputs -what outputs are needed
- Processes -what processes generated those outputs
- Scenarios -what scenarios trigger those processed
- Inputs -what input do those scenarios need?
- Up front analysis
- Worrying about the format of the user story, its not important
- Writing stories in JIRA.
- Checking outcome
- Knowing what level we’re at
Problems With Agile (Martine Devos)
- What is bad:
- Everyone wants to do Agile!
- It’s all courses, certification
- Example quotes: “We are uncovering easier ways of getting certificates on how to help others get certificates”
- Software is very tribal; belonging to the agile tribe is note delivering good software!
- Everything is ‘scalable’, this is bad
- Courses are being favoured over experience
- We’re still having fixed scope, time, cost.
- Calling Continuous Integration ‘DevOps’
- Why is this happening:
- When we find a pattern that works, we feel good and try to reproduce this pattern everywhere.
- Confirmation bias -we only notice when it works, not when it doesn’t.
- Apophany -false epiphany.
- People want predictability: they assume that predictability exists.
- Organizational structure has a big say.
- Bureaucracy doesn’t value knowledge or action; Agile thrives in an ‘Adhocracy’.
|Driven By||Rules||Mutual Adjustment||Opportunity|
|Decides By||Hierarchy||Logical Argument||Experimentation|
|Strives towards||Extrinsic Rewards||Personal Mastery||Achievement|
- Well formed outcomes are essential.
- Scale Agile where failure is survivable. Experiment.
- Do safe to fail probing of new agile practices.
- Cynefin framework: Four domains of complexity plus a central nexus, Disorder:
- Obvious: Self apparent, simple
- Complicated: Less simple, but mechanical, ordered
- Complex: cause and effect only knowable in retrospect
- Chaotic: no order, generally adverse, transient, need to act quickly.
- Disorder: when you don’t know which domain you are in
Cosmina Bradu: A BDD Test Case
- Scenario Overwhelm
- Difficulty in sharing
- Shared scenarios do not equal shared understanding
- It was all about HOW, not WHAT and WHY
- Confirm as soon as possible
- Itereative discover/deliver/confirm cycle, with confirmation (based on evidence) at all stages
- Test shared understanding.