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?