# 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
---------------------------------------------------