John Smart wrote:BDD is not about defining all of the acceptance criteria upfront, but rather discovering them incrementally in collaboration with the client. However, even more predictive ("waterfall"-style) processes can benefit from the automation, communication and feedback aspects of BDD if the specifications are not expected to change too much.
Good point. I think that most anything that encourages direct and clear communication between the client, developers, and testers, is a very good thing - no matter what development process you're using. In addition, the idea of executable specifications means that you're not just getting agreement on behavior, you're also creating documentation that doesn't go out of date (unless you stop running your tests) so it can be trusted and can be used to bring new team members up to speed quickly.
John Smart wrote:BDD used at the coding level can even be considered as an easier way to practice TDD, and can be practiced in almost any SE process.
Using BDD at the class level is a new idea for me, and one that makes me happy to have been involved this week. Thank you, John!
Burk