[rspec-users] features and form filling - going declarative?

Ben Mabey ben at benmabey.com
Fri Nov 7 12:00:00 EST 2008


David Chelimsky wrote:
> On Fri, Nov 7, 2008 at 9:58 AM, David Chelimsky <dchelimsky at gmail.com> wrote:
>   
>> On Fri, Nov 7, 2008 at 9:54 AM, Matt Wynne <matt at mattwynne.net> wrote:
>>     
>>> One technique is to have a single noisy 'declarative' scenario that
>>> explicitly walks around filling things in, then all the rest use more
>>> 'imperative' style steps where most of the detail is buried away.
>>>       
>> You've got those backwards :)
>>
>> declarative: when I fill in the form correctly
>> imperative: when I enter "David" in the "Name" field ....
>>     
>
> Although - maybe we need to reconsider this naming, because you could
> argue that either are declarative, whereas imperative, meaning
> important/urgent, doesn't really convey the explicit nature. I think
> abstract/concrete could work. Maybe general/specific.
>
> Other ideas?
>
>   
To me the words imperative and declarative make sense in the programming 
language context... and we are just applying it to roles instead of 
computers. For example, this is the explanation given in my programming 
languages book[1]:

...declarative languages, in which the focus is on *what* the computer 
is to do, and the imperative languages, in which the focus is on *how* 
the computer should do it.

Now swap out languages with scenarios and computer with user role:

...declarative scenarios, in which the focus is on *what* the role is to 
do, and the imperative scenarios, in which the focus is on *how* the 
role should do it.

So, I don't see the word imperative meaning urgent, I see it meaning 
explicit.  While declarative means the scenario is at a higher level and 
not concerned with exactly how the scenario is implemented (much like 
use cases.)

That said these terms are programming terms so probably aren't the best 
if they are to be customer facing.  I like general/specific.

-Ben



[1] Programming Language Pragmatics by Michael L. Scott


More information about the rspec-users mailing list