BDD is an agile methodology that focuses on defining desired software behaviors and outcomes through user stories and scenarios. Stories are written collaboratively with stakeholders using a ubiquitous language. Teams practice outside-in development by writing automated tests derived from stories before writing code. Stories are pulled from a prioritized backlog for development in short iterations. Automated tests provide feedback and documentation. Reports are generated for stakeholders.