Was Agilität ist, weiß selbst Martin Fowler nicht zu definieren. Das sagt er in seinem Blogartikel:
[…] lack of rigorousness is part of the defining nature of agile methods, part of its core philosophy. […] Any attempt to define a rigorous process that can be tested for conformance runs contrary to [the agile] philosophy.
Es sei also vergeblich, einen rigorosen Prozess agilen Vorgehens definieren zu wollen. Das entspräche nicht der Philosophie der Agilität, dem agilen Denken.
Ich bin erschüttert.
Was für eine Bankrotterklärung der Agilität! Ausgesprochen von einem Unterzeichner des agilen Manifests.
Damit stellt sich die Agilitätsbewegung das Zeugnis einer Pseudowissenschaft aus: Sie entzieht sich der Falsifizierbarkeit und macht sich vom Urteil von “Geweihten” abhängig. Denn:
- Wo keine Definition, da kein Vergleich der Realität mit einer Definition und also keine (Miss)Erfolgsmessung. Behauptet jemand, agil zu arbeiten, vermisst jedoch den erhofften Erfolg, dann kann nicht überprüft werden, ob er denn überhaupt und wirklich agil arbeitet. Das erschwert die Implementation agilen Vorgehens. Und das leistet andererseits der Leugnung von Misserfolgen bei agilem Vorgehen Vorschub.
- Auch wenn es an einer Definition der Agilität mangelt, ja – wie Fowler sagt - mangeln muss, können Martin Fowler und “der erfahrene Praktizierer” dennoch erkennen, ob agil vorgegangen wird. Ohne Definition von Agilität, bedeutet das allerdings eine Kette von “Weihungen” ausgehend von Martin Fowler (oder vielleicht einem anderen Unterzeichner des agilen Manifests). Denn wie sonst könnte jemand zum “erfahrenen Praktizierer” werden? Ohne Definition kann ja niemand selbst feststellen, ob er/sie agil arbeitet.
Definitionslosigkeit und “I know it when I see it” [Zitat Fowler] sind nun leider die besten Voraussetzungen für Fundamentalismus, Dogma, Abgeschlossenheit, Kritikimmunität.
Nicht, dass wir davon in den vergangenen Jahren nicht schon Anzeichen gesehen hätten. Die Diskussionen mit Agilitätsvertretern konnten immer schon, hm, “intensiv” werden… Aber dass nun der Martin Fowler dafür die Rechtfertigung liefert… Nein, das kann ich kaum fassen.
Was sollen denn jetzt Laien von der Softwareentwicklung denken? Was sollen angehende Informatikstudenten von der Agilität denken? Ich kann das schenkelklopfende Lachen in Universitäten wie Chefetagen schon hören. “Was haben sich die Softwarefuzzis da denn ausgedacht? Meinen, mit dieser agilen Mode etwas besser zu machen – und wissen dann nicht mal zu sagen, was es ist? [ROFL]”
Die Alternative: Wissenschaftlichkeit
Wenn Martin Fowler es nur schwer fiele, Agilität bzw. agiles Vorgehen zu definieren, dann wäre ich ganz bei ihm. Vom agilen Manifest bis zu einer Definition und dann auch noch der Messung des Erfolges von Implementationen dieser Definition… das ist ein weiter Weg.
Doch auch wenn es sich schwierig ausnimmt, sollte man es nicht unversucht lassen, glaube ich. So ist das halt mit der Wissenschaftlichkeit.
Nur mit einem wissenschaftlichen Ansatz kann die Agilität (oder auch Lean usw.) hoffen, jenseits von Glaubensbekenntnissen und Hype und anekdotischen Erfolgen ernst genommen zu werden. All die, auf die sich auch Agilisten gern berufen – von Turing über Parnass bis Kay – sind Wissenschaftler (gewesen). Es stünde der Agilität daher gut zu Gesicht, sich vertrauensvoll in deren Tradition zu stellen. Das heißt, die Agilitätsbewegung müsste ihre Methode oder Philosophie als Hypothese anerkennen.
Denn mehr ist es nicht, was das agile Manifest und alles, was zur Agilität geschrieben wurde, darstellt: eine bloße Behauptung.
Eine wie auch immer (nicht) definierte Methode und Philosophie steht im Raum; ein mehr oder weniger schwammiges Erfolgsversprechen ist daran geknüpft. Und das gilt es nun auf Wahrheit zu überprüfen. Ganz ergebnisoffen. So ist das mit der Wissenschaftlichkeit.
Was immer Agilisten auch behaupten mögen, ist ja ok. Da gibt es keine Grenzen. Das mag grob oder fein sein, konzeptionell oder technologisch, abstrakt oder konkret… Egal. Nur steckt in der Behauptung eben noch keine allgemein akzeptierbare Wahrheit. Die muss erst in einem Diskurs und durch Experimente entwickelt werden. Dazu gehört natürlich eine Messlatte. Das ist eine klare Definition inkl. Ergebniserwartung. Die müssen vorliegen, bevor ein Experiment gemacht wird.
Und dann… dann schaut man, ob die Definition im Experiment implementiert wurde und das vorhergesagte Ergebnis eingetreten ist. Vielleicht hat es geklappt, vielleicht nicht. Dann ist Ursachenforschung zu betreiben. Dabei kann herauskommen, dass die Hypothese angepasst werden muss. Und vielleicht kommt dadurch heraus, dass die Agilität nicht so einfach heilsbringend ist, wie sie gern möchte. Es kann also passieren, dass auch Agilisten etwas lernen müssen.
Aber ist das nicht normal? Ist das nicht im Grunde im Sinne der Agilität? Ach so, das kann man nicht so genau wissen. Denn es gibt ja keine allgemeine Definition.
Fazit
Ich halte ja eine ganze Menge von der Agilität. (Jedenfalls von der, für die ich meine eigene kleine Definition habe. Ob und inwiefern die allerdings mit dem “Gefühl” von Martin Fowler übereinstimmt, weiß ich natürlich nicht. Ich bin von ihm nicht “geweiht”.) Aber ich sehe eine große Gefahr für die Agilität heraufziehen, wenn Martin Fowlers Position allgemein akzeptiert wird. Der Dogmatisierung ist dann nichts mehr entgegen zu setzen. Und das würde sie diskreditieren.
“Die Agilität” täte aus meiner Sicht also gut daran, alle Anzeichen von Immunisierung und Unwissenschaftlichkeit zu zerstreuen. Das mag weh tun, wenn man sich denn endlich mal hinsetzen muss für eine Definition… aber es hilft halt nichts. Auch im Definitionsschmerz kann eine wertvolle Erkenntnis stecken.
PS: Hm… Nun kann es natürlich sein, dass Martin Fowler & Co nicht daran interessiert sind, die Agilität wissenschaftlich zu machen oder einfacher: überprüfbar zu gestalten. Wenn das so ist, na, dann müssen sie das nicht tun. Nur dürfen sie sich dann aber auch nicht darüber beklagen, dass die Ergebnisse gemischt ausfallen und Akzeptanz auf der Strecke bleibt. Wer nicht genau sagen kann, was er meint, der kann eben auch nicht verstanden werden.
Dasselbe gilt übrigens für die Objektorientierung, würde ich sagen. Oder auch SOA. Mit ihnen stehen auch Hypothesen im Raum. Versprechen wurden mehr oder weniger genau, in jedem Fall blumig gegeben. Die Überprüfung allerdings, die fällt schwer.
PPS: Und was ist mit der Clean Code Developer Initiative? Verspricht die nicht auch etwas? Stellt sie nicht auch eine Hypothese dar? Klar. Aber erstens scheuen wir uns bei CCD nicht vor eine Definition. Schon gar nicht glauben wir, dass es CCD inhärent sei, einer Definition zu widerstehen. Zweitens scheint uns die Hypothese von CCD schon recht klar:
- Das Wiki definiert, was man tun muss, um ein CCD Experiment zu starten: Folge den Prinzipien, setze die Praktiken ein. Je mehr, desto besser. Ob das passiert, lässt sich auch von “Ungeweihten” nachvollziehbar feststellen :-)
- Das Wiki formuliert (implizit) als Hypothese: Die Korrektheit, Evolvierbarkeit und Produktionseffizienz steigen, wenn man den Prinzipien und Praktiken folgt. Auch das lässt sich von “Ungeweihten” nachvollziehbar feststellen :-)
Sicherlich könnte die Hypothese noch klarer werden. Wer dazu beitragen will, ist herzlich eingeladen. Grundsätzlich empfinden wir uns aber schon auf dem wissenschaftlichen Weg. Und wenn wir CCD damit “angreifbar” (falsifizierbar) machen, dann ist das völlig ok. Wir stellen das Ziel “bessere Software” über den Weg.