Definierte Softwareentwicklungsprozesse
Um die Softwareentwicklung managen (Zeit/Termin/Kosten) und die Qualität garantieren
zu können, braucht man Vorgehensmodelle für verschiedene Aufgaben.
Traditionelle Methoden/Softwareentwicklungsprozesse
- V-Modell
- Staatliche Projekte werden in Deutschland nach dem V-Modell abgewickelt
- CMMI Capability Maturity Model Integration der Software Engineering Institute der Carnegie Mellon University
- beschreibt den Reifegrad von Organisationen
Kritik
- Man kann von diesen Prozessen viel lernen.
- Es werden viele Dokumente produziert, die oft nicht gelesen werden
- Das Vorbild sind die anderen Ingenieurwissenschaften. Diese haben eine Natur gegenüber, die Gesetzmässigkeiten folgt, die sich nicht ändern.
Je nach Anwendungsgebiet und Ansprechspartner und Machtverhältnissen und fortschreitenden Erkenntnissen können sich aber die Anforderungen ändern. Hier ähnelt Softwareentwicklung dann eher einer Designwissenschaft (vgl. Ingo Schulz-Schaeffer: "Software-Entwicklung zwischen Ingenieur- und Designwissenschaft" 1996 ). Daher sind die folgenden agilen Methoden entwickelt worden.
Allerdings darf "Agilität" nicht als Abwesenheit methodischen Vorgehens mißbraucht werden!
- Thorsten Janning im Editorial Objekt Spektrum 2/2012: Management Prozesse schaffen Ordnung aber: Neue Ideen und Versuche kommen nicht mehr von den Programmieren.
- Agiles Manifest
-
- fast religiöses Zielbekenntnis zum agilen Vorgehen:
- Individuen/Personen und Kommunikation zwischen Personen ist wichtiger wie Prozesse und Werkzeuge
- Funktionierende, gut arbeitende Software ist wichtiger als umfassende Dokumentation
- Zusammenarbeit mit den Kunden ist wichtiger wie die Vertragsverhandlungen
- Das Eingehen auf Änderungen ist wichtiger wie das Verfolgen eines (veralteten) Plans
- Wikipedia
- Scaled Agile Framework
- Agile Methoden im Unternehmensrahmen / grössere Unternehmen
- Status Quo Agile
-
Studie zur Verbreitung und Nutzen agiler Methoden [Objectspectrum 04/2014]
- Verhältnis Plan und Architektur in Agilen und traditionellen Projekten
- Management 3.0: Zukunftsmodell und Perspektive für Führungskräfte in modernen und agilen Organisationen?
-
Agile Methoden stellen traditionelles Management in Frage und setzt auf Selbstorganisation, Selbstmotivation, crossfunktionae Teams
Konkrekte Agile Prozesse
XP extreme Programming
extremeprogramming.org
- User stories sind die Anforderungen
- Iterative Entwicklung mit häfigen kleinen Freigaben (Releases)
- Continuierlihe Integration
- 4 Augenprinzip - Pairprogramming
- Test driven Development - Unit-tests werden zuerst programmiert
- Collektives Ownership von Code
- häufige Refaktorisierung
(enWP,deWP)
- Scrum Kompakt
-
- Iterativer Prozess, ein Abschnitt ist ein Sprint, danach wird das weitere Vorgehen festgelegt
- setzt auf Selbstorganisation der Teammitglieder
- Scrum Guide
- Scrum Alliance.org beschreibt Scrum
definiert Rollen und Werte für agile Entwicklung
WP Kanban in der Softwareentwicklung
Arbeit wird in kleine Pakete eingeteilt, die man aus einem Arbeitspool nimmt und fertig stellt. Warteschlangen bei der Arbeit werden vermieden.
M.Bohlen in objektspektrum 2/2012: Einteilung der Arbeispakete in Risikoklassen - dann kann man gut Risiko managen.
Vergleiche
- Kanban vs. Scrum Practical Guide
Kritik
- Schwafelt nicht, Ihr Narren schreibt endlich Code!
- Methodologien sollen nicht dogmatisch sein, wer was hin bekommt, hat recht - pragmatisch
Metamodelle
- SPEM Software and Systems Process Engieneering Metamodell Specification der OMG
- ist ein Metamodell bzw. ein UML-Profile um Entwicklungsprozesse zu beschreeiben
Werkzeuge/Tools
sind Spezialfälle von Prozessmanagementsystemen
- Taskjuggler
- Projekt Open
Sonstiges