Ich bin über den RailsCast #155 von dem immer wieder großartigen Ryan Bates auf Cucumber aufmerksam geworden. Cucumber ist eine Bibliothek für Behavior-Driven-Development (BDD). BDD ist mit Test-Driven-Development (TDD) vergleichbar, nur werden hier nicht die Anforderungen an das System über Tests definiert, sondern über Szenarien, die noch näher am Benutzer bzw. Kunden sind.
Cucumber ermöglicht eine natürlichsprachliche Spezifikation der Software, die Szenarien sind sehr einfach zu schreiben und können gut auch von Kunden oder Benutzern verstanden werden.
Gleichzeitig führt Cucumber den Programmierer durch den Entwicklungsprozeß und forciert eine stark fokussierte Entwicklung. Unnötige Komplexitäten können so gut vermieden werden, ganz nach dem Motto “You ain’t gonna need it”.
Rails-Anwendungen können sehr gut mit Webrat, einem headless Browser, getestet werden. Da ich im Moment an einer REST API bastle und die bei Webrat mitgelieferten Steps, das sind die einzelnen Schritte die nach und nach von Cucumber ausgeführt werden, das nicht unterstützen, hier einfache Restful Steps die auch auf Webrat basieren.
Es kommt ab und an vor, dass ich mich mit kleinen Gruppen von Leuten auf ein bestimmtes Vorgehen einigen möchte. Auf der Arbeit wird das dann meistens per Email gemacht. Jemand schreibt einen Vorschlag an alle wie vorgegangen werden soll und dann kommt es zu einer Diskussion.
Allerdings geht meistens nach einer gewissen Zeit der Überblick verloren, wer was vorgeschlagen hat und wer welchem Vorschlag zugestimmt hat.
Um das zu vereinfachen habe ich ein kleines Projekt gestartet: Discuss!
Dabei wird nicht verlangt sich einzuloggen, ein neuer Diskussionthread kann sehr schnell erstellt und mit anderen Leuten geteilt werden.