O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

BDD and CD - better together

134 visualizações

Publicada em

How behavior-driven development and continuous delivery support each other

Publicada em: Tecnologia
  • Seja o primeiro a comentar

BDD and CD - better together

  1. 1. @lisacrispin Lisa Crispin With content from George Dinwiddie Copyright 2020 Lisa Crispin Behavior-Driven Development & Continuous Delivery: How do they fit together? BDD CD
  2. 2. A little about me Quality Owner, specializing in observability lisa@agiletester.ca @lisacrispin With Janet Gregory New!
  3. 3. @lisacrispin What I’ll talk about: ● Ways BDD can help shorten feedback loops ● Ways CD impacts BDD ● What can your team try? Confidence
  4. 4. @lisacrispin Behavior-Driven Development (BDD) ● Structured conversations to elicit rules and examples ● Results in shared understanding across the team ● Examples become scenarios to guide development From https://cucumber.io/docs/bdd/
  5. 5. @lisacrispin Continuous Delivery / Deployment (CD) ● Deploy small changes to production frequently at a sustainable pace ● Lower risk ● Faster feedback
  6. 6. What’s in a deployment pipeline?
  7. 7. @lisacrispin It’s not really linear ● Continuous delivery is a series of feedback loops ● Planning and coding are part of it Plan, code, deliver Deploy, learn, release
  8. 8. @lisacrispin How can BDD help shorten feedback loops? Observing & Experimenting Questioning & Hypothesizing Analysis & Learning
  9. 9. @lisacrispin “Three Amigos” (or 4 or 5) meetings ● Product person, programmer, tester, + designer… ● Structured conversations (eg. example mapping) ● Purpose, business rules, examples for each story ● Groundwork for shared understanding
  10. 10. Example Mapping example Story à Rules à Examplesà Questions
  11. 11. @lisacrispin Executable tests to guide development ● Turn examples into test scenarios with expected behavior ● Business-readable specification ● Can be automated to provide regression test suites & living documentation
  12. 12. Other BDD benefits Slice features into small, consistently sized stories Explore how a capability will be used before it’s built Frequent deploy of small changes, less risk Deliver the “right thing”
  13. 13. @lisacrispin Continuous Deployment (CD) Busines s approva l Compilation/ unit testing Create deployment artifact Testing stage 1 Testing stage 2 Deployment Pipeline Developer Commit Deployed to Production Code is merged (master/trunk) Continuous Integration (CI) Continuous Delivery (CD) Continuous Delivery enhances BDD
  14. 14. @lisacrispin Principles of CD support BDD ● Build quality in ● Work in small batches ● Computers perform repetitive tasks, people solve problems ● Relentlessly pursue continuous improvement ● Everyone is responsible https://continuousdelivery.com
  15. 15. @lisacrispin Fast feedback ● From automated tests ● From production usage ● Use “learning releases” aka MVPs to get direct feedback ○ Manage access via release feature toggles, canary releases, dark launches ○ Get usage metrics, analyze errors
  16. 16. @lisacrispin CD & BDD enable the continuous DevOps loop ● Learning from production flows back to discovery process ● Refine, delete, add small changes ● Small, lower-risk new changes that add value flow continually to production https://www.quora.com/Is-DevOps- easy-to-learn
  17. 17. @lisacrispin How can your team take advantage?
  18. 18. @lisacrispin Already practicing CD, but no BDD? Try a small experiment! ● Learn more about BDD (see resources list) ● Have an amigos meeting before your next iteration planning meeting ● Discuss the goal, rules and examples for each story ● Before/during coding, write scenarios based on those to guide development
  19. 19. @lisacrispin Already doing BDD, but no CD? With your whole team: ● Make a visual map of the path to production ● Start talking about it! ● What can you automate? ● Apply the continuous delivery principles
  20. 20. @lisacrispin Build relationships • Get people in every role/discipline engaged in thinking about quality • Get to know people in and outside of your team • Ask for help, offer help • Build trust so you can learn
  21. 21. @lisacrispin Building a quality culture • Transformative leaders • Trust and psychological safety • Whole team ”owns” product • Focus on quality, not speed
  22. 22. @lisacrispin Talk about it with your team ● How to build shared understanding before coding ● How to shorten cycle time, feedback loops ● How to get value to customers continually
  23. 23. @lisacrispin A few resources ● Discovery: Explore Behavior Using Examples, by Seb Rose and Gáspár Nagy ● Introducing Example Mapping, by Matt Wynne ● Continuous Delivery, by Jez Humble and David Farley ● A Practical Guide to Testing in DevOps, by Katrina Clokie ● Accelerate The Science of Lean Software and DevOps, by Dr. Nicole Forsgren, Jez Humble, Gene KIm ● “The Three Amigos — All For One - One For All,” by George Dinwiddie, Better Software ● “The Three Amigos Strategy of Developing User Stories,” by George Dinwiddie, AgileConnection