On 19 Sep 2008, at 02:00, DyingToLearn wrote:

Hi,

I am still trying to learn how to effectively use BDD. I would like to
know if there is a typical BDD workflow or if it is really just a
question of personal preference.

So far I see the following steps being fairly common:

1. talk with user to establish a few stories and features
2. write plaintext stories or cucumber features (with the user?)
3. write specs for whatever step needs to be wnitten
4. code until specs pass
5. write story/feature steps
6. repeat steps 3-5 until the story/feature passes
7. show the user to confirm that it works the way the user want (and
go back to step 2 if it doesn't)
8. go back to step 1 for new stories/features

This seems to be pretty much the workflow that's evolving for us, though I tend to write the step implementations before I start coding the views, controller, models. (i.e. 5 before 3)/

It's the 'outside-in' model of development that Dan North talks about - driving out all your changes to the code from a real user goal.

Is that how you do things? Should I do it this way? How flexible
should this process be? For example, if the user wants a tiny change,
should I always be so disciplined as to update the story first, then
the specs, and then code?

IMO, you have to be pragmatic - maybe you can just change the spec of a controller to listen for another querystring parameter value and do something different - I don't think that necessarily needs the full ceremony of another feature scenario.


Thanks!
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

cheers,
Matt
----
http://blog.mattwynne.net
http://songkick.com

In case you wondered: The opinions expressed in this email are my own and do not necessarily reflect the views of any former, current or future employers of mine.



_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to