Ich habe zwar nicht die größte Erfahrung mit SCRUM, aber die allgemeine Regel ist, dass, wenn SCRUM nicht so gut funktioniert, wie es sollte, es in der Regel daran liegt, dass der Sprint zu fokussiert ist und das Team viele Aufgaben hat, die über den Sprint hinausgehen und nicht berücksichtigt werden. Diese Aufgaben werden dann vom Team innerhalb des Scrums als lästig empfunden und das Scrum wird von den Außenstehenden als lästig empfunden.
Wir haben SCRUM noch nicht in Gänze ausprobiert, aber ich habe hier einige Erfahrungen mit verschiedenen Möglichkeiten der Umsetzung gemacht, und die besten Ergebnisse wurden erzielt, wenn das Team Mitarbeiter aus vielen Abteilungen umfasste (Test, QA, Implementierung, Entwicklung, Architektur, Marketing). Das bedeutet, dass diese Personen nicht Vollzeit im Team sind, aber die Tatsache, dass ihnen Aufgaben im Rahmen des aktuellen Projekts zugewiesen werden, bedeutet, dass sie in der Regel eher bereit sind, die Zeit dafür aufzuwenden.
Der nächste große Vorteil ist, dass es möglich ist, einen gewissen Zeitpuffer für Unbekanntes, wie z. B. eine ungewollte, aber kritische Unterstützungsleistung, einzuplanen. Wenn diese auftreten, wird ein kleineres Team gebildet, das sich vorübergehend vom Haupt-Scrum abspaltet, um das Problem zu lösen.
Schließlich sind Dinge wie Installationen, Konfigurationen usw. Teil des Scrums und werden als solche mit ihm abgeglichen.
Ein weiterer Ansatz, den ich als Nächstes ausprobieren werde, besteht darin, die Idee so zu erweitern, dass ich anstelle des Ansatzes "ein Scrum für alle" kleinere Teams für jeden spezifischen Bedarf einrichten werde. Das Hauptproblem dabei ist, dass nicht viele Leute die Rolle des Scrum-Masters übernehmen können, also ist es im Moment eher eine Frage von Huhn und Ei.
Ganz allgemein habe ich hier SCRUM verwendet, aber ich halte mich nie an die Regeln. Ich betrachte diese Techniken und Ansätze als Ideenfundus, aus dem ich schöpfen und mit dem ich experimentieren kann, um die bestmögliche Lösung für unsere Bedürfnisse zu finden. Damit dieses Experimentieren funktioniert, muss man manchmal subversiv vorgehen (man macht Scrum, aber man formalisiert nicht, dass man es macht). Ich finde, dass dies der beste Weg ist, um sie für neue Ansätze zu gewinnen und den inhärenten Widerstand gegen Veränderungen, mit dem wir immer konfrontiert werden, zu überwinden.
Auf diese Weise entwickelt sich der Arbeitsablauf auf natürliche Weise in Richtung Scrum-XP-agile-TDD und bringt sie langsam dazu, die schreckliche Kaskade, in die sie so verstrickt sind, zu vermeiden. Mit der Zeit werden sie hoffentlich erkennen, dass das Gras auf meiner Seite des Zauns viel grüner ist :-)