Influential members of the Agile community recently discussed the current state and history of Fit (the original thing, not Fitnesse or other Fit-inspired tools). The conversation took place on Twitter mostly on Tuesday, March 3rd and Wednesday, March 4th. Here is a transcript.
It was kicked off by an interview of Ward Cunningham and James Shore on Hanselminutes where Ward & James were asked whether Fit was dead.
Bob Martin first reacted on Twitter by pointing out that, at any rate, “FitNesse is thriving”, along with Slim, a new system that can be used by Fitnesse as an engine to run the test tables.
Michael Feathers replied that, in his view, Fit was more appropriate as a seed for other works: “Take it, grow it locally, and never commit back.” This seems confirmed by James Shore, a former leader of the Fit project (and a successor to Ward in that role): “Fit core was intentionally resistant to change […] from an organizational perspective”
Interestingly, James believes that both Fit and Fitnesse have “similar flaws, which could be solved by another approach”:
- “Fit flaw #1: maintenance. HTML is hard to maintain and refactor.”
- “Fit flaw #2: Customers. Customers don’t generate the documents, and that was the whole idea.”
- “Fit flaw #3: Programmers. Fit loves domain models and Whole Value. Most programmers don’t. Impedance mismatch.”
This last point is actually seen as a benefit by J.B. Rainberger: “Similar to JUnit, Fit puts positive pressure on programmers. [That said] TDD informs design, but many use JUnit for testing. Fit informs feature design, but many use Fit for testing.” James agrees: “Fit drives the design of the domain layer just as TDD drives separation of concerns.”
JB & James both note that, regardless of the tool itself, they “continue to succeed collaborating with customers with Fit’s table format”, typically by “collaborating with examples on a whiteboard”.
Possibly, the biggest shortcoming (as stated by James & Ward during the interview, but also in twitter by Brian Marick: “I can’t offhand think of any product owner who wrote tests in any format”) is that the assumption that business people would write the tables was flawed. A view not shared by Keith Braithwaite “I’ve had actual users write tests in tables in excel with success”. JB, for one, prefers “Customers help write docs”, reformulated by Elisabeth Hendrickson as “Business stakeholders & implementation team collaborate on articulating expectations.”
Finally, several people including Willem van den Ende pointed to BDD and especially to Cucumber as a better implementation of the same ideas “Cucumber given/when/then steps flow naturally for me, FIT- style tables are optional, I add them later if needed.”
For more details see the following links:
- Details by James Shore on how to use Fit (or not)
- Michael Feathers’ opinion on the code that makes the Java implementation of Fit
- The interview of Ward Cunningham and James Shore on Hanselminutes
I saw part of this debate but missed some other. Thank you very much for the synthesis.
Pingback: links for 2009-03-15 | The Build Doctor
Pingback: Why I use Twitter « Eric Lefevre-Ardant on Java & Agile
Pingback: links for 2009-03-15
Pingback: Is Fitnesse only used as a acceptance test tool based on integration testing? | CL-UAT