Was sind neben Waterfall noch andere plangesteuerte Softwareentwicklungsmethoden?

8

Ich habe gerade Balancing Agility and Discipline gelesen . Abgesehen von dem schlechten Titel stand es einem plangesteuerten Projektteam gegenüber, das PSP / TSP einsetzte, und einem agilen Team, das Extreme Programming einsetzte.

Als die Autoren ein Beispiel für eine plangesteuerte Methodik lieferten, verwendeten sie Personal Software Process / Team Software Process. Obwohl es sich um sofort einsatzbereite Methoden handelt, sind sie auch als Prozess-Frameworks konzipiert und geben letztendlich nur an, welche Arten von Dingen zu tun sind und nicht wie sie zu tun sind, was sie potenziell nützlich macht auch in einer agilen Umgebung. Es ist möglich, agil zu sein und trotzdem die PSP-Prinzipien einzuhalten, und ich bin mit dem TSP nicht vertraut genug, um es mit Sicherheit zu sagen, aber ich verstehe, dass es sehr ähnlich ist.

An einer Stelle im Buch listen sie eine Reihe von Methoden auf und ordnen sie in Bezug auf Agilität ein. Methoden wie Scrum, Lean, Crystal und XP stehen ganz oben. Der untere Bereich (von den meisten bis zu den am wenigsten agilen) besteht aus dem Rational Unified Process, dem Team Software-Prozess, der funktionsgesteuerten Entwicklung, CMMI, Software CMM, dem Personal Software Process und Cleanroom.

Watts Humphrey in PSP: Ein Selbstverbesserungsprozess für Softwareentwickler widmet ein Kapitel der Prozessdefinition und der spezifischen Änderung des Personal Software-Prozesses. Das gemeinsame Thema ist, dass Prozesse vorschreibend (sie sagen, was zu tun ist) und nicht beschreibend (wie es zu tun ist) sind. Ich würde vermuten, dass der TSP sehr ähnlich ist. CMMI wurde auch in Verbindung mit agilen Methoden verwendet, und das SEI hat ein Buch darüber (das ich noch nicht gelesen habe).

Feature-Driven Development wird oft als agiler Ansatz für das Projektmanagement angepriesen, die Autoren entscheiden sich jedoch dafür, ihn als weniger agile Methode einzustufen.

RUP ist ein iteratives Framework. Obwohl ich nicht besonders vertraut damit bin, kann ich es aufgrund der Tatsache, dass es sich um ein Framework handelt, mit SW-CMM, CMMI und PSP / TSP gruppieren, da es entweder als agile oder als plangesteuerte Methodik implementiert werden kann.

Das einzige andere Beispiel, dem das Buch entspricht, dem ich zustimme, ist Cleanroom Software Engineering . Die Schlüsselkomponenten von Cleanroom sind die Verwendung formaler Methoden, statistische Qualitätskontrolle und statistisch fundierte Tests. Ich verstehe nicht, warum diese nicht in einer agilen (iterativen / inkrementellen) Methode verwendet werden konnten, mit zusätzlichem Zeit- und Kostenaufwand.

Um zu verdeutlichen, wonach ich suche, umfasst die Familie der agilen Methoden spezifische Implementierungen einer abstrakten Idee in Form von Scrum und Extreme Programming. Diese realisieren die Konzepte der iterativen und inkrementellen Entwicklung, reagieren auf Veränderungen, Menschen (Einzelpersonen und Teams), liefern häufig funktionierende Software, arbeiten mit dem Kunden zusammen und so weiter. Sie spezifizieren klar Rollen, Artefakte, Besprechungen, Zeitfenster und andere Praktiken und "Scrum machen" oder "Extreme Programmierung machen" bedeutet, das Paket zu nehmen. Trotzdem ermöglichen sie die Anpassbarkeit und die Erstellung neuer Prozesse (aber dann machen Sie nicht "Scrum" oder "XP"). Ich habe das "do X" jedoch nicht gefunden.

Meine Frage: Was sind Beispiele für plangesteuerte Softwareentwicklungsmethoden? Einige der Prozess-Frameworks (PSP / TSP, SW-CMM, CMMI, RUP) ermöglichen ebenfalls eine plangesteuerte oder agile Entwicklung, aber keine ist beschreibend. Aber gibt es wirklich plangesteuerte Methoden, die zum Beispiel direkte Gegenstücke zu Scrum und Extreme Programming sind?

Thomas Owens
quelle
Sie schreiben, dass das Buch "ein plangesteuertes Projektteam, das PSP / TSP einsetzte, und ein agiles Team, das Extreme Programming einsetzt, gegenüberstellte". Ich bin mir ziemlich sicher, dass wir viel Planung für die Implementierung von XP verwenden. Ich bin ein wenig verwirrt anzunehmen, dass XP'er nicht planen. Meine Erfahrung ist anders. Meine zwei Cent.
Manfred
@ John Plan-gesteuerte Methoden konzentrieren sich auf die Anwendung traditioneller Engineering-Techniken und den systematischen Übergang von den Anforderungen bis hin zu einem Lieferprodukt, während die Verifizierung und Validierung schrittweise durchgeführt wird. Sie zeichnen sich durch eine starke Dokumentation und Rückverfolgbarkeit über die gesamte Lebensdauer des Systems aus. Es gibt detaillierte Pläne, Workflows und Arbeitsprodukte (andere Dinge als funktionierende Software).
Thomas Owens

Antworten:

5

Ehrlich gesagt habe ich Zweifel an der Gültigkeit einer Behauptung in einem Buch, das Beweglichkeit und Disziplin gegeneinander aufhebt. Agile Methoden erfordern meiner Erfahrung nach viel mehr Disziplin als andere Arten der Entwicklung.

Das heißt, wenn Sie die Vorteile agiler Prozesse nutzen möchten, müssen Sie die damit verbundenen Aktivierungspraktiken befolgen (siehe Martin Fowlers Artikel Is Design Dead ; er spricht hauptsächlich über XP, dies gilt jedoch für alle Agility- Prozesse in meine Meinung). Das erfordert viel Disziplin.

Um Ihre Frage zu beantworten, denke ich, dass alle wirklich plangesteuerten Methoden Variationen von Waterfall sind, wie z. B. Spiral , das durch mehrere Prototyping-Ebenen entwickelt wird, bevor zu einem Waterfall-Ansatz gewechselt wird, und Cap Gemini SDM , das Waterfall mit sehr viel ist verschiedene Phasen, in denen jede endet, bevor eine andere beginnt.

pdr
quelle
1
Ich stimme zu - ich mag den Vergleich zwischen "agil" und "diszipliniert" nicht. "Agil" im Vergleich zu "plangesteuert" ist viel besser, und ich habe in mehreren Quellen gelesen (obwohl ich keine auf den Kopf stellen kann), dass Agilität engagierte, sachkundige und noch erfahrenere Teams erfordert. noch mehr als alle planbasierten Methoden. Was Ihren letzten Absatz betrifft - das sind immer noch Frameworks. Es gibt viele plangesteuerte Frameworks, aber nichts, was in "Dies ist {Name hier einfügen}" explizit angegeben ist, so wie Sie sagen können: "Dies ist Scrum" oder "Dies ist extreme Programmierung".
Thomas Owens
1
@ThomasOwens: Spirale ist eine Methodik, kein Framework. Sie könnten jedoch einen Punkt über das V-Modell haben. Vielleicht ist Cap Gemini SDM ein besseres Beispiel, obwohl es für mich immer sehr nach Spiral aussieht. en.wikipedia.org/wiki/System_Development_Methodology
pdr
1
Spiral ist viel näher - es definiert klar Phasen und einige Dokumente (Anforderungen, Conops, Entwicklungspläne, Testpläne und -verfahren) und technische Ergebnisse (Prototypen, ein Endprodukt). Ich würde sagen, dass und Cap Gemini SDM viel näher an dem sind, wonach ich suche (könnten Sie Ihrem Beitrag SDM hinzufügen?). +1.
Thomas Owens
1
@ ThomasOwens: Fertig und ersetzt V-Modell.
pdr