On 8 October 2010 14:48, Marnen Laibow-Koser <[email protected]> wrote:
> Colin Law wrote:
>>...
>> I think we are just going to have to agree to differ on this one,
>
> I would rather not do that.  In general, that's a sign that more
> discussion is needed, as one or both of us is probably missing
> something.  Certainly I'm learning a lot from this discussion.
>
> However, I'm perfectly willing to start a new thread for this.

Done

I think I would like to start again as I realise (having been forced
to defend my corner and think more about what I am rabbiting on about)
that it not so much _when_ the models are identified that is the issue
for me but _how_ they are identified.  To go back to your original
suggestion:

> when I
> put together an application, I usually think first about how I want it
> to present itself to the user and what the user should be able to
> accomplish (and write Cucumber scenarios accordingly).  Only as a result
> of making those scenarios reality do I write model classes or anything
> else.

I read into this (possibly incorrectly) that the purpose of the models
is purely to satisfy the scenarios and they are identified by
examining the scenarios and generating a set of models to satisfy
them.  I think that that is too narrow a view to take, particularly
considering that we are in the first phase of a project and we know
there will be many modifications and extensions to the requirements in
the future.

Generally an app is in some sense simulating or mapping things in the
real world (or some conceptual world), users, shopping carts, products
and so on.  I suggest that one should examine the scenarios and
identify the underlying objects in that real world without worrying
too much about the _details_ of the scenarios.  The models then
represent those objects and one can work out how to satisfy the
scenarios using those models.  I believe this should provide a better
base on which to build the app.  Scenarios will be modified and added
to dramatically over time but the underlying objects in the
requirements are less likely to change (I don't mean that their
behaviour will not change, but their existence).  If the
identification of the objects is correct (or optimum or whatever) at
the start then this will minimise the effort in tracking the changing
requirements.

I am still not sure that I am expressing myself very well.

Colin

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to