Ich bin ein bisschen ein Befürworter der Behavior Driven Development-Methodik (auch bekannt als BDD). Ich wende BDD seit einigen Jahren an und habe StoryQ als mein bevorzugtes Framework bei der Entwicklung von DotNet-Anwendungen übernommen. Obwohl ich seit vielen Jahren Unit-Tests durchführe und zuvor zu einem Test-First-Ansatz übergegangen bin, habe ich festgestellt, dass die Verwendung eines BDD-Frameworks viel mehr Wert bringt, da meine Tests die Absicht der Anforderungen relativ gut erfassen Klares Englisch in meinem Code und weil meine Tests mehrere Zusicherungen ausführen können, ohne den Test zur Hälfte zu beenden - das heißt, ich kann auf einen Blick sehen, welche spezifischen Zusicherungen bestanden / nicht bestanden wurden, ohne zu debuggen, um dies zu beweisen.
Dies war wirklich die Spitze des Eisbergs für mich, da ich auch festgestellt habe, dass ich sowohl Test- als auch Implementierungscode gezielter debuggen kann, was dazu führt, dass meine Produktivität erheblich gestiegen ist und ich mehr kann Stellen Sie leicht fest, wo ein Fehler auftritt, wenn ein Problem aufgrund der Ausgabe, die in die Build-Protokolle gelangt, bis zum Integrations-Build reicht. Darüber hinaus verfügt die StoryQ-API über eine schöne, flüssige Syntax, die leicht zu erlernen ist und auf außerordentlich viele Arten angewendet werden kann, ohne dass externe Abhängigkeiten erforderlich sind, um sie zu verwenden.
Mit all diesen Vorteilen würden Sie es für einfach halten, das Konzept dem Rest des Teams vorzustellen. Leider zögern die anderen Teammitglieder, sich StoryQ überhaupt anzusehen, um es richtig zu bewerten (geschweige denn die Idee, BDD anzuwenden), und haben sich gegenseitig davon überzeugt, zu versuchen, eine Reihe von StoryQ-Elementen sogar aus unserem eigenen Kerntest-Framework zu entfernen obwohl sie ursprünglich die Verwendung von StoryQ unterstützten und obwohl der Code, den sie entfernen möchten, keinen Einfluss auf einen anderen Teil unseres Testsystems hat. Dies würde meine Arbeitsbelastung insgesamt erheblich erhöhen und widerspricht wirklich dem Strich, da ich durch praktische Erfahrung davon überzeugt bin, dass es eine bessere Möglichkeit ist, in unserer speziellen Arbeitsumgebung auf Test-First-Weise zu arbeiten, und nur zu einer höheren führen kann Verbesserungen in der Qualität unserer Software, wenn ich ' Wir fanden es einfacher, zuerst mit BDD am Test festzuhalten. Um dies weiter zu verdeutlichen, sind die meisten Unit-Tests, die wir durchgeführt haben, in der Regel ziemlich spröde und schwer zu warten. Dies ist ein Überbleibsel aus Jahren schlecht angewandter Tests, in denen Entwickler aufgrund ihrer Zurückhaltung, sich an einen testgetriebenen Prozess zu halten, auf alte Gewohnheiten zurückgreifen und Führen Sie alle Tests am Ende des Projekts durch (dieselben Personen behaupten, agil zu sein!).
Die Frage lautet also wirklich:
- Mit welchen Argumenten kann ich wirklich klar machen, dass es für dieses Team besser wäre, StoryQ zu verwenden oder zumindest die BDD-Methodik zu übernehmen?
- Können Sie mich auf anekdotische Beweise hinweisen, die ich verwenden kann, um mein Argument zu unterstützen, BDD als unsere Standardmethode der Wahl zu übernehmen?
- Welche Gegenargumente, die Sie sich vorstellen können, könnten darauf hindeuten, dass mein Wunsch, das Team zur Einführung von BDD zu ermutigen, falsch sein könnte? Ja, ich bin froh, dass ich mich als falsch erwiesen habe, vorausgesetzt, das Argument ist stichhaltig.
HINWEIS : Ich befürworte nicht, dass wir unsere Tests vollständig umschreiben, sondern einfach damit beginnen, für alle zukünftigen Testarbeiten auf eine andere Art und Weise zu arbeiten, und vorzugsweise in der Art und Weise, wie wir unsere Kunden einbeziehen.
Und für diejenigen unter Ihnen, die mehr über BDD erfahren möchten, können die folgenden Links hilfreich sein:
- http://dannorth.net/introducing-bdd/
- http://en.wikipedia.org/wiki/Behaviour_driven_development
- http://behaviour-driven.org/Introduction
Für diejenigen, die an weiteren Details interessiert sind, sind wir ein kleines 4-köpfiges Team, das an ungefähr 5 großen Projekten arbeitet. Der "Pilotversuch" für BDD dauerte zunächst etwa zwei Monate, gefolgt von einem weiteren Zeitraum von etwa vier Monaten. Das Team akzeptierte, dass ich weiterhin so arbeiten sollte und ihre eigenen Versuche machen sollte. Ich bin seit ungefähr 2 Jahren BDD-ing, seit der Prozess beendet ist, während die anderen sehr gut darin geworden sind, das Problem zu lösen. Anstatt eine "Konfrontation" über das Thema zu erzwingen, suche ich nach Möglichkeiten, das Team sanft davon zu überzeugen, sich von seinen kollektiven Hintergründen zu lösen und sich die Zeit zu nehmen, ihren Beitrag zu leisten.