This document discusses Behavior Driven Development (BDD) as an evolution of Test Driven Development (TDD) that focuses on writing specifications and documentation in a user-centric way. BDD helps developers understand where and what to test by focusing tests around user stories and specifying behaviors for different contexts rather than just asserting outcomes. Examples are given demonstrating how to write BDD specifications for a Stack data structure focusing on behaviors for different contexts like an empty stack or full stack. Tools for implementing BDD with languages like JBehave, JDave, and Instinct are also mentioned.