Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Leverage Domain-Driven Design throughout testin...

Leverage Domain-Driven Design throughout testing @ DDD Europe

Every time I start working on a new software product I want to learn the domain. The faster I learn the domain I am working in, the faster I will add value to that product. I always start by looking at the tests; they should reflect what the software is built for and how it needs to behave.

However, the tests seldom reflect the same language as the code, the documentation and the communication. Inconsistent language usually is one of the reasons testing slows down the software delivery process. A lot of ‘ping-pong’ going on between several disciplines and even though the product is rigorously tested, there are still a lot of bugs found in production. It is hard, or even impossible to build the right product if there is inconsistency in the language used to communicate.

Join me in this talk where I will show you how to leverage Domain-Driven Design throughout testing. You will learn how to make the language of your tests consistent with the communication used, and create tests that can serve as living documentation.

Kenny Baas-Schwegler

January 30, 2019
Tweet

More Decks by Kenny Baas-Schwegler

Other Decks in Programming

Transcript

  1. 5

  2. 7 To communicate effectively, the code must be based on

    the same language used to write the requirements - the same language that the developers speak with each other and with domain experts - Eric Evans
  3. 8

  4. 9

  5. 10

  6. 12 Any organization that designs a system (defined more broadly

    here than just information systems) will inevitably produce a design whose structure is a copy of the organization's communication structure. — Mel Conway
  7. 14 A separate QA/Test team lead to silod test suites,

    with their own language. Use isolated test per Bounded Context, save all tests under source control where the code resides.
  8. 15 “The indirectness of communication conceals the formation of schisms—different

    team members use terms differently but don’t realize it.” - Eric Evans
  9. 16

  10. 18

  11. 19

  12. 22

  13. 24 A group of people is not a team, focus

    on collaboration as a team. Do more Pairing/Mobbing, create collective ownership.
  14. 25 Focus on Diversity, everyone is individual and different. Focus

    on Equality, equal access to opportunities Focus on Inclusion, create a sense of belonging.
  15. 26 “In the old waterfall method, the business experts talk

    to the analysts, and analysts digest and abstract and pass the result along to the programmers, who code the software. This approach fails because it completely lacks feedback.” - Eric Evans
  16. 28

  17. 29

  18. 30

  19. 31 “Apophany” that moment when a sufferer says, “Oh! I

    get it!” when they really don’t. - Liz Keogh https://lizkeogh.com/2015/09/09/on-epiphany-and-apophany/
  20. 34

  21. 35 The greatest obstacle to discovery is not ignorance -

    it is the illusion of knowledge. - Daniel J. Boorstin
  22. 39

  23. 42

  24. 45

  25. 46

  26. 47

  27. 48 Don’t only talk about requirements, visualise, actively participate while

    exploring requirements. Even better, experience it yourself!
  28. 49 “A document shouldn’t try to do what the code

    already does well.” - Eric Evans
  29. 50

  30. 51

  31. 52

  32. 53

  33. We all know or should know that language is fluid,

    liquid, subject to the whims of the people. Language evolves, as it should. Because language changes to accommodate new users, the older users resist and complain. http://tednellen.blogspot.com/2013/04/language-is-fluid.html