[
  {
    "start": 1.04,
    "end": 6.8,
    "text": "Welcome to Software Testing Unleashed, the podcast for testers, developers and software"
  },
  {
    "start": 6.9,
    "end": 9.52,
    "text": "makers who live quality as an attitude."
  },
  {
    "start": 10.42,
    "end": 16.62,
    "text": "Get fresh ideas and sharp insights to grow your mindset, to learn new methods and to"
  },
  {
    "start": 16.72,
    "end": 19.28,
    "text": "drive real change in how we build software."
  },
  {
    "start": 20.0,
    "end": 23.0,
    "text": "software and better teams for a better world."
  },
  {
    "start": 32.169,
    "end": 36.18,
    "text": "Hi, I'm Richie, software quality coach, keynote speaker and author."
  },
  {
    "start": 36.68,
    "end": 38.54,
    "text": "My guest today is Gáspár Nagy."
  },
  {
    "start": 39.26,
    "end": 45.62,
    "text": "Gáspár is the creator of SpecFlow and RacknRoll, and he brings more than 20 years of experience"
  },
  {
    "start": 45.7,
    "end": 48.54,
    "text": "as a coach, trainer and test automation expert."
  },
  {
    "start": 49.6,
    "end": 55.1,
    "text": "He's one of the top experts for behavior-driven development and co-authored the BDD book's"
  },
  {
    "start": 55.32,
    "end": 56.6,
    "text": "discovery and formulation."
  },
  {
    "start": 57.68,
    "end": 62.96,
    "text": "He's also a key figure in the open source community driving the Rack'n'Roll project"
  },
  {
    "start": 63.42,
    "end": 66.58,
    "text": "and sharing his experience at conferences worldwide."
  },
  {
    "start": 67.76,
    "end": 73.66,
    "text": "In this episode, we talked about his passionate topic, behavior-driven development."
  },
  {
    "start": 74.6,
    "end": 80.04,
    "text": "Why is it that a simple example often reveals more truth than a carefully written specification?"
  },
  {
    "start": 81.64,
    "end": 87.24,
    "text": "What happens when teams confuse BDD with just another testing technique and miss the real"
  },
  {
    "start": 87.32,
    "end": 87.66,
    "text": "value?"
  },
  {
    "start": 89.3,
    "end": 95.98,
    "text": "And how can executable specifications change the way we collaboratively deliver software?"
  },
  {
    "start": 97.38,
    "end": 104.58,
    "text": "We explored how BDD helps bridge the gap between business and technology, how examples drive"
  },
  {
    "start": 104.58,
    "end": 110.34,
    "text": "understanding and how tooling like Rock'n'Roll or SpecFlow supports this process in practice."
  },
  {
    "start": 111.3,
    "end": 116.74,
    "text": "You will hear how teams can start small, collaborate better and deliver with more confidence."
  },
  {
    "start": 117.34,
    "end": 119.02,
    "text": "And now enjoy the episode."
  },
  {
    "start": 120.94,
    "end": 123.2,
    "text": "Hi, Gáspár, nice to have you here on the show."
  },
  {
    "start": 124.2,
    "end": 128.619,
    "text": "Thanks for inviting me and I'm really happy that we have this recording today."
  },
  {
    "start": 129.22,
    "end": 136.46,
    "text": "Yeah, I'm happy too because when I saw you were in my backlog and then I got the recommendation"
  },
  {
    "start": 136.66,
    "end": 141.52,
    "text": "from another guest too that I should invite you and that was my double check that I have"
  },
  {
    "start": 141.52,
    "end": 142.88,
    "text": "to do the episode with you."
  },
  {
    "start": 143.62,
    "end": 151.32,
    "text": "You are well known for an advocate for BDD and so it's a good topic to start in there"
  },
  {
    "start": 151.38,
    "end": 157.44,
    "text": "and to talk about this testing method and to give the community some insights there."
  },
  {
    "start": 158.879,
    "end": 161.0,
    "text": "I'm really happy that we have the conversation."
  },
  {
    "start": 161.2,
    "end": 169.42,
    "text": "I think we will see us at the HUSTEF this year too, so we can chat in person there too."
  },
  {
    "start": 170.22,
    "end": 174.78,
    "text": "Yes, HUSTEF is kind of my home conference, so I'm trying to be there all the time."
  },
  {
    "start": 176.78,
    "end": 180.22,
    "text": "For me, it's the first time and maybe not the last time."
  },
  {
    "start": 181.08,
    "end": 182.74,
    "text": "Maybe I will join every year now."
  },
  {
    "start": 185.3,
    "end": 194.0,
    "text": "Let's get into the topic. So if we say BDD, how would you describe it in one or two sentences"
  },
  {
    "start": 194.26,
    "end": 199.16,
    "text": "for whoever has no idea what BDD is?"
  },
  {
    "start": 200.54,
    "end": 208.38,
    "text": "So yeah, I would say that BDD is a software development methodology or approach. And basically"
  },
  {
    "start": 208.42,
    "end": 215.22,
    "text": "this approach is focusing on having better understandability of the requirements,"
  },
  {
    "start": 216.49,
    "end": 222.7,
    "text": "also having better verification of the requirements, and maybe also a little bit"
  },
  {
    "start": 223.46,
    "end": 227.36,
    "text": "better documentation of what we wanted to do, better documentation of the expectation,"
  },
  {
    "start": 227.54,
    "end": 235.299,
    "text": "the behavior, this is where the behavior comes to this topic. So that's the three key elements"
  },
  {
    "start": 235.3,
    "end": 239.02,
    "text": "of that. So we would like to have a better understanding of the requirements, better"
  },
  {
    "start": 239.1,
    "end": 244.86,
    "text": "verification of them, and better documentation of them. And I think the thing that is most visible"
  },
  {
    "start": 245.08,
    "end": 252.48,
    "text": "to the people who have seen BDD already is these BDD scenarios. These are basically textual"
  },
  {
    "start": 252.72,
    "end": 259.779,
    "text": "descriptions of a piece of behavior with these given-and-then keywords. And they are typically"
  },
  {
    "start": 259.78,
    "end": 264.22,
    "text": "used with tools like Cucumber, SpecFlow, Rack and Roll, whatsoever."
  },
  {
    "start": 265.82,
    "end": 272.56,
    "text": "So I like the idea very much that it's more about understanding what we have to do in coding and"
  },
  {
    "start": 272.76,
    "end": 279.52,
    "text": "testing. So because this is often the real gap, this transformation from a thought of a requirement"
  },
  {
    "start": 279.88,
    "end": 287.139,
    "text": "to the technical part, there we lose a lot of things often on this way. So I think this can"
  },
  {
    "start": 286.98,
    "end": 287.74,
    "text": "can help a lot."
  },
  {
    "start": 288.2,
    "end": 295.52,
    "text": "So, and you said the structure, but how can BDD fulfill that, that we get this better"
  },
  {
    "start": 295.56,
    "end": 299.3,
    "text": "understanding of requirements and of user stories or G?"
  },
  {
    "start": 299.94,
    "end": 310.68,
    "text": "So, basically the idea here is that we would like to, so when you need to understand the"
  },
  {
    "start": 310.74,
    "end": 316.96,
    "text": "complex topic, not necessarily software, whatever, then typically humans understand it in a way"
  },
  {
    "start": 316.96,
    "end": 321.68,
    "text": "that you are showing them a couple of examples and based on the examples"
  },
  {
    "start": 321.86,
    "end": 326.34,
    "text": "people just learning that and maybe after that you also read the the"
  },
  {
    "start": 326.62,
    "end": 331.6,
    "text": "abstract specification whatever but but but basically the examples are helping"
  },
  {
    "start": 331.82,
    "end": 336.7,
    "text": "our understandability as humans the very basic example is if you want to play"
  },
  {
    "start": 336.74,
    "end": 342.04,
    "text": "football or soccer then then never nobody's is learning that by reading the"
  },
  {
    "start": 342.22,
    "end": 346.94,
    "text": "the game book there is a book and everything is properly described there"
  },
  {
    "start": 346.94,
    "end": 349.86,
    "text": "Nobody's learning it by then, but everyone's just going down to the field,"
  },
  {
    "start": 350.2,
    "end": 351.46,
    "text": "see how others play."
  },
  {
    "start": 351.79,
    "end": 356.5,
    "text": "And they are just catching up with the game and understanding the things."
  },
  {
    "start": 356.56,
    "end": 360.06,
    "text": "And after they have some good answer, maybe they will have some additional"
  },
  {
    "start": 360.3,
    "end": 362.68,
    "text": "questions and maybe sometimes they even need to open the book as well,"
  },
  {
    "start": 362.74,
    "end": 365.92,
    "text": "but especially if they are doing it in a professional way."
  },
  {
    "start": 366.02,
    "end": 369.5,
    "text": "But basically we are learning through examples and you can see many,"
  },
  {
    "start": 369.51,
    "end": 372.04,
    "text": "many other cases of that."
  },
  {
    "start": 372.19,
    "end": 376.12,
    "text": "It doesn't matter whether you learn something as a child or as an adult,"
  },
  {
    "start": 376.82,
    "end": 378.46,
    "text": "Learning, by example, is a human thing."
  },
  {
    "start": 379.04,
    "end": 383.88,
    "text": "And somehow, we have forgotten that with software development."
  },
  {
    "start": 384.04,
    "end": 388.22,
    "text": "Somehow, we have this common misbelief or something"
  },
  {
    "start": 388.34,
    "end": 391.0,
    "text": "that if we are able to write down"
  },
  {
    "start": 391.1,
    "end": 393.46,
    "text": "the specification in a proper document"
  },
  {
    "start": 393.82,
    "end": 397.44,
    "text": "with proper sentences, every word is really carefully"
  },
  {
    "start": 397.7,
    "end": 401.74,
    "text": "selected, then suddenly, people will understand the problem"
  },
  {
    "start": 402.12,
    "end": 404.86,
    "text": "and will be able to provide a solution for that."
  },
  {
    "start": 405.42,
    "end": 409.42,
    "text": "But unfortunately, those things are very valuable and good."
  },
  {
    "start": 409.5,
    "end": 411.22,
    "text": "So it's nothing bad about them."
  },
  {
    "start": 411.3,
    "end": 413.66,
    "text": "But to be able to make sure that we really understood"
  },
  {
    "start": 413.84,
    "end": 418.36,
    "text": "the same words in the same way how the one who has written that did,"
  },
  {
    "start": 418.74,
    "end": 420.98,
    "text": "we need to work on that."
  },
  {
    "start": 421.04,
    "end": 423.8,
    "text": "We need to collaboratively thinking about that."
  },
  {
    "start": 424.7,
    "end": 426.86,
    "text": "Coming up with a couple of examples that,"
  },
  {
    "start": 427.3,
    "end": 428.82,
    "text": "yes, this is how we imagined it."
  },
  {
    "start": 429.1,
    "end": 433.179,
    "text": "Here is an example how we imagine this application to actually"
  },
  {
    "start": 433.18,
    "end": 441.62,
    "text": "behave once it is going to be implemented. This seems to be a very effective way of having a"
  },
  {
    "start": 441.82,
    "end": 447.1,
    "text": "better understanding of the requirements. And I think for the testers for sure, but for everyone,"
  },
  {
    "start": 447.24,
    "end": 450.52,
    "text": "I think it's pretty clear that if we have a better understanding of the requirement,"
  },
  {
    "start": 451.92,
    "end": 457.58,
    "text": "then that's altogether making our entire process much more smooth. Because if you have a good"
  },
  {
    "start": 457.84,
    "end": 463.16,
    "text": "understanding of the requirements, you can write better test cases, tests for that. The developers"
  },
  {
    "start": 463.16,
    "end": 468.02,
    "text": "be able to make it immediately the right way and they don't need to do so much rework."
  },
  {
    "start": 469.84,
    "end": 477.62,
    "text": "Everything is, you will not have the kind of problem that you are working a lot as a team"
  },
  {
    "start": 477.83,
    "end": 482.04,
    "text": "and at the end the end result is not exactly what we wanted or what the customer wanted."
  },
  {
    "start": 482.37,
    "end": 489.0,
    "text": "So altogether this could improve the situation and the key thing is the examples and that's"
  },
  {
    "start": 489.0,
    "end": 490.42,
    "text": "And that's what BDD is based on."
  },
  {
    "start": 490.42,
    "end": 492.86,
    "text": "I mean, there are some other technologies or methodologies"
  },
  {
    "start": 492.91,
    "end": 494.3,
    "text": "as well that are using examples."
  },
  {
    "start": 494.42,
    "end": 495.8,
    "text": "Examples are generally good."
  },
  {
    "start": 496.48,
    "end": 498.7,
    "text": "And basically, those BDD scenarios"
  },
  {
    "start": 498.84,
    "end": 500.92,
    "text": "that I mentioned, the give and bend them things,"
  },
  {
    "start": 501.88,
    "end": 506.02,
    "text": "should be seen and can be seen as a properly written down"
  },
  {
    "start": 506.24,
    "end": 506.68,
    "text": "example."
  },
  {
    "start": 507.08,
    "end": 512.419,
    "text": "Basically, when I say that given I have like $20 in my account,"
  },
  {
    "start": 512.96,
    "end": 516.419,
    "text": "when I try to withdraw $100 to the ATM,"
  },
  {
    "start": 516.88,
    "end": 518.979,
    "text": "then the transaction will be rejected"
  },
  {
    "start": 518.979,
    "end": 520.26,
    "text": "because I don't have enough funds."
  },
  {
    "start": 520.84,
    "end": 523.58,
    "text": "That's an example which is showing the rule"
  },
  {
    "start": 523.919,
    "end": 526.36,
    "text": "that I can only withdraw as much money as much"
  },
  {
    "start": 526.36,
    "end": 527.98,
    "text": "I have in my account."
  },
  {
    "start": 528.74,
    "end": 531.62,
    "text": "And basically, everyone thinks that this example"
  },
  {
    "start": 531.65,
    "end": 532.76,
    "text": "is very basic, right?"
  },
  {
    "start": 533.22,
    "end": 535.94,
    "text": "I think the typical immediate reaction that, oh, this"
  },
  {
    "start": 536.0,
    "end": 537.5,
    "text": "is trivial, this example is trivial."
  },
  {
    "start": 537.62,
    "end": 540.56,
    "text": "But it looks like that if you just keep doing that"
  },
  {
    "start": 540.62,
    "end": 542.42,
    "text": "and keep coming up with examples,"
  },
  {
    "start": 542.72,
    "end": 544.3,
    "text": "then sometimes the example is triggering"
  },
  {
    "start": 544.36,
    "end": 547.44,
    "text": "very interesting questions that, OK, what did you say?"
  },
  {
    "start": 547.98,
    "end": 549.58,
    "text": "You said that trying to--"
  },
  {
    "start": 550.04,
    "end": 551.0,
    "text": "what does that mean?"
  },
  {
    "start": 551.06,
    "end": 553.14,
    "text": "And those discussions are very valuable"
  },
  {
    "start": 553.86,
    "end": 555.56,
    "text": "because those discussions basically"
  },
  {
    "start": 555.68,
    "end": 558.5,
    "text": "will help the team to have the understanding"
  },
  {
    "start": 558.5,
    "end": 561.24,
    "text": "of those small little details that are always"
  },
  {
    "start": 561.46,
    "end": 564.9,
    "text": "causing the trouble throughout the development process."
  },
  {
    "start": 565.6,
    "end": 572.12,
    "text": "So that's how I feel that better understanding"
  },
  {
    "start": 572.12,
    "end": 574.54,
    "text": "of the requirements is generally good."
  },
  {
    "start": 574.92,
    "end": 576.76,
    "text": "And of course, it's also very important,"
  },
  {
    "start": 576.9,
    "end": 579.48,
    "text": "also are very much related to the testability as well."
  },
  {
    "start": 580.44,
    "end": 583.9,
    "text": ">> How do we create these examples?"
  },
  {
    "start": 584.08,
    "end": 589.52,
    "text": "How can we get use of them that we have then written down in this structure?"
  },
  {
    "start": 589.92,
    "end": 594.96,
    "text": "Who is in charge of this doing that typically for a good team?"
  },
  {
    "start": 596.27,
    "end": 597.9,
    "text": ">> That's a very good question because I think"
  },
  {
    "start": 597.9,
    "end": 600.18,
    "text": "there is a typical misunderstanding about that."
  },
  {
    "start": 600.74,
    "end": 603.52,
    "text": "Because most of the people when they first see"
  },
  {
    "start": 603.48,
    "end": 606.58,
    "text": "such a BDD scenario with a tool like Cucumber or whatever,"
  },
  {
    "start": 607.38,
    "end": 608.78,
    "text": "then their immediate reaction that,"
  },
  {
    "start": 609.04,
    "end": 613.16,
    "text": "\"Oh, this is just another form of a test,\" which is not bad."
  },
  {
    "start": 613.88,
    "end": 616.54,
    "text": "But if you have seen my description,"
  },
  {
    "start": 616.82,
    "end": 618.54,
    "text": "basically that's just the end result."
  },
  {
    "start": 618.76,
    "end": 619.96,
    "text": "This is not the starting point."
  },
  {
    "start": 621.52,
    "end": 623.4,
    "text": "Of course, there are some similarities"
  },
  {
    "start": 624.34,
    "end": 626.24,
    "text": "between a test and a BDD scenarios,"
  },
  {
    "start": 627.16,
    "end": 630.42,
    "text": "but the things are not working exactly in the same way."
  },
  {
    "start": 630.62,
    "end": 637.36,
    "text": "For example, how you come up with those scenarios is different from how you come up with an"
  },
  {
    "start": 637.46,
    "end": 643.1,
    "text": "additional test because in testing, if you want to make a new test case, then you can use some"
  },
  {
    "start": 643.36,
    "end": 651.12,
    "text": "techniques, you can use some test analysis techniques that was also shown, I've seen the"
  },
  {
    "start": 651.24,
    "end": 656.959,
    "text": "episode in the show as well. For example, boundary analysis and such kind of things. It's more like"
  },
  {
    "start": 656.78,
    "end": 661.44,
    "text": "an engineering work so that based on the knowledge and based on your heuristics and whatever your"
  },
  {
    "start": 661.62,
    "end": 665.46,
    "text": "knowledge about testing you can make test cases. But for B2B scenarios that's different because"
  },
  {
    "start": 665.72,
    "end": 670.76,
    "text": "this is even earlier in the process where we don't really know too much. We don't really know"
  },
  {
    "start": 670.94,
    "end": 677.26,
    "text": "enough about the problem so that we could make a test case. So the good approach is or the best"
  },
  {
    "start": 677.38,
    "end": 686.76,
    "text": "approach is if we are really trying to come up with these scenarios or examples together. So"
  },
  {
    "start": 686.76,
    "end": 688.26,
    "text": "If you would try to do it in a way"
  },
  {
    "start": 688.3,
    "end": 690.94,
    "text": "that the product owner is just writing down these scenarios"
  },
  {
    "start": 691.18,
    "end": 693.28,
    "text": "and would come to the team that, hey, I"
  },
  {
    "start": 693.4,
    "end": 695.1,
    "text": "have made you 20 scenarios."
  },
  {
    "start": 695.42,
    "end": 697.86,
    "text": "Please work and come back when you finish."
  },
  {
    "start": 698.22,
    "end": 701.16,
    "text": "Then basically, we would jump back to the same point"
  },
  {
    "start": 701.24,
    "end": 703.82,
    "text": "where we started so that there is something which"
  },
  {
    "start": 703.9,
    "end": 707.02,
    "text": "has been written down from the perspective of the business,"
  },
  {
    "start": 707.24,
    "end": 708.82,
    "text": "only from the perspective of the business."
  },
  {
    "start": 709.16,
    "end": 710.56,
    "text": "And we don't have this verification"
  },
  {
    "start": 710.72,
    "end": 712.22,
    "text": "whether the team really understood that."
  },
  {
    "start": 712.98,
    "end": 714.6,
    "text": "For this understandability, we really"
  },
  {
    "start": 714.6,
    "end": 720.14,
    "text": "to do this together, which sounds a little bit weird, especially nowadays, because we want to"
  },
  {
    "start": 720.4,
    "end": 725.02,
    "text": "optimize the things. And if we are sitting together, even virtually, that sounds like an expensive"
  },
  {
    "start": 725.2,
    "end": 734.0,
    "text": "thing. It is maybe an expensive thing, but it's a good investment. And therefore, so that's basically"
  },
  {
    "start": 734.24,
    "end": 739.6,
    "text": "people are sitting together and trying to think about that there is a business rule. OK, what kind"
  },
  {
    "start": 739.56,
    "end": 744.34,
    "text": "of examples could we imagine for that? And maybe they are just coming up with one or two examples."
  },
  {
    "start": 745.36,
    "end": 750.56,
    "text": "Maybe this is just done in one minute because everything seemed to be clear and the rule was"
  },
  {
    "start": 751.02,
    "end": 756.64,
    "text": "anyway understood in the same way by the entire team. And maybe it will trigger some very"
  },
  {
    "start": 756.78,
    "end": 761.46,
    "text": "interesting discussion and maybe it will turn out that the rule, the business rule, how we describe"
  },
  {
    "start": 761.54,
    "end": 767.0,
    "text": "is not even fully proper and they would need to make some changes of that. So the collaborative"
  },
  {
    "start": 767.0,
    "end": 773.46,
    "text": "nature is very important and we need to really start that with by sitting together and trying"
  },
  {
    "start": 773.46,
    "end": 780.08,
    "text": "to discuss it through what kind of examples we have, what kind of scenarios we are going to have."
  },
  {
    "start": 781.78,
    "end": 786.08,
    "text": "Example mapping is one particular meeting facilitation technique that you can use,"
  },
  {
    "start": 786.46,
    "end": 789.7,
    "text": "but there is also feature mapping. There are other things as well and some teams are just"
  },
  {
    "start": 789.86,
    "end": 794.28,
    "text": "inventing their own meeting facilitation technique. It's really a simple thing so you don't really"
  },
  {
    "start": 794.28,
    "end": 799.62,
    "text": "need to do much, but this collaborative nature is very, very important."
  },
  {
    "start": 799.86,
    "end": 802.22,
    "text": "Otherwise, the value doesn't really come out."
  },
  {
    "start": 802.9,
    "end": 808.62,
    "text": "Yeah, I think it's so important, as when I see when I work with my teams and my clients, too,"
  },
  {
    "start": 809.68,
    "end": 814.86,
    "text": "they all talk about, yeah, we have to do the shift left thing and going more shift left,"
  },
  {
    "start": 815.02,
    "end": 816.22,
    "text": "putting the quality in there."
  },
  {
    "start": 816.62,
    "end": 821.56,
    "text": "But as you describe it, it's a real shift left because it's so much in the beginning"
  },
  {
    "start": 821.76,
    "end": 826.98,
    "text": "where we try to get the same understanding, which is a foundation for a good quality in"
  },
  {
    "start": 826.98,
    "end": 828.26,
    "text": "the whole process afterwards."
  },
  {
    "start": 828.56,
    "end": 833.5,
    "text": "So I think it's really important to discuss these things in the team as early as possible."
  },
  {
    "start": 834.1,
    "end": 836.68,
    "text": "And sometimes it's really providing very wonderful results."
  },
  {
    "start": 837.38,
    "end": 842.9,
    "text": "So even though I'm in this now for many years, but sometimes I was even really surprised"
  },
  {
    "start": 842.96,
    "end": 849.08,
    "text": "that, okay, what kind of knowledge we have gained, what kind of discovery we have made"
  },
  {
    "start": 849.08,
    "end": 854.84,
    "text": "how much better the end result has been. In the beginning, actually for us in the teams where we"
  },
  {
    "start": 854.92,
    "end": 859.96,
    "text": "were working, it was just really started in a way that in the meetings where we wanted to discuss"
  },
  {
    "start": 860.06,
    "end": 865.4,
    "text": "the user story details, we were always coming up with the question that, okay, this is great,"
  },
  {
    "start": 865.48,
    "end": 871.46,
    "text": "but could you please give us an example? It's a very innocent question. You can make this question"
  },
  {
    "start": 871.52,
    "end": 876.3,
    "text": "even without mentioning BDD or even without knowing about BDD. That's a very natural question."
  },
  {
    "start": 876.52,
    "end": 882.42,
    "text": "And just by using that fashion often is doing the magic part of that."
  },
  {
    "start": 882.54,
    "end": 888.1,
    "text": "And definitely this is the level one of applying BDD, so to say."
  },
  {
    "start": 888.66,
    "end": 889.16,
    "text": "Yeah, yeah."
  },
  {
    "start": 890.98,
    "end": 896.42,
    "text": "One comes to my mind, it was a situation, one client a few years ago,"
  },
  {
    "start": 896.54,
    "end": 901.0,
    "text": "where I had a hard discussion with the test manager there,"
  },
  {
    "start": 901.88,
    "end": 908.48,
    "text": "because I said, okay, you can use BDD if it fits, and it's okay to use this structure of"
  },
  {
    "start": 909.12,
    "end": 916.48,
    "text": "given when then. But he was, his opinion was that he has written down in his test plan that all has"
  },
  {
    "start": 916.62,
    "end": 925.08,
    "text": "to be in this BDD style, but this leads to test cases which are not, were not readable anymore,"
  },
  {
    "start": 925.32,
    "end": 930.02,
    "text": "because they had a given when, when, when, then, then, when, when, when, when a lot of lists to"
  },
  {
    "start": 929.88,
    "end": 931.54,
    "text": "to build on this, all this complexity,"
  },
  {
    "start": 931.98,
    "end": 935.66,
    "text": "where I see no really benefit anymore."
  },
  {
    "start": 935.88,
    "end": 939.18,
    "text": "What's your opinion of using this methodology"
  },
  {
    "start": 939.58,
    "end": 942.28,
    "text": "and granularity of these examples?"
  },
  {
    "start": 944.08,
    "end": 947.56,
    "text": "- So yeah, so the concept of given-when-then"
  },
  {
    "start": 947.64,
    "end": 949.58,
    "text": "is basically nothing new to testing, right?"
  },
  {
    "start": 949.66,
    "end": 952.3,
    "text": "So if any tester is making a test case"
  },
  {
    "start": 952.3,
    "end": 953.24,
    "text": "with different steps,"
  },
  {
    "start": 953.64,
    "end": 954.9,
    "text": "then you have some steps"
  },
  {
    "start": 954.98,
    "end": 956.96,
    "text": "that are some sort of preparation steps."
  },
  {
    "start": 957.24,
    "end": 958.179,
    "text": "There are some steps"
  },
  {
    "start": 958.18,
    "end": 963.16,
    "text": "you are actually testing something and obviously you also have some verifications attached to"
  },
  {
    "start": 963.24,
    "end": 969.04,
    "text": "those things and this is just another way to express that. So therefore the structure of"
  },
  {
    "start": 969.1,
    "end": 974.66,
    "text": "give and bend feels natural to everyone who is in the testing field and obviously if it feels natural"
  },
  {
    "start": 974.84,
    "end": 981.4,
    "text": "then people can also use it for describing their own test cases as well which are not related to"
  },
  {
    "start": 981.4,
    "end": 987.5,
    "text": "BDD. Again, this is a natural movement because maybe writing"
  },
  {
    "start": 987.62,
    "end": 990.8,
    "text": "down it with given band then is still more convenient than"
  },
  {
    "start": 990.92,
    "end": 994.34,
    "text": "making it in an Excel sheet. I don't know. I'm just so it's a"
  },
  {
    "start": 994.42,
    "end": 999.86,
    "text": "tooling question, so to say, at the end. Obviously, for BDD,"
  },
  {
    "start": 1000.66,
    "end": 1005.4,
    "text": "it's very important that that these scenarios are describing"
  },
  {
    "start": 1006.199,
    "end": 1010.14,
    "text": "examples that are properly describing the behavior of the"
  },
  {
    "start": 1009.98,
    "end": 1013.12,
    "text": "system and to be able to make sure that they are really"
  },
  {
    "start": 1013.7,
    "end": 1016.3,
    "text": "describing what we wanted, they have to be readable."
  },
  {
    "start": 1016.95,
    "end": 1020.5,
    "text": "Because if it's very complex and you need to really have 10"
  },
  {
    "start": 1020.6,
    "end": 1025.04,
    "text": "people sitting together to try to figure out what this scenario"
  },
  {
    "start": 1025.16,
    "end": 1028.939,
    "text": "wanted to do, then that kind of validation of the thing"
  },
  {
    "start": 1029.319,
    "end": 1029.92,
    "text": "wouldn't work."
  },
  {
    "start": 1030.42,
    "end": 1035.24,
    "text": "So the business readability is super important"
  },
  {
    "start": 1035.61,
    "end": 1038.9,
    "text": "to be able to make sure that those are not just tests"
  },
  {
    "start": 1038.9,
    "end": 1042.92,
    "text": "and don't take the just word in a bad way."
  },
  {
    "start": 1043.16,
    "end": 1045.319,
    "text": "So these are not tests, but this is the specification."
  },
  {
    "start": 1045.78,
    "end": 1047.68,
    "text": "This is the specification, and based on that,"
  },
  {
    "start": 1047.68,
    "end": 1049.06,
    "text": "we will make a lot of other tests."
  },
  {
    "start": 1049.09,
    "end": 1051.36,
    "text": "If you don't understand this, all the other tests"
  },
  {
    "start": 1051.42,
    "end": 1054.24,
    "text": "that we make out of that will also not necessarily"
  },
  {
    "start": 1054.36,
    "end": 1055.34,
    "text": "be doing what we wanted."
  },
  {
    "start": 1055.48,
    "end": 1060.02,
    "text": "So the readability of them is very, very important."
  },
  {
    "start": 1062.58,
    "end": 1065.12,
    "text": "Some teams are also using the same tooling,"
  },
  {
    "start": 1065.22,
    "end": 1069.24,
    "text": "the same phrases with normal test cases as well."
  },
  {
    "start": 1069.44,
    "end": 1070.56,
    "text": "This is not necessarily bad,"
  },
  {
    "start": 1071.12,
    "end": 1074.06,
    "text": "but could be a problem with the confusion,"
  },
  {
    "start": 1074.2,
    "end": 1076.48,
    "text": "so that somebody is just looking at that and they are confused."
  },
  {
    "start": 1076.76,
    "end": 1079.12,
    "text": "Why do you say that this is a BDD scenario if"
  },
  {
    "start": 1079.14,
    "end": 1080.98,
    "text": "it looks much more different than this one?"
  },
  {
    "start": 1082.38,
    "end": 1084.54,
    "text": "My recommendation is that if you really want to do that,"
  },
  {
    "start": 1084.9,
    "end": 1086.54,
    "text": "then make a very clear separation,"
  },
  {
    "start": 1086.74,
    "end": 1088.3,
    "text": "put it into a different folder or whatever,"
  },
  {
    "start": 1088.74,
    "end": 1091.28,
    "text": "mark it with some special tag that,"
  },
  {
    "start": 1091.4,
    "end": 1093.32,
    "text": "okay, this is not specification,"
  },
  {
    "start": 1093.7,
    "end": 1098.1,
    "text": "This is just some additional test cases that we did to be able to"
  },
  {
    "start": 1098.68,
    "end": 1103.54,
    "text": "with the same tooling, but somehow make the distinction clear"
  },
  {
    "start": 1103.54,
    "end": 1106.02,
    "text": "to the entire team to avoid confusion, basically."
  },
  {
    "start": 1106.24,
    "end": 1106.68,
    "text": "Yeah, yeah."
  },
  {
    "start": 1107.64,
    "end": 1109.44,
    "text": "And you mentioned it now because"
  },
  {
    "start": 1110.94,
    "end": 1114.04,
    "text": "there's not only the magic in creating these examples,"
  },
  {
    "start": 1114.18,
    "end": 1117.02,
    "text": "but also in using that for testing then."
  },
  {
    "start": 1117.52,
    "end": 1122.659,
    "text": "So if I have my example, it's possible to create test cases out of that"
  },
  {
    "start": 1122.66,
    "end": 1126.6,
    "text": "and connected to the code in a way."
  },
  {
    "start": 1127.1,
    "end": 1130.32,
    "text": "Can you tell us about this procedure a little bit more?"
  },
  {
    "start": 1131.84,
    "end": 1134.7,
    "text": ">> Once we have these scenarios and just to"
  },
  {
    "start": 1134.7,
    "end": 1137.4,
    "text": "give some impression for the listeners."
  },
  {
    "start": 1138.22,
    "end": 1140.64,
    "text": "Obviously, there is no average size of users,"
  },
  {
    "start": 1140.64,
    "end": 1143.04,
    "text": "so but if you can imagine an average size of users,"
  },
  {
    "start": 1143.04,
    "end": 1146.22,
    "text": "so then we could say that an average size of users can be broken"
  },
  {
    "start": 1146.44,
    "end": 1150.72,
    "text": "down to three or four acceptance criteria, some rules."
  },
  {
    "start": 1151.06,
    "end": 1155.58,
    "text": "For each rule, we would have one, two, or three examples."
  },
  {
    "start": 1155.9,
    "end": 1157.48,
    "text": "Altogether, for one user story,"
  },
  {
    "start": 1157.56,
    "end": 1160.76,
    "text": "you should think about these 10-15 examples."
  },
  {
    "start": 1161.02,
    "end": 1162.4,
    "text": "That's the magnitude."
  },
  {
    "start": 1163.32,
    "end": 1164.68,
    "text": "If someone did proper testing,"
  },
  {
    "start": 1164.76,
    "end": 1166.8,
    "text": "they know that for an average size user,"
  },
  {
    "start": 1166.88,
    "end": 1168.76,
    "text": "so you need to have much more tests than that."
  },
  {
    "start": 1168.86,
    "end": 1169.84,
    "text": "This is really just the,"
  },
  {
    "start": 1170.86,
    "end": 1174.52,
    "text": "you can also imagine these like you have a safety net,"
  },
  {
    "start": 1175.0,
    "end": 1177.58,
    "text": "and there are different points where the safety net is"
  },
  {
    "start": 1179.3,
    "end": 1182.0,
    "text": "and basically the rest is more or less covered."
  },
  {
    "start": 1182.3,
    "end": 1186.92,
    "text": "You don't need to have some hanging for every part of that,"
  },
  {
    "start": 1186.96,
    "end": 1190.8,
    "text": "but at least a few, which is making a good balance of your safety net."
  },
  {
    "start": 1191.26,
    "end": 1194.36,
    "text": "BDD scenarios are just holders for your safety net"
  },
  {
    "start": 1194.42,
    "end": 1197.4,
    "text": "and of the understandability of the requirements."
  },
  {
    "start": 1198.08,
    "end": 1201.48,
    "text": "And obviously, if we have this, and if we have discussed it,"
  },
  {
    "start": 1201.98,
    "end": 1205.48,
    "text": "then it's very natural that, okay, why not verify that at the end,"
  },
  {
    "start": 1205.5,
    "end": 1211.16,
    "text": "what we have implemented is really fulfilling those cornerstones or key examples, so to say."
  },
  {
    "start": 1211.76,
    "end": 1217.34,
    "text": "And there are many tools, these Cucumber family tools, that are basically making these"
  },
  {
    "start": 1217.62,
    "end": 1223.04,
    "text": "given-when-then-based scenarios somehow automatable. There is no magic. So it's not like"
  },
  {
    "start": 1223.34,
    "end": 1228.66,
    "text": "that Cucumber is reading the English sentences and it's automatically making whatever some"
  },
  {
    "start": 1229.0,
    "end": 1234.14,
    "text": "Selenium driver, which is, no, that's not working. But it just gives you a little bit of help"
  },
  {
    "start": 1234.86,
    "end": 1240.3,
    "text": "in a sense that once you have these give and then steps, for every single kind of step,"
  },
  {
    "start": 1240.78,
    "end": 1245.08,
    "text": "you can tell the cucumber that, hey, if you see a step that I try to withdraw"
  },
  {
    "start": 1245.72,
    "end": 1250.12,
    "text": "$100 from the ATM, this is how you should automate this particular step."
  },
  {
    "start": 1251.36,
    "end": 1254.8,
    "text": "And you have another step like, then the transaction fails because whatever,"
  },
  {
    "start": 1255.38,
    "end": 1259.98,
    "text": "this is how you should automate this step. And once you have made these small automation blocks,"
  },
  {
    "start": 1260.06,
    "end": 1266.84,
    "text": "like legal blocks, then QCumber is seeing your scenario with whatever three steps and they are"
  },
  {
    "start": 1267.04,
    "end": 1272.56,
    "text": "putting these automation blocks together and making it an executable test. So at the end,"
  },
  {
    "start": 1273.02,
    "end": 1278.16,
    "text": "what we will have, it's very again very wonderful if you want to say it like that, because you have"
  },
  {
    "start": 1278.26,
    "end": 1285.28,
    "text": "the written specification and now suddenly you can run it. In software development there is this"
  },
  {
    "start": 1285.02,
    "end": 1288.2,
    "text": "this term of executable specification as a concept."
  },
  {
    "start": 1288.62,
    "end": 1290.76,
    "text": "Basically, BDD is one implementation of"
  },
  {
    "start": 1290.84,
    "end": 1292.78,
    "text": "this executable specification concept."
  },
  {
    "start": 1293.42,
    "end": 1301.06,
    "text": "This is very good because it means that if those scenarios are passing at the end,"
  },
  {
    "start": 1301.64,
    "end": 1304.02,
    "text": "then there is a high probability that actually"
  },
  {
    "start": 1304.28,
    "end": 1305.92,
    "text": "our system is going into"
  },
  {
    "start": 1305.92,
    "end": 1309.68,
    "text": "the right direction and we have implemented it in the right way."
  },
  {
    "start": 1310.46,
    "end": 1312.42,
    "text": "Now, there is an additional twist."
  },
  {
    "start": 1312.66,
    "end": 1319.02,
    "text": "It's also important from the testing perspective that actually what we would like to encourage"
  },
  {
    "start": 1319.28,
    "end": 1324.32,
    "text": "teams to do is that they shouldn't do it in a way that, okay, they read all the scenarios,"
  },
  {
    "start": 1324.78,
    "end": 1329.68,
    "text": "they do the code, and at the end, they do the automation of that and happy if everything is"
  },
  {
    "start": 1329.76,
    "end": 1335.74,
    "text": "turning to green and unhappy if any of them failing. But we encourage people to do it in"
  },
  {
    "start": 1335.76,
    "end": 1339.86,
    "text": "a way that they should do it step by step. They should just take the first example,"
  },
  {
    "start": 1340.1,
    "end": 1343.14,
    "text": "which is maybe the most simple one, right?"
  },
  {
    "start": 1343.14,
    "end": 1344.28,
    "text": "A successful withdrawal."
  },
  {
    "start": 1345.06,
    "end": 1347.76,
    "text": "Try to implement the code until they fulfill that."
  },
  {
    "start": 1348.28,
    "end": 1350.82,
    "text": "Okay, it's of course will be a half-baked, half-finished something,"
  },
  {
    "start": 1351.0,
    "end": 1353.5,
    "text": "but at least we have one scenario which is already blessing."
  },
  {
    "start": 1353.94,
    "end": 1355.26,
    "text": "And take the second scenario,"
  },
  {
    "start": 1355.46,
    "end": 1360.22,
    "text": "which is maybe a special case when somebody is trying to withdraw a negative number,"
  },
  {
    "start": 1360.32,
    "end": 1360.64,
    "text": "I don't know."
  },
  {
    "start": 1361.24,
    "end": 1365.22,
    "text": "Try to implement the code that it provides the right solution for that,"
  },
  {
    "start": 1365.22,
    "end": 1366.02,
    "text": "the right error message."
  },
  {
    "start": 1366.56,
    "end": 1368.74,
    "text": "Move on to the next scenario, next scenario, next scenario."
  },
  {
    "start": 1369.06,
    "end": 1373.84,
    "text": "And basically, once all the scenarios of the user stories are turning to green,"
  },
  {
    "start": 1374.34,
    "end": 1378.14,
    "text": "that means that your solution for that user story is complete."
  },
  {
    "start": 1378.89,
    "end": 1384.28,
    "text": "And this is very important because when to stop, when we can say that something is complete,"
  },
  {
    "start": 1384.65,
    "end": 1387.8,
    "text": "and how to track the progress of the implementation is a very hard thing."
  },
  {
    "start": 1389.2,
    "end": 1396.02,
    "text": "I have worked a lot with projects before, and probably anyone who is listening to that"
  },
  {
    "start": 1396.02,
    "end": 1401.42,
    "text": "is all remembering those discussions that are we now at the 70% or the 80% of the end?"
  },
  {
    "start": 1401.62,
    "end": 1406.18,
    "text": "At the end it turned out that we were only at the 20%. So it's very hard to see the progress"
  },
  {
    "start": 1406.38,
    "end": 1410.1,
    "text": "of the user story implementation, very hard to make some guesses when we are going to finish."
  },
  {
    "start": 1410.42,
    "end": 1416.84,
    "text": "But if you are doing it such a scenario by scenario thing, then all the things will be"
  },
  {
    "start": 1417.0,
    "end": 1421.6,
    "text": "much more predictable. Sometimes this is very hard to achieve because people think that okay,"
  },
  {
    "start": 1421.78,
    "end": 1426.3,
    "text": "why should I do a half-baked implementation if I anyway know that there will be a negative number"
  },
  {
    "start": 1426.98,
    "end": 1433.4,
    "text": "check?\" So you have to overcome this kind of mental thing. But if you do, then you will see"
  },
  {
    "start": 1433.46,
    "end": 1438.96,
    "text": "that there will be a twist. Because once your implementation is going to be much more driven"
  },
  {
    "start": 1439.18,
    "end": 1447.38,
    "text": "by the requirements, and it will find its own shape by doing that, and altogether that final"
  },
  {
    "start": 1447.38,
    "end": 1452.62,
    "text": "design, the final solution, is going to be better than what would you flesh out immediately."
  },
  {
    "start": 1453.46,
    "end": 1459.92,
    "text": "This is in software development called a vertical slicing. That means that you really try to"
  },
  {
    "start": 1460.16,
    "end": 1464.82,
    "text": "complete your solution in a kind of end-to-end way for one particular aspect of the functionality"
  },
  {
    "start": 1465.26,
    "end": 1471.48,
    "text": "and then you move to the next aspect. So basically if you do BDD in a way that you are really doing,"
  },
  {
    "start": 1472.32,
    "end": 1476.82,
    "text": "this is where the driven word comes to BDD. So these scenarios are driving your"
  },
  {
    "start": 1476.82,
    "end": 1482.36,
    "text": "implementation, you are just moving them one after the other. And then, then all together,"
  },
  {
    "start": 1482.56,
    "end": 1488.64,
    "text": "the end result is going to have a pretty good design and pretty good shape. Basically, this"
  },
  {
    "start": 1488.64,
    "end": 1493.12,
    "text": "is the same technique as is being used in test-driven development. But just test-driven"
  },
  {
    "start": 1493.2,
    "end": 1498.08,
    "text": "development is more about the technical aspect. And this is about the requirement aspect of that."
  },
  {
    "start": 1498.98,
    "end": 1504.58,
    "text": "And I think it's, it's, it's, it solves a big issue of a lot of agile teams who are building"
  },
  {
    "start": 1505.14,
    "end": 1512.68,
    "text": "in their iteration some mini waterfalls where you have the planning and then the development phase"
  },
  {
    "start": 1512.68,
    "end": 1517.44,
    "text": "in the last two days you are trying to test and test automate everything which is then created"
  },
  {
    "start": 1517.9,
    "end": 1525.06,
    "text": "but if you go to this PDD behavior driven methodology you have always these small slices"
  },
  {
    "start": 1525.28,
    "end": 1531.68,
    "text": "and build a real iteration in an agile way of thinking so you have not the stress at the end"
  },
  {
    "start": 1531.46,
    "end": 1534.4,
    "text": "of the sprint and you see always where you have this progress."
  },
  {
    "start": 1534.58,
    "end": 1538.98,
    "text": "Exactly, and in the meantime you have the full transparency so that your product owner"
  },
  {
    "start": 1539.7,
    "end": 1544.28,
    "text": "also knows that you have 10 scenarios scheduled for this user story and they will always see the"
  },
  {
    "start": 1544.4,
    "end": 1548.92,
    "text": "daily report that three of them is already passing. They can read those scenarios because"
  },
  {
    "start": 1549.0,
    "end": 1554.8,
    "text": "those are readable. So maybe on a Tuesday morning your product or just checking the thing, oh these"
  },
  {
    "start": 1554.96,
    "end": 1560.659,
    "text": "three scenarios is already green so I'm just going to make a manual check, some exploration on"
  },
  {
    "start": 1560.66,
    "end": 1563.78,
    "text": "on the demo server and they can already provide feedback."
  },
  {
    "start": 1563.8,
    "end": 1566.4,
    "text": "They don't even have to wait until the full user story"
  },
  {
    "start": 1566.52,
    "end": 1567.3,
    "text": "is going to be finished."
  },
  {
    "start": 1567.4,
    "end": 1570.22,
    "text": "So there are a lot of extra benefits"
  },
  {
    "start": 1570.34,
    "end": 1573.74,
    "text": "that you can get from these things."
  },
  {
    "start": 1573.92,
    "end": 1574.48,
    "text": "Yeah, absolutely."
  },
  {
    "start": 1574.72,
    "end": 1578.18,
    "text": "- Yeah, and it's really a nice connection"
  },
  {
    "start": 1578.5,
    "end": 1580.6,
    "text": "between the business view and the technical view."
  },
  {
    "start": 1581.08,
    "end": 1584.44,
    "text": "So we have always the situation where the product owner"
  },
  {
    "start": 1584.52,
    "end": 1587.36,
    "text": "wants to know what is going on with you developers,"
  },
  {
    "start": 1587.66,
    "end": 1588.62,
    "text": "what are you doing here?"
  },
  {
    "start": 1588.68,
    "end": 1591.06,
    "text": "and telling everything in their code view,"
  },
  {
    "start": 1591.42,
    "end": 1593.56,
    "text": "but there is no really match between them."
  },
  {
    "start": 1593.72,
    "end": 1596.64,
    "text": "And with BDD, you can create this connection"
  },
  {
    "start": 1596.9,
    "end": 1598.56,
    "text": "between the business and the technical view"
  },
  {
    "start": 1598.74,
    "end": 1600.96,
    "text": "and get more transparency, as you said,"
  },
  {
    "start": 1601.0,
    "end": 1602.32,
    "text": "and information out of it, yeah."
  },
  {
    "start": 1603.08,
    "end": 1605.06,
    "text": "- One of the earlier books"
  },
  {
    "start": 1605.32,
    "end": 1606.9,
    "text": "about behavior-driven development,"
  },
  {
    "start": 1607.3,
    "end": 1608.22,
    "text": "there are some other names"
  },
  {
    "start": 1608.32,
    "end": 1610.54,
    "text": "that are basically meaning the same thing,"
  },
  {
    "start": 1610.98,
    "end": 1613.96,
    "text": "except test-driven development is about the same concept"
  },
  {
    "start": 1614.12,
    "end": 1616.06,
    "text": "or specification, by example,"
  },
  {
    "start": 1616.36,
    "end": 1618.22,
    "text": "is also essentially the same concept."
  },
  {
    "start": 1618.6,
    "end": 1621.14,
    "text": "So Goyko Ejic had his first book"
  },
  {
    "start": 1621.36,
    "end": 1623.62,
    "text": "on specification by example,"
  },
  {
    "start": 1624.32,
    "end": 1628.14,
    "text": "and with the title that bridging the communication gap."
  },
  {
    "start": 1628.42,
    "end": 1631.6,
    "text": "So basically that making a bridge between the requirements"
  },
  {
    "start": 1631.74,
    "end": 1633.16,
    "text": "and the actual technical assets,"
  },
  {
    "start": 1633.26,
    "end": 1636.82,
    "text": "the code that you are actually building."
  },
  {
    "start": 1636.94,
    "end": 1638.56,
    "text": "I think this metaphor works pretty well."
  },
  {
    "start": 1638.56,
    "end": 1640.48,
    "text": "So it really makes a strong connection"
  },
  {
    "start": 1640.66,
    "end": 1642.06,
    "text": "between those two sides."
  },
  {
    "start": 1644.12,
    "end": 1657.7,
    "text": "And when we talk upfront, you also mentioned that you are also investing a lot of time in your history with BDD in tooling, in the tool part of BDD."
  },
  {
    "start": 1658.32,
    "end": 1664.9,
    "text": "So maybe you can give us there some insights, what is usable and what are you doing there?"
  },
  {
    "start": 1666.44,
    "end": 1670.66,
    "text": "So I think the history of BDD is very interesting."
  },
  {
    "start": 1670.72,
    "end": 1676.08,
    "text": "I don't want to go into too much of the details, but I think BDD in this form,"
  },
  {
    "start": 1676.18,
    "end": 1680.48,
    "text": "that's typically how people see it, become successful because there was a"
  },
  {
    "start": 1680.52,
    "end": 1683.02,
    "text": "good tooling support provided for that."
  },
  {
    "start": 1683.1,
    "end": 1687.08,
    "text": "So Eslech Hellesoy in 2008 created the tool called Cucumber."
  },
  {
    "start": 1687.24,
    "end": 1690.44,
    "text": "There have been some tools before and there have been some alternative tools"
  },
  {
    "start": 1690.48,
    "end": 1697.14,
    "text": "after, but still really this tool was the one that helped to open the doors for"
  },
  {
    "start": 1697.26,
    "end": 1700.0,
    "text": "this methodology for too many of the teams."
  },
  {
    "start": 1700.42,
    "end": 1704.16,
    "text": "So even though the concept is about requirements and understandability,"
  },
  {
    "start": 1704.43,
    "end": 1712.66,
    "text": "the tooling that supports the automation aspect is also very important for that."
  },
  {
    "start": 1713.06,
    "end": 1720.74,
    "text": "So Cucumber has been created in 2008 and I was first encountered BDD in a project in 2009,"
  },
  {
    "start": 1720.74,
    "end": 1721.76,
    "text": "so one year after."
  },
  {
    "start": 1722.3,
    "end": 1726.5,
    "text": "And when we started to do that, we were trying to use Cucumber as a tool,"
  },
  {
    "start": 1726.74,
    "end": 1731.96,
    "text": "But there were just some platform problems because it was for Ruby and we were working on Microsoft.net."
  },
  {
    "start": 1732.72,
    "end": 1736.08,
    "text": "So we basically made a port of Cucumber to.NET."
  },
  {
    "start": 1737.05,
    "end": 1739.94,
    "text": "It's basically trying to match it to the ecosystem."
  },
  {
    "start": 1740.71,
    "end": 1742.06,
    "text": "And we made it also open source."
  },
  {
    "start": 1742.14,
    "end": 1745.3,
    "text": "Cucumber was also an open source project called it's SpecFlow."
  },
  {
    "start": 1745.88,
    "end": 1753.7,
    "text": "And basically I became the kind of the owner or whatever, the core maintainer of SpecFlow within the company I worked for."
  },
  {
    "start": 1755.38,
    "end": 1761.56,
    "text": "And I kept working for that, making conference talks and many other things,"
  },
  {
    "start": 1761.72,
    "end": 1767.0,
    "text": "trainings for for SpecFlow. And then because of some other reasons, I moved a little bit away"
  },
  {
    "start": 1767.16,
    "end": 1774.22,
    "text": "from the SpecFlow as a tool. I was not really part of the maintenance teams anymore. And because of"
  },
  {
    "start": 1774.3,
    "end": 1782.54,
    "text": "some company political things, I don't want to go into that. Basically, the SpecFlow name and"
  },
  {
    "start": 1782.34,
    "end": 1786.82,
    "text": "the code base was abandoned by its owner."
  },
  {
    "start": 1788.2,
    "end": 1790.06,
    "text": "But we needed to have some tool which is"
  },
  {
    "start": 1790.24,
    "end": 1792.18,
    "text": "up-to-date with the latest.NET framework."
  },
  {
    "start": 1793.0,
    "end": 1794.94,
    "text": "Basically, one and a half year ago,"
  },
  {
    "start": 1795.77,
    "end": 1798.06,
    "text": "I thought that, \"Okay, let's do a fork.\""
  },
  {
    "start": 1798.06,
    "end": 1800.62,
    "text": "This is how in open source called the action,"
  },
  {
    "start": 1800.62,
    "end": 1802.4,
    "text": "where you just basically copy the code base"
  },
  {
    "start": 1802.8,
    "end": 1804.96,
    "text": "and start it from scratch."
  },
  {
    "start": 1805.76,
    "end": 1806.58,
    "text": "Copying is allowed."
  },
  {
    "start": 1806.8,
    "end": 1810.019,
    "text": "That's the beauty of open source that you have all the licenses to"
  },
  {
    "start": 1810.02,
    "end": 1814.12,
    "text": "modify to work on the code base."
  },
  {
    "start": 1814.18,
    "end": 1815.7,
    "text": "That's very valuable in this case."
  },
  {
    "start": 1817.98,
    "end": 1819.5,
    "text": "We had to rename it because of"
  },
  {
    "start": 1819.64,
    "end": 1821.58,
    "text": "again some legal and trademark issues."
  },
  {
    "start": 1821.92,
    "end": 1823.76,
    "text": "Now the new name is called Rack and Roll,"
  },
  {
    "start": 1824.2,
    "end": 1828.54,
    "text": "and we have a nice team of"
  },
  {
    "start": 1829.24,
    "end": 1834.08,
    "text": "voluntary contributors who are helping to move on with this."
  },
  {
    "start": 1835.56,
    "end": 1838.499,
    "text": "It's a lot of work, but it's really very"
  },
  {
    "start": 1838.5,
    "end": 1843.56,
    "text": "enjoyable because it's very good to see that people are also putting their free time, their"
  },
  {
    "start": 1843.6,
    "end": 1848.62,
    "text": "enthusiasm, their ideas into that. We have some interesting discussions because of course"
  },
  {
    "start": 1848.68,
    "end": 1853.76,
    "text": "it's in many cases it's not so easy to decide whether A or B is the right way to do and"
  },
  {
    "start": 1855.64,
    "end": 1858.58,
    "text": "many other things. And so that's what I'm doing."
  },
  {
    "start": 1860.26,
    "end": 1864.34,
    "text": "So but it's still for.NET. It's a.NET framework for BDD."
  },
  {
    "start": 1864.68,
    "end": 1865.54,
    "text": "- Exactly, exactly."
  },
  {
    "start": 1865.7,
    "end": 1868.14,
    "text": "Still the kind of the.NET version of Cucumber."
  },
  {
    "start": 1869.18,
    "end": 1870.78,
    "text": "I think the obvious question would be that"
  },
  {
    "start": 1871.1,
    "end": 1872.7,
    "text": "why didn't we call it Cucumber then?"
  },
  {
    "start": 1873.44,
    "end": 1877.14,
    "text": "I just, trademarks and wrong timing."
  },
  {
    "start": 1877.52,
    "end": 1878.26,
    "text": "That's the answer."
  },
  {
    "start": 1878.76,
    "end": 1880.96,
    "text": "So we had to find another name."
  },
  {
    "start": 1881.16,
    "end": 1882.1,
    "text": "And once you have a name,"
  },
  {
    "start": 1882.38,
    "end": 1883.82,
    "text": "it's very costly to change the name."
  },
  {
    "start": 1883.86,
    "end": 1885.84,
    "text": "And so whatever, it's called Rack and Roll,"
  },
  {
    "start": 1885.94,
    "end": 1889.62,
    "text": "but it's kind of the official.NET implementation"
  },
  {
    "start": 1889.74,
    "end": 1890.2,
    "text": "of Cucumber."
  },
  {
    "start": 1890.82,
    "end": 1893.139,
    "text": "And there is a very strong collaboration"
  },
  {
    "start": 1893.14,
    "end": 1896.1,
    "text": "between the Rack and Roll team and the Cucumber team."
  },
  {
    "start": 1896.24,
    "end": 1899.68,
    "text": "So we are talking with each other on Discord"
  },
  {
    "start": 1900.02,
    "end": 1903.7,
    "text": "and they are contributing to the Cucumber source code"
  },
  {
    "start": 1903.74,
    "end": 1905.5,
    "text": "as well and they are also giving some suggestions"
  },
  {
    "start": 1905.74,
    "end": 1907.28,
    "text": "for the Rack and Roll code base."
  },
  {
    "start": 1907.36,
    "end": 1912.3,
    "text": "So it's an interesting inter-open source project"
  },
  {
    "start": 1912.4,
    "end": 1913.38,
    "text": "collaboration as well."
  },
  {
    "start": 1914.04,
    "end": 1914.5,
    "text": "- Yeah, yeah."
  },
  {
    "start": 1914.78,
    "end": 1916.68,
    "text": "I think it's a very nice environment to work"
  },
  {
    "start": 1916.74,
    "end": 1919.88,
    "text": "in this international, with international people"
  },
  {
    "start": 1919.88,
    "end": 1922.4,
    "text": "who are working together on an open source project like this."
  },
  {
    "start": 1922.5,
    "end": 1925.6,
    "text": "Sometimes they don't even know where they are from and what's their real name."
  },
  {
    "start": 1925.6,
    "end": 1929.6,
    "text": "You just need to see their handle and see that they are making some good progress."
  },
  {
    "start": 1930.22,
    "end": 1930.58,
    "text": "Yeah, yeah."
  },
  {
    "start": 1930.9,
    "end": 1933.92,
    "text": "And so we will put the link to the project also in the show notes."
  },
  {
    "start": 1934.04,
    "end": 1937.48,
    "text": "So if everyone, if someone wants to join or wants to use it."
  },
  {
    "start": 1937.9,
    "end": 1940.18,
    "text": "So there is the link so you can follow that."
  },
  {
    "start": 1940.72,
    "end": 1944.68,
    "text": "Yes, Gáspár, thank you very much for all these insights"
  },
  {
    "start": 1944.88,
    "end": 1948.86,
    "text": "into the BDD methodology and also the tooling stuff."
  },
  {
    "start": 1948.98,
    "end": 1957.46,
    "text": "I think it's a very good view to BDD to not see it just for testing or for implementing"
  },
  {
    "start": 1957.6,
    "end": 1964.54,
    "text": "something but for understanding requirements and this is a huge benefit for teams, I think."
  },
  {
    "start": 1965.04,
    "end": 1968.28,
    "text": "So thank you very much for this perspective and for your time here."
  },
  {
    "start": 1968.8,
    "end": 1972.42,
    "text": "And we see us in Budapest in a few weeks."
  },
  {
    "start": 1973.92,
    "end": 1976.54,
    "text": "And yeah, hopefully then we have chat too there."
  },
  {
    "start": 1977.04,
    "end": 1977.48,
    "text": "Exactly."
  },
  {
    "start": 1977.98,
    "end": 1982.02,
    "text": "Thank you very much and I'm looking forward to also personally meet you."
  },
  {
    "start": 1982.32,
    "end": 1984.98,
    "text": "And maybe we'll make another episode."
  },
  {
    "start": 1985.78,
    "end": 1988.34,
    "text": "Yeah, we will see. Thank you very much. Bye bye."
  },
  {
    "start": 1988.7,
    "end": 1989.46,
    "text": "Okay, bye bye."
  }
]