Agile Projektmethoden: Glossar
Agile Unified Process (AUP)
Beschreibt einen einfachen, leicht verständlichen Ansatz für die Entwicklung von Geschäftsanwendungssoftware unter Verwendung von agilen Techniken und Konzepten. AUP wendet agile Techniken wie testgetriebene Entwicklung (TDD), agile Modellierung (AM), agiles Änderungsmanagement und Datenbank-Refactoring an, um die Produktivität zu verbessern.
Geeignet für:
Alle Softwareentwicklungsprojekte
Unterschiedliche Projekgrößen und Unternehmensgrößen
Vorteile:
Leicht anpassbar an die jeweilige Umgebung
Standardisiert und detailliert
Leicht zu verstehen
Antifragility
Ein von Nassim Taleb entwickeltes Konzept. Antifragility betont die Akzeptanz von Chaos oder Zufälligkeit durch Anpassung und Entwicklung. Es kann Unternehmen dabei helfen, besser mit Unsicherheit und Störungen umzugehen und sogar davon zu profitieren, indem es sie flexibler und anpassungsfähiger an auftretende Ereignisse macht.
Geeignet für:
Unterschiedliche Projekte, auch außerhalb der Softwareentwicklung
Vorteile:
Erhöhte Flexibilität
Erfolgreich auch bei verändernden Anforderungen in Projekten
Collective Code Ownership
Collective Code Ownership impliziert, dass in einem agilen Softwareentwicklungsprozess kein einzelnes Mitglied des gesamten Teams einen bestimmten Teil des Quellcodes besitzt. Daher kann jedes Teammitglied eine neue Idee zum Projekt beisteuern, die das Design der Software verbessern und eventuelle Fehler im Projekt beheben soll.
Geeignet für:
Alle agile Softwareentwicklungsprojekte
Vorteile:
Bessere Aufgabenverteilung im Team
Weniger Risiko beim Ausfall eines Entwicklers
Verbesserte Code Qualität durch die Zusammenarbeit mehrere Entwickler
Wissensaustausch und Wissensverteilung im Team
Crystal
Ein agiles Framework, das sich auf Personen und ihre Interaktionen konzentriert, im Gegensatz zu Prozessen und Tools. Das Crystal Agile Framework basiert auf zwei Grundüberzeugungen:
- Teams können von sich aus Wege finden, ihre Arbeitsabläufe zu verbessern und zu optimieren
- Jedes Projekt ist einzigartig und verändert sich ständig, weshalb das Team des Projekts am besten bestimmen kann, wie es die Arbeit angehen will
Geeignet für:
Alle agile Softwareentwicklungsprojekte
Lässt sich auf verschiedene Teamgrößen anpassen (von 2-6 Entwickler-Teams bis größeren Teams von über 100 Entwickler)
Vorteile:
Effektive Arbeit in Teams
Schnelles Reagieren auf verändernde Anforderungen
Erleichtert Kommunikation und Transparenz bei Projekten
Hohe Flexibilität in Einsatz bei verschiedenen Projekten
DevOps
Eine Kombination aus verschiedensten Engineering-Praktiken, flexiblen Methodologien, technischen Lösungen usw., die einen ausgeprägten Synergieeffekt bieten und eine effektive Interaktion zwischen Entwicklungs- und Operations-Teams ermöglichen.
Geeignet für:
Softwareentwicklungsprojekte
V.a. bei Produkten, welche häufige Updates und Änderungen benötigen
Vorteile:
Verkürzung der Zeit bei der Entwicklung und Verbesserung von Software-Produkten
Optimierung der Zusammenarbeit zwischen Entwicklungsteams, Testern und Release-Teams
Dynamic Systems Development Method (DSDM)
Ein iterativer Ansatz für die Softwareentwicklung, fügt dem Prozess aber zusätzliche Disziplin und Struktur hinzu. Im Mittelpunkt von DSDM steht das Prinzip, dass jedes Projekt auf klar definierte strategische Ziele ausgerichtet sein muss und sich auf die frühzeitige Lieferung von echtem Nutzen für das Unternehmen konzentrieren muss.
Geeignet für:
Softwareentwicklungsprojekte
Große Projekte und große Unternehmen
Vorteile:
Fokussierung auf die rechtzeitige Lieferung von Projektergebnissen
Prozess-Flexibilität
Fokussierung auf Business Cases und Business Value (unternehmerisches Nutzen
Involvierung der Stakeholder aus unterschiedlichen Unternehmensbereichen
Lean Startup
Eine Methode der Unternehmensgründung oder Produktentwicklung, die einen flexiblen Ansatz bevorzugt (zuerst erwähnt von Eric Ries, im Buch „The Lean Startup“). Es ist eine Methodik, die auf "validiertem Lernen" basiert, d.h. die Hypothesen nach und nach zu prüfen, bevor man das endgültige Produkt / den endgültigen Startup hat und mit der Skalierung des Unternehmens beginnt.
Geeignet für:
Unterschiedliche Projekte, auch außerhalb der Softwareentwicklung
Am besten für kleinere Teams geeignet
Vorteile:
Verbesserte Ressourcen-Nutzung
Erhöhte Produktivität und Effizienz
Gut skalierbar
Erfolgreich auch bei verändernden Anforderungen in Projekten
Rational Unified Process (RUP)
Diese agile Softwareentwicklungsmethodik wurde von IBM entwickelt. RUP unterteilt den Projektlebenszyklus in vier Phasen. Während jeder der Phasen finden alle sechs Kernentwicklungsdisziplinen statt: Geschäftsmodellierung, Anforderungen, Analyse und Design, Implementierung, Test und Bereitstellung. Jede der vier Phasen hat ein Hauptziel, das abgeschlossen werden muss, bevor das Projekt in die nächste Phase übergehen kann.
Geeignet für:
Softwareentwicklungsprojekte
Lässt sich auf verschiedene Teamgrößen anpassen
Vorteile:
Hohe Qualität der Ergebnisse
Hohe Konzentration auf Produktnutzen für den Endkunden
Management von Risiken
Wissensaustausch und Wissensverteilung im Team
Refactoring
Manuelle oder automatisierte Strukturverbesserung von Quellcode unter Beibehaltung des beobachtbaren Programmverhaltens. Dabei sollen Lesbarkeit, Verständlichkeit, Wartbarkeit und Erweiterbarkeit verbessert werden, mit dem Ziel, den jeweiligen Aufwand für Fehleranalyse und funktionale Erweiterungen deutlich zu senken.
Geeignet für:
Alle Software-Entwicklungsprojekten, insb. bei einer bestehenden Software
Vorteile:
Verbesserte Code-Qualität
Verbesserte Verständlichkeit des Codes
Sammlung von wiederverwendbaren Designelementen und Code-Blöcken
Release Planning (Release-Planung)
Bezieht sich auf den Planungsprozess, der die Freigabe eines Softwareprogramms oder Technologieprodukts umgibt. Sie ist entscheidend für eine reibungslose Migration vom internen Testbetrieb zur Kundenumgebung. Bei der Planung eines Releases wird ein Set von vermarktbaren Funktionen festgelegt und ein Datum für die Produkteinführung bestimmt.
Geeignet für:
Agile Entwicklungsprojekte, insb. nach Scrum Methodologie
Vorteile:
Beschleunigung der Feature-Entwicklung durch die Festlegung der Anforderungen im Team
Klare Aufgaben-Priorisierung
Schnellere Release-Zyklen durch die optimierte Planung
Hohe Konzentration auf Produktnutzen für den Endkunden
Scrumban
Ein aus Scrum und Kanban gebildetes Kunstwort und beschreibt einen Methodenmix der beiden mit Scrum-Events, Kanban-Visualisierung, WIP-Grenzen, Pull-System und kontinuierlichem Fluss.
Geeignet für:
Unterschiedliche Projekte, auch außerhalb der Softwareentwicklung
Vorteile:
Verkürzung der Zeit bei der Entwicklung von Software-Produkten
Kontinuierliche Prozessverbesserung durch Hinzufügen einiger Werte von Scrum nach Bedarf
Timeboxing
Die Zuweisung einer festen, maximalen Zeiteinheit für eine Aktivität. Diese Zeiteinheit wird Timebox genannt. Das Ziel des Timeboxing ist es, die Zeit für eine Aktivität zu definieren und zu begrenzen.
Geeignet für:
Agile Entwicklungsprojekte, insb. nach SCRUM Methodologie
Vorteile:
Bessere Produktivität
Sicherheit, dass alle bevorstehende Tasks behandelt werden
Begrenzung der Zeitinvestition in eine Aktivität, sodass mehrere Aufgaben im gleichen Sprint behandelt werden
Bessere Priorisierung von Aufgaben