Nun, die direkte Antwort auf Ihre Frage wäre Mu. Ich fürchte, es gibt einfach nicht genug Details, um eine fundierte Vermutung anzustellen, ob Sie aufhören sollten oder nicht.
Das einzige, worüber ich ziemlich positiv bin, ist, dass das Maß an Agilität von den Kunden- / Marktbedürfnissen bestimmt werden sollte (über die Sie keine Informationen angegeben haben).
- Als IDE-Benutzer bin ich beispielsweise sehr glücklich, ein- oder zweimal im Jahr ein Upgrade auf eine neue Version durchzuführen, und habe es nie eilig, dies zu tun. Dh wenn ihr Release-Zyklus 3 Monate ( 12 Wochen ) beträgt, bin ich damit vollkommen zufrieden.
Andererseits kann ich mir leicht vorstellen, dass ein Finanzhandelsunternehmen bankrott geht, wenn es mehr als einen Monat dauert, bis sich seine Software an die Marktveränderungen anpasst - ein Testzyklus von 12 Wochen wäre in diesem Fall ein Weg zur Hölle. Nun - was sind Ihre diesbezüglichen Produktbedürfnisse?
Eine andere zu berücksichtigende Sache ist, welches Qualitätsniveau erforderlich ist, um Ihre Kunden- / Marktanforderungen zu erfüllen?
- Ein Beispiel: In einem Unternehmen, in dem ich einmal gearbeitet habe, mussten wir feststellen, dass ein Produkt, das von einem Softwarehersteller lizenziert wurde, über einige neue Funktionen verfügt. Ohne dieses Feature haben wir ziemlich stark gelitten, also wollten wir wirklich, dass sie agil sind und innerhalb eines Monats ein Update liefern.
Und ja, sie schienen agil zu sein und ja, sie haben dieses Update in einem Monat veröffentlicht (wenn ihr QS-Zyklus 12 Wochen beträgt, haben sie es wahrscheinlich einfach übersprungen). Und unser Feature hat sehr gut funktioniert - hätten wir uns wirklich darüber freuen sollen? Nein! Wir haben einen Fehler in der Showstopper-Regression in einigen Funktionen entdeckt, der zuvor einwandfrei funktionierte. Daher mussten wir mit einer älteren Version hartnäckig leiden.
Ein weiterer Monat verging - sie veröffentlichten eine weitere neue Version: unser Featurewar da, aber der gleiche Regressionsfehler war auch da: Auch hier haben wir kein Upgrade durchgeführt. Und noch einen Monat und noch einen.
Am Ende konnten wir nur ein halbes Jahr später so viel für ihre Agilität aufrüsten.
Schauen wir uns diese 12 Wochen etwas genauer an .
Welche Optionen haben Sie in Betracht gezogen, um den QS-Zyklus zu verkürzen? Wie Sie aus dem obigen Beispiel ersehen können, führt ein einfaches Überspringen möglicherweise nicht zu den erwarteten Ergebnissen. Daher sollten Sie besser agil sein und verschiedene Lösungsansätze in Betracht ziehen .
Haben Sie zum Beispiel überlegt, wie Sie die Testbarkeit Ihres Produkts verbessern können?
Oder haben Sie eine Brute-Force-Lösung in Betracht gezogen, um einfach mehr QA einzustellen? So einfach es auch aussieht, in manchen Fällen ist dies tatsächlich der richtige Weg. Ich habe gesehen, wie das unerfahrene Management versucht hat, Probleme mit der Produktqualität zu beheben, indem blindlings immer mehr leitende Entwickler eingestellt wurden, bei denen nur zwei durchschnittliche professionelle Tester ausreichen würden. Ziemlich erbärmlich.
Das letzte, aber nicht das letzte - ich denke, man sollte sehr agil sein, wenn es um die Anwendung agiler Prinzipien geht. Ich meine, wenn die Projektanforderungen nicht flexibel sind (stabil oder sich langsam ändern), warum dann die Mühe machen? Ich habe einmal beobachtet, wie das Top-Management Scrum zu Projekten gezwungen hat, auf die es sehr gut ankam. Was für eine Verschwendung. Es gab nicht nur keine Verbesserungen bei der Bereitstellung, sondern Entwickler und Tester waren auch alle unzufrieden.
Aktualisierung auf der Grundlage von Erläuterungen in den Kommentaren
Für mich ist es einer der wichtigsten Teile von Agile, am Ende jedes Sprints eine versandfähige Version zu haben. Das impliziert mehrere Dinge. Zunächst muss ein Testlevel durchgeführt werden, um sicherzustellen, dass keine Showstop-Bugs auftreten, wenn Sie glauben, dass Sie das Build für einen Kunden freigeben könnten ...
Lieferbare Version, wie ich sehe. Hm. Hmmm. Erwägen Sie, Ihrem Agile-Cocktail ein oder zwei Spritzer Lean hinzuzufügen . Ich meine, wenn dies kein Kunden- / Marktbedürfnis ist, dann würde dies nur eine Verschwendung von (Test-) Ressourcen bedeuten.
Ich sehe nichts Verbrecherisches darin, Sprint-End-Release als nur einen Kontrollpunkt zu behandeln , der das Team zufriedenstellt.
- dev: Ja, das sieht gut genug aus, um es an Tester weiterzugeben. QA: Ja, das sieht für den Fall gut genug aus, wenn weitere Versandtests erforderlich sind - solche Sachen. Team (dev + QA) ist zufrieden, das wars.
... Der wichtigste Punkt, den Sie angesprochen haben, war das Ende Ihrer Antwort in Bezug auf die Nichtanwendung von Agilität, wenn die Anforderungen nicht agil sind. Ich denke, das ist genau richtig. Als wir anfingen, agil zu arbeiten, wurde es angewählt, und die Umstände ergaben einen Sinn. Aber seitdem haben sich die Dinge dramatisch verändert und wir halten an dem Prozess fest, in dem es möglicherweise keinen Sinn mehr ergibt.
Du hast es genau richtig. Auch von dem, was Sie beschreiben, sieht es so aus, als wären Sie zum Status gelangt (Team- / Management-Reife und Kundenbeziehung), sodass Sie anstelle von Scrum eine regelmäßige iterative Modellentwicklung verwenden können. Wenn ja, dann könnten Sie auch daran interessiert sein, dass sich nach meiner Erfahrung in Fällen wie diesem regulären iterativen Verfahren produktiver anfühlte als bei Scrum. Viel produktiver - es gab einfach so viel weniger Overhead, es war einfach so viel einfacher, sich auf die Entwicklung zu konzentrieren (damit sich die Qualitätssicherung auf das Testen konzentriert).
- Normalerweise denke ich an Ferrari (als reguläre Iteration) und Landrover (als Scrum).
Wenn Sie auf einer Autobahn fahren (und Ihr Projekt scheint diese Autobahn erreicht zu haben ), schlägt Ferrari die Hölle vor Landrover.
Es ist das Gelände, auf dem man keinen Sportwagen braucht - ich meine, wenn Ihre Anforderungen unregelmäßig sind und / oder wenn die Teamarbeit und die Managementerfahrung nicht so gut sind, müssen Sie sich für Scrum entscheiden - einfach, weil Sie versuchen, regelmäßig zu fahren festgefahren - wie Ferrari im Gelände festgefahren ist.
Unser vollständiges Produkt besteht wirklich aus vielen kleineren Teilen, die alle unabhängig voneinander aufgerüstet werden können. Ich denke, unsere Kunden sind sehr bereit, diese kleineren Komponenten viel häufiger zu aktualisieren. Es scheint mir, dass wir uns vielleicht darauf konzentrieren sollten, diese kleineren Komponenten am Ende der Sprints freizugeben und zu testen ...
Oben klingt nach einem guten Plan. Ich habe einmal in einem solchen Projekt gearbeitet. Wir haben monatliche Releases mit Aktualisierungen in kleinen risikoarmen Komponenten ausgeliefert.
- Eine Sache, die Sie bei dieser Strategie berücksichtigen sollten, ist eine überprüfbare Bestätigung, dass Änderungen an den erwarteten Stellen lokalisiert werden. Selbst wenn dies bis zum bitweisen Dateivergleich für Komponenten reicht, die sich nicht geändert haben, sollten Sie es versuchen, sonst wird es nicht ausgeliefert. Es ist die Qualitätssicherung, die für die Veröffentlichungsqualität verantwortlich ist, nicht wir Entwickler.
Es ist das Problem des Testers, dafür zu sorgen, dass unerwartete Änderungen nicht übersehen werden - denn ehrlich gesagt, als Entwickler habe ich genug andere Dinge, um die ich mich sorgen muss. Das ist mir wichtiger. Und deswegen brauchen sie (Tester) wirklich einen soliden Beweis dafür, dass die Dinge unter Kontrolle sind, mit der Freigabe, die sie testen, um sie zu versenden.