# from Ovid
# on Thursday 27 March 2008 10:52:

>but the example Ward
>Cunningham gave was of a calculator.  I thought the idea was neat, but
>how would I implement it?

What do you need to test that your users need to drive?  How can it be 
expressed in a non-tedious and yet understandable way that makes them 
feel like it is a worthwhile process?  Does that fit the Fit model?

I'm curious about the calculator example.  Where the inputs of 
the "1+1=2" sort?  I can't see a user being interested in driving that.

For the payroll example at fit.c2.com, I would probably have implemented 
the calculation as an engine driven by a declaration of the pay scheme.  
So, the customer-driven input "standard: 40, overtime: 1.5, 
holiday+sunday: 2.0" would accompany the example calcs.  But, if we 
abandoned those simplistic example calculations, the test coverage 
would be more thorough in that it would push some sample time cards 
through the engine and make sure that sundays and holidays were treated 
correctly, etc.

At that point, you're pushing so much data into the test that it has 
become tedious for the user to own (create, manually review) the time 
cards, so you really only want to involve them at the configuration.  
But you're getting much better test coverage (and presumably the engine 
has been thoroughly flexed by feeding it various configs) and not 
writing new code for every variation on a theme.

That is:  give the user ownership of the configuration and make sure 
they understand it without being bored to death.  If they can spell-out 
their business rules directly, that readable logic is probably more 
comforting than a few examples requiring mental math and providing only 
spotty coverage.

So, I can see where Fit could be useful in funnelling data from the 
requirements gathering directly into tests, but I've yet to see an 
example where it would both be tolerated by the users *and* provide 
effective test coverage.  Particularly, the tabular implementation is 
so restrictive that expressing the "user model" of the software might 
not be possible in that form.

I like the concept, but how do I apply it to interactive software (gui 
or web) where you have an initial state, action, and expected result?  
That seems to be a more effective place for involving the user and 
allowing them to verify their expectations, but doesn't fit well into a 
Fit table.

--Eric
-- 
So malloc calls a timeout and starts rummaging around the free chain,
sorting things out, and merging adjacent small free blocks into larger
blocks. This takes 3 1/2 days.
--Joel Spolsky
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to