Wednesday, February 16, 2011

BDD - Initial Experiences

I've recently discovered BDD or rather there has been an increase in communication about this topic around me - someone mentioned Cucumber at XPManXL!

I found the extremely well written Cuke4Ninja site, and started to discuss Specs more with my colleagues. Jason highlighted that SpecFlow seemed like a good implementation for .Net development.

This all seemed to align with both Gojko Adzic at Agile Yorkshire which I unfortunately missed, but made up for with attending XPManchester where John(no) gave a presentation/discussion about BDD for his Masters... He asked us to implement a Chess Kata using some features which he has developed - these can be downloaded from GitHub.

I spent a bit of time trying to implement the features. My first experience of BDD! I found it quite overwhelming initially with all the specs running. I.e. I had quite a lot of specs/tests running and didn't know where to start.

Retrospectively I should have included a single feature - implemented it till green and then incrementally added features as I went along. This is something I am going to do on my second attempt. I plan to throw away my initial code and start again. Although I'll probably use a similar design I'm interested to see how after my initial attempt how it will differ - will it be better design?

Initial thoughts are that features are a way to have a shared vocabulary between developers and business users. I also think that they are the Acceptance Criteria which are usually written on the back of User Story cards.

I'm also slightly confused at when to start delving deeper from high level features in to say lower level "Behaviours/Features". This I'm sure will become apparent as I spend more time using BDD.

No comments: