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