Executable requirements has always been a holy grail in our business. We know that it is a hard problem to solve, but there are attempts to get a little bit closer, at least if we stay within the realms of functional requirements - the behaviour of our application. As you may or may not know, BDD (Behaviour-Driven Development) is an interesting way to get closer to that holy grail.
In the Ruby world, BDD just got a bit easier. rspec has existed for a long time now, and its target is the “code-level” of BDD - the same level that the xUnit-frameworks target, but with a different style and wording. But now, rspec got a new cousin. Yesterday, Dan North went public with rbehave, which targets the application level of BDD, the level where stories and scenarios are the main things and where the BDD “given / when / then”-wording is used.
rbehave and rspec now makes a very interesting combination. We can now communicate about (executable) requirements with stakeholders and (executable) design between developers. And - of course - all the (executable) requirements and all the (executable) design can also play the role of executable tests.
As a side-note about rspec, an important change was made in March. rspec has always been a nice piece of work, but I personally had trouble liking the language that was used before (you may have seen the context / specify wording?), a language that didn’t talk to me at all. However, that was changed as you can see on David Chelimsky’s blog - and I really do like the new wording a lot.
I certainly look forward to see how rspec and rbehave will be used together in the Ruby community.