Fei Ng wrote:Is BDD a must nowadays?
I don't know if it's a must, but I would certainly consider it a Very Good Thing to do since it gets the business, developers, and QA to agree on what the program is supposed to do and how we'll know it's working properly.
Fei Ng wrote:Does it speed up developing time?
Probably. Since the business, devs, and QA have agreed on what the program is supposed to do, including how it will respond to given events, there's less confusion over requirements and should be fewer bugs. You also know if the code you're writing contributes to meeting the requirements or not, so there's less "Gold Plating".
Fei Ng wrote:What if the requirements/Behavior changes? Do you start all over again?
No more so than you do now. Probably less since the time spent working with the business and QA to decide how the program is supposed to respond to different events and inputs tends to make them think more deeply about what they want. This tends to reduce the chances of requirement changes.
The Good News is that even if there are changes to the requirements or behaviors, modifying your BDD code to match the new expectations will show you just where the breakage is, and when it is fixed again.
Hoping this helps,
Burk