What is Behavior Driven Development? (4 minute cartoon on BDD)

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ย. 2024
  • Simple and quick cartoon that answers the question "What is Behavior Driven Development (BDD)?" If you'd like a relevant free book, please see below...
    www.xeric.net/...
    I've published a book called "Starting Agile" that is designed to help you start your team's Agile journey outright. You can buy a copy from Amazon, but I'm giving free copies away to my subscribers from TH-cam. You can signup for a copy at the link above.
    This video is a high-level brief introduction to Behavior Driven Development and explains how it is different and complementary to Test Driven Development.

ความคิดเห็น • 51

  • @gggg-rf8en
    @gggg-rf8en 3 ปีที่แล้ว

    Great explanation and simplification to ease understanding. Great job

  • @wilfredderksen
    @wilfredderksen 2 ปีที่แล้ว +7

    I really like the video and you're explaining the technical concept very nicely. But .. it contributes to the confusion that BDD is 'just' the writing in Gherkin style; BDD is way more than that.
    In BDD you want all disciplines (traditionally analyst, developer, tester) to interview the requestors on what they actually want. The 3 amigo sessions. Due to their own daily work, they have different viewpoints and ask different kind of questions and trigger each other to the next questions. This helps to get a way better picture of the Why and What of the desired features. With that come the use cases and with that you have the gherkin style to also automating (acceptance) tests in advance. Maybe if you like to make an extended version :-)

  • @richardhaw9757
    @richardhaw9757 2 ปีที่แล้ว

    in my experience bdd can bring a product out faster, with less fuss. with careful coding and understanding if the requirements it can beat tdd in almost every ground. of course, this in only in the context of the domain im in.

  • @LuisBlancoAustin
    @LuisBlancoAustin 3 ปีที่แล้ว +3

    Hi Mark, how did you create your animations? I find them to be very helpful. Thanks for putting this together.

  • @cleberneri1754
    @cleberneri1754 5 ปีที่แล้ว +5

    Thank you Mark, I've just read about it in a book, but this explanation kind of clear my mind about how does it works in real life...

    • @MarkShead
      @MarkShead  5 ปีที่แล้ว

      Thank you for taking the time to comment. I'm glad it was useful!

  • @kacpercencelewski7222
    @kacpercencelewski7222 8 หลายเดือนก่อน +2

    Thanks for good explanation and animation.

  • @davidholguin6243
    @davidholguin6243 5 ปีที่แล้ว +3

    You hit the mark exactly. This same type of thinking I used for over 15 years working for a major So Calif Utility Company. Since I had previous engineering design experience combined with my computer background I was usually the designated Liaison/Developer between Engineering and IT. A good understanding of your users is the first step and your attitude and ability to listen to your users and stay the course with IT and lots of on going acceptance. Good job and I have forwarded your well done overview to others who need it ! Sgt Dave

  • @buweiliao9134
    @buweiliao9134 3 ปีที่แล้ว +3

    so you have half of the minute to JUST celebrate BDD?

    • @MarkShead
      @MarkShead  3 ปีที่แล้ว

      Well we were pretty excited about it. :)

  • @michellegabrielle2026
    @michellegabrielle2026 10 หลายเดือนก่อน

    How is software quality guaranteed with this approach? I imagine there are scenarios where an application's behavior may be correct, but the quality of the code may still be suboptimal. Are additional practices such as peer reviews needed to prevent long-term problems?

    • @MarkShead
      @MarkShead  10 หลายเดือนก่อน

      The approach lends itself well to pair programming which is basically real-time peer reviews.
      But the big benefit you may be overlooking is that when you can quickly prove that the application does what it is supposed to do, developers are much more free to fix things as they go. A good portion of what developers do on existing systems without tests is try to figure out how to make a change with minimal risk of breaking something. Often times the way that has the least risk of breaking something is what pushes toward poorly designed code. When developers have the freedom to refactor, the code tends to stay higher quality.

  • @TheDudeWithSome409
    @TheDudeWithSome409 5 ปีที่แล้ว +2

    Thank you Mark, your videos are cutting edge and give us a framework of what else to study related to the subject. They are an excellent introduction into an entirely new philosophy.

    • @MarkShead
      @MarkShead  5 ปีที่แล้ว +1

      I'm glad it was useful. Thanks for taking the time to comment.

  • @yazanal-tamimi1145
    @yazanal-tamimi1145 4 ปีที่แล้ว +1

    The video is very useful, thanks for the explanation and for highlighting the differnece between the TDD and BDD aproaches.

  • @jaber4474
    @jaber4474 5 ปีที่แล้ว +1

    I liked the video and I really thank you for your informative video in such a attractive and awesome way. Please keep posting other videos related to Software engineering .. Keep up the good work.

  • @Ricky38700
    @Ricky38700 4 ปีที่แล้ว +1

    Very Good !. Why not translate another languages ?!

    • @MarkShead
      @MarkShead  4 ปีที่แล้ว +1

      Which languages would you like to see?

  • @MariemMili
    @MariemMili 10 หลายเดือนก่อน

    Thanks mark 😄

  • @soniyakc9354
    @soniyakc9354 5 ปีที่แล้ว +1

    simple & informative thank u

  • @leonsky6433
    @leonsky6433 3 ปีที่แล้ว +1

    Super cool explanation

  • @phildevry2129
    @phildevry2129 5 ปีที่แล้ว +1

    Great Video. Love the animations.

  • @1993eML
    @1993eML ปีที่แล้ว

    Thanks Mark, I think I got the idea more into a fully version to explain it with more of an "normal language".
    Greetings!

  • @NguyenNguyen-ly2yt
    @NguyenNguyen-ly2yt ปีที่แล้ว

    Thank you Mark for you great explaination. WE need more contents like that.

  • @madirajuchaitanya
    @madirajuchaitanya 3 ปีที่แล้ว

    Nice Presentation. Please continue with your great work...!!!.

  • @lissau3
    @lissau3 3 ปีที่แล้ว

    Excellent explainer videos. Thank you

  • @warriorfb2010
    @warriorfb2010 2 ปีที่แล้ว

    Fantastic job on the animation.. seriously..

  • @Mel0nMauler
    @Mel0nMauler 4 ปีที่แล้ว

    I don't understand how this is is anything new. Using words in a structured format to explain functionality is not new. What am I no getting?

    • @MarkShead
      @MarkShead  4 ปีที่แล้ว +1

      The difference is that you actually write code that makes each line executable and the Cucumber framework runs it on every build and gives you feedback on what passed and if there are any errors. So kind of like TDD, but everything is tied back to what the customer asked for.

  • @leeamraa
    @leeamraa 5 ปีที่แล้ว +1

    how this is different than "user stories" in agile?! who, what and why template.

    • @MarkShead
      @MarkShead  5 ปีที่แล้ว

      User stories are not executable. They also aren't granular enough to make executable.

    • @leeamraa
      @leeamraa 5 ปีที่แล้ว

      @@MarkShead : if this is the only difference then, just make user stories more refined.

    • @MarkShead
      @MarkShead  5 ปีที่แล้ว +9

      @@leeamraa I assume you are talking about the stories that look like:
      As a web user
      I want to change my email address
      So I can keep it up to date
      Making these more refined still won't allow you to make them executable because they aren't setup in a format for executing and they aren't examples. To make an executable example you need: 1. the state the world needs to be in, 2. the action that you are trying to give an example of, 3. the resulting state that you want to confirm.
      No matter how "refined" you make the As a, I want, So I can, stories, it isn't going to make a very good example that you can actually execute. That is where the BDD style of giving examples is helpful because they can be made executable.
      And by "make them executable" I mean make them where they will actually run against the code.
      Does that make sense?

    • @leeamraa
      @leeamraa 5 ปีที่แล้ว

      @@MarkShead : let me watch the video more carefully and see.

    • @leeamraa
      @leeamraa 5 ปีที่แล้ว +2

      @@MarkShead : I see the difference now. Thanks.

  • @limychelseafc
    @limychelseafc 4 ปีที่แล้ว

    So TDD and BDD can be used separately? As in they are not a technique in the same space?
    TDD -> Development
    BDD -> Feature?

    • @MarkShead
      @MarkShead  4 ปีที่แล้ว

      They work well together, but using TDD doesn't require BDD and using BDD doesn't require TDD. Your chart makes sense and you can also say that TDD is usually more about defining methods and making sure they work while BDD is more about defining business requirements and making sure they work.

  • @aadilsiddiqui89
    @aadilsiddiqui89 2 ปีที่แล้ว

    When exactly do we need to use BDD. In an agile methodology, where does it fall? I completely understand it benefits, but I need to understand that when does it come in picture?

    • @MarkShead
      @MarkShead  2 ปีที่แล้ว +1

      When someone announces they have capacity to start on the next story, the next step should be to meet to write examples of what it means for that story to be complete using BDD. At least that is where I've seen it work for teams that have been successful with it.

    • @aadilsiddiqui89
      @aadilsiddiqui89 2 ปีที่แล้ว

      @@MarkShead Thank you for your reply. So one can either go in the traditional way of completing the user story(first the developer developing the system and then the tester testing it out) or a tester could write the scripts using gherkin and try to complete the requirement.
      If the second scenario is correct, what does the developer do, does their role comes into picture when the tc's through cucumber are run, meaning the whole concept of BDD is just to streamline how the system has to be developed in a more efficient way.

    • @MarkShead
      @MarkShead  2 ปีที่แล้ว

      @@aadilsiddiqui89 Behavior Driven Development is where you take the user story and get the developer, tester, and business together to create examples before you start writing the code. Then the developer makes the examples executable and uses that to drive the development process.

  • @suryark
    @suryark 2 ปีที่แล้ว

    simple and easier to understand.

  • @GiggityGlen
    @GiggityGlen 3 ปีที่แล้ว

    Best explanation 🙌

  • @sharmarahul17
    @sharmarahul17 ปีที่แล้ว

    excellent

  • @antonkaravikou7716
    @antonkaravikou7716 2 ปีที่แล้ว

    Cool!) thanks

  • @geekaffairs6475
    @geekaffairs6475 3 ปีที่แล้ว

    yayyy

  • @澳贼
    @澳贼 4 ปีที่แล้ว +1

    another bullshit. it's just how it should work, now, they spent a lot time to make a word BDD to look fancy. what a bullshit