wordcloud-agile

Agile Projektmethoden: Glossar

Hier finden Sie einen Überblick über die gängigen Projektmethoden und Techniken im Bereich Agile
letter-a-64

Agile Modeling

Eine praxisorientierte Methodik für die Modellierung und Dokumentation von softwarebasierten Systemen. Sie ist als eine Sammlung von Werten, Prinzipien und Praktiken für die Softwaremodellierung gedacht, die in einem Softwareentwicklungsprojekt flexibler angewendet werden kann als traditionelle Modellierungsmethoden. AM ist eine Ergänzung zu anderen agilen Entwicklungsmethodiken wie Scrum, eXtreme Programming (XP) und Rational Unified Process (RUP).

Geeignet für:
IT-Projekte, insb. Softwareentwicklung
Teams bis 30 Personen

Vorteile:
Bessere Struktur von Prozessen
Bessere Prozessdokumentation ohne viel Aufwand

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

letter-c-64

CI/CD: Continuous Integration, Continuous Deployment, Continuous Delivery

CI/CD Prozesse beinhalten Continuous Integration, Continuous Delivery und Continuous Deployment. CI/CD löst die Probleme, die die Integration von neuem Code für DevOps-Teams verursachen. CI/CD ist eine DevOps-Taktik, die die richtigen automatisierten Testwerkzeuge nutzt, um agile Entwicklung zu implementieren.

Geeignet für:
Software- Entwicklungsprojekte, vor allem die Produkte welche häufige Updates und Änderungen benötigen

Vorteile:
Frühe Aufdeckung von Fehlern
Kürzung der Release-Zyklen für neue Features

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

letter-d-64

Design Thinking

Eine Methodik zur Problemlösung und Entwicklung von neuen Produkten und Prozessen, bei der die Bedürfnisse des Nutzers an erster Stelle stehen. Design Thinking basiert sich auf der einfühlsamen Beobachtung, wie Menschen mit ihrer Umgebung interagieren, und verwendet einen iterativen, praktischen Ansatz zur Entwicklung innovativer Lösungen.

Geeignet für:
Unterschiedliche Projekte, auch außerhalb der Softwareentwicklung
V.a. in der Anfangsphase (Design-Phase)
Kleinere bis mittlere Teams

Vorteile:
Erhöhte Flexibilität
Fordert Teamzusammenarbeit
Hilft bei der Suche nach innovativen und smarten Lösungen
Hohe Konzentration auf Produktnutzen für den Endkunden

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

letter-e-64

eXtreme Programming (XP)

Eine beliebte agile Methode der Softwareentwicklung. Sie zielt darauf ab, dem Kunden das Endprodukt innerhalb kürzester Zeit zu liefern.

Geeignet für:
Agile Entwicklungsprojekte
Bei kleinen bis mittelgroßen Entwickler-Teams (bis 10-12 Entwickler)
Insb. bei Projekten, wo die Anforderungen am Anfang nicht klar definiert sind

Vorteile:
Erfolgreich auch bei verändernden Anforderungen in Projekten
Flexible und schnelle Entwicklungsprozesse
Hohe Codequalität durch den intensiven Einsatz von Tests

letter-f-64

Feature-Driven Development (FDD)

Ein agiles Framework, das die Softwareentwicklung rund um das Entwickeln von Features organisiert. FDD ist kundenorientiert, inkrementell und iterativ, um häufig und effizient greifbare Software-Ergebnisse zu liefern. Feature Driven Development setzt Statusberichte auf allen Ebenen ein und hilft so, Ergebnisse und Fortschritte zu verfolgen.

Geeignet für:
Agile Entwicklungsprojekte
Insb. bei größeren Teams
Insb. in großen und komplexen Projekten

Vorteile:
Effiziente Nutzung der Teamressourcen und Teamarbeit
Gut skalierbar
Hohe Konzentration auf Produktnutzen für den Endkunden

letter-k-64

Kanban

Eine agile Methodik und ein Arbeitsmanagementsystem. Kanban ist darauf ausgelegt, die Arbeit und die Prozesse zu visualisieren. Indem die Arbeit visualisiert wird, kann die Menge der aktuellen Aufgaben begrenzt und gleichzeitig die Effizienz maximiert werden.

Geeignet für:
Unterschiedliche Projekte, auch außerhalb der Softwareentwicklung

Vorteile:
Verbesserte Ressourcen-Nutzung
Identifizierung von „Bottlenecks“ in Prozessen
Bessere Priorisierung von Aufgaben
Klare Arbeitsabläufe

letter-l-64

Lean Management

Eine Technik, die mit dem Ziel entwickelt wurde, die Prozessverschwendung zu minimieren und den Wert des Produkts oder der Dienstleistung für den Kunden zu maximieren, ohne die Qualität zu beeinträchtigen.

Geeignet für:
Unterschiedliche Projekte, auch außerhalb der Softwareentwicklung

Vorteile:
Verbesserte Ressourcen-Nutzung
Erhöhte Produktivität und Effizienz

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

letter-o-64

Open Unified Process (OpenUP)

Ein Teil des Eclipse Process Framework (EPF), einem Open-Source-Prozess-Framework, das innerhalb der Eclipse Foundation entwickelt wurde. Sein Ziel ist es, den Kern des Rational Unified Process (RUP) zu vereinfachen. OpenUP ist ein minimal erforderlicher Softwareentwicklungsprozess - das heißt, dass nur grundlegende Inhalte enthalten sind.

Geeignet für:
Softwareentwicklungsprojekte
Bei kleinen bis mittelgroßen Entwickler-Teams
Bei kleineren bis mittelgroßen Unternehmen

Vorteile:
Einfacher zu verstehen und implementieren als RUP
Flexible und schnelle Entwicklungsprozesse
Kosteneffizienz

letter-p-64

PDCA Cycle (PDCA-Zyklus)

Plan, Do, Check, Act - ein iterativer Ansatz zur kontinuierlichen Verbesserung von Produkten, Personen und Dienstleistungen.

Geeignet für:
Unterschiedliche Projekte, auch außerhalb der Softwareentwicklung

Vorteile:
Kontinuierliche Verbesserung von Menschen und Prozessen
Gut skalierbar
Verbesserte Qualität der Ergebnisse
Eliminierung von wiederkehrenden Fehlern

letter-r-64

Rapid Application Development (RAD)

Ein Entwicklungsmodell, das schnelles Prototyping und schnelles Feedback gegenüber langwierigen Entwicklungs- und Testzyklen bevorzugt. Mit Rapid Application Development können Entwickler mehrere Iterationen und Updates einer Software schnell durchführen, ohne jedes Mal einen Zeitplan für die Entwicklung von Grund auf neu beginnen zu müssen.

Geeignet für:
Agile Softwareentwicklungsprojekte
Bei kleinen bis mittelgroßen Entwickler-Teams
Bei kleineren bis mittelgroßen Softwareentwicklungsprojekten

Vorteile:
Erhöhte Flexibilität und Anpassungsfähigkeit
Förderung der Wiederverwendung von Code
Erhöhte Kundenzufriedenheit aufgrund der Zusammenarbeit und Koordination zwischen den Beteiligten

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

letter-s-64

Scrum

Ein vielseitiges, schnelles, flexibles und effektives agiles Framework, das entwickelt wurde, um dem Kunden während des gesamten Projektentwicklungsprozesses Inhalte zu liefern.

Geeignet für:
Agile Softwareentwicklungsprojekte
Funktioniert am besten in einem funktionsübergreifenden Team von 5 bis 9 Entwicklern
In mittelgroßen bis großen Projekten (ab vier Monaten)

Vorteile:
Erreichen von Kundenerwartungen
Flexibilität bei Änderungen
Geringere Vorbereitungszeit
Reduzierte Risikofaktoren
Weit verbreitet

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

letter-t-64

Test-Driven Development (Testgetriebene Entwicklung)

Bezieht sich auf einen Programmierstil, bei dem drei Aktivitäten eng miteinander verwoben sind: Programmieren, Testen (in Form von Schreiben von Unit Tests) und Code-Design (in Form von Refactoring). Bei der testgetriebenen Entwicklung erstellt der Programmierer Softwaretests konsequent vor den zu testenden Komponenten.

Geeignet für:
Alle Softwareentwicklungsprojekte, früh im Projekt

Vorteile:
Erreichen von Kundenerwartungen
Bessere Code-Qualität
Frühe Aufdeckung von Fehlern

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

letter-u-64

User Journey Mapping

Ein Prozess im Design Thinking, das alle Berührungspunkte (Touchpoints) darstellt, über die Kunden mit dem Unternehmen in Kontakt treten.

Geeignet für:
Alle Softwareentwicklungsprojekte, v.a. in der Anfangsphase

Vorteile:
Erfolgreich auch bei verändernden Anforderungen in Projekten
Hohe Konzentration auf Produktnutzen für den Endkunden