Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I think I'll go for option A.</p> <p>The thing is that BDD scenarios must serve as documentation of the system.</p> <p>So if a non technical wants to know how your discount system is working (A business guy, a tester or someone from the customer support team), they surely would like to know what it means to have a high volume of item and what it is the applied discount. And they would not want to have to go in the plumbing code to get this information back.</p> <p>I think this information is important and can not be hidden from the reader.</p> <p>Another benefit is that it will allow for a non developer (a tester for example) to write new scenarios and check what will happen if there are 1 item in the cart or 100 items.</p> <p>When you get too much abstract about thing, it gets harder to apply deliberate discovery. So with a scenario as in Option B, you loose the opportunity to ask your self these questions:</p> <ul> <li>What happen if we have more than 50 items like 100 items is there any other discount available</li> <li>What happen if we have 1 item, surrely we need to not apply a discount or should we apply a discount based on the total price of the cart instead of the number of items in it, someone buying only one really expensive item should benefit a discount too ?</li> <li>is 10% the only available type of discount, do we have for example fixed amount discounts ? Do we have more complex discount strategies ?</li> </ul> <p>When the business variable are visible, you can play around with them and figure out stuff that you may have forgotten or think about new interesting (or not) features.</p> <p>As a general rule, I'd hide what it does not matter to know in a scenario and in that case the number of items and the applied discount value do really matter to the reader.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload