In my last post I talked about some more in depth techniques you could apply in BDD.
However looking at some peoples responses it made sense to take some steps back and write about what it takes makes me so enthusiastic about BDD.
The reason you should describe your software before writing is answered in this question:
Would you be able to build a house without a building plan?
If you plan to build a house there should be a lot of conversations going on. You yourself have the big picture in your head, but you are going need experts to help with the details. Electricity, plumbing, kitchen and lot more should be taken care of.
Unless you know everything about the project you are working it is actually not different than building a house. BDD enables you to record all the conversations you might have with all experts within their field and actually use that to write the software that matters.