I heard about a tool named FitNesse, which is supposed to promote better collaboration between development, testing, and product groups.What are your experiences with it? Does it really improve program quality? Are there any drawbacks to using it?
Does FitNesse improve product quality and collaboration?
productivity;tools;collaboration
FitNesse is an interesting tool.  I think it can work well in some cases, and maybe not so well in others.  The table-driven tests are very good for testing business rules and the like.  If the product group is used to using Excel to communicate requirements, FitNesse is a really good fit.Where I work, we're not really in a business-y environment, but we use FitNesse in a few places to produce executable documentation of some of our external command protocols.  Having the docs and the tests combined in one document ensures that both get maintained well.One thing I really like about FitNesse is the multiple language bindings. Because of this, the tests can be used as-is in the context of a re-write using a new language.  Not a common scenario, obviously, but an interesting one.  The fixture code acts as a shearing layer that allows your code and your tests to stay decoupled.Probably the biggest weakness I see with FitNesse is the lack of tools for maintaining the test suite (refactoring, mass editing, etc).  People are working on those, though.If you decide to try FitNesse, I highly recommend reading anything you can get your hands on by Rick Mugridge (http://www.rimuresearch.com) and Gojko Adzic (http://gojko.net/ and http://fitnesse.info/, including their books.  It's really easy to write unmaintainable, uncommunicative script tests with FitNesse, and these guys will get you on the right path.