Ich denke, es ist wahr, in einigen Umgebungen wird Agile als Ausrede für keine Disziplin verwendet. Das eigentliche Problem ist, dass wir die Methodik aus den Augen verloren haben. Persönlich bin ich der Meinung, dass die Methodik ein architektonisches Problem in dem Sinne ist, dass die Architektur des Systems die nicht funktionalen Qualitätsattribute berücksichtigen soll. Die Methodik sollte einige dieser Attribute berücksichtigen (Wartbarkeit, Entwicklungsproduktivität, Wissenstransfer, et al.)
Das Betrachten der Methodik als Kontrolle für die Prozessattribute impliziert eine Reihe von Dingen: 1) Ohne Metriken können wir die Effektivität einer Methodik nicht mit einer anderen vergleichen. 2) Es muss eine aktive Entscheidung darüber getroffen werden, welche Attribute wichtig sind (Lieferzeit vs. Code) Qualität versus Wissenstransfer).
Ohne Metriken und ein konkretes Ziel zu haben, wählen wir einfach eine Methode als unsere "magische Feder", die es uns ermöglicht, Software zu liefern, wenn wir uns daran halten.
Jetzt sprechen die Neinsager von Agile, XP, Scrum usw. über die Fragilität dieser bestimmten Kategorie von Methoden. Das Argument lautet: Warum sollte eine Methodik angewendet werden, die von einer Person, der es an Disziplin mangelt, sabotiert werden kann, um alle Regeln einzuhalten? Die Frage ist richtig. Dies ist jedoch das Symptom und nicht die Ursache. Wenn ein genauer und aussagekräftiger Satz von Prozessmetriken definiert, getestet und zeitnahes Feedback gegeben wird, werden wir meiner Meinung nach feststellen, dass die jeweilige Methodik wenig mit Erfolg zu tun hat. (Anekdotisch gesehen habe ich erfolgreiche Projekte mit einer Vielzahl von Methoden gesehen, und doppelt so viele scheitern mit denselben Methoden.)
Also, was sind die Metriken? Sie variieren von Projekt zu Projekt, Team zu Team und von Zeit zu Zeit. Nützlich, wenn der Liefertermin wichtig ist. Eine, die ich persönlich verwendet habe, ist die Fähigkeit und Qualität zu schätzen. Die meisten Entwickler können Aufgaben, die eine Woche oder weniger dauern, genau einschätzen. Daher besteht ein Ansatz darin, das Projekt eine Entwicklerwoche lang in Aufgaben zu unterteilen und nachzuverfolgen, wer die Schätzung vorgenommen hat. Im Laufe des Projekts können sie ihre Schätzungen ändern. Wenn eine Aufgabe abgeschlossen ist und die Abweichung mehr als 10% (1/2 pro Tag) beträgt, wird dies wie ein Fehler behandelt. Ermitteln Sie, warum die Schätzung deaktiviert war (dh eine Datenbanktabelle wurde nicht berücksichtigt) Korrekturmaßnahme (dh beziehen Sie den DBA in die Schätzung ein), und fahren Sie dann fort. Mit diesen Informationen können wir Kennzahlen erstellen, z. B. Anzahl der geschätzten Fehler pro Woche, Anzahl der Fehler pro Entwickler,
Na und? Dann kommen die Methoden ins Spiel. Wenn Sie ein Vorhersagemodell haben, das die Prozessqualitäten nicht erfüllt, können Sie einen Aspekt der Methode hinzufügen oder entfernen und sehen, wie sich dies auf Ihr Modell auswirkt. Zugegeben, niemand möchte aus Angst vor dem Scheitern mit einem Entwicklungsprozess spielen, aber wir scheitern bereits mit einer konstant hohen und vorhersehbaren Rate. Indem Sie individuelle Änderungen vornehmen und das Ergebnis messen, stellen Sie möglicherweise fest, dass Agile die perfekte Methode für Ihr Team ist. Sie können jedoch auch RUP, Wasserfall oder eine Vielzahl von Best Practices als ideal erachten.
Mein Vorschlag ist also, sich keine Gedanken mehr über den Prozess zu machen, Überprüfungen durchzuführen, die für unsere Entwicklungsziele relevant sind, und mit verschiedenen Techniken zu experimentieren, um diesen Prozess zu verbessern.