Agile-Leitfaden · Agile jenseits von Software
Wie agile Softwareentwicklung funktioniert: Praktiken und Best Practices
Agile Softwareentwicklung ist der Ursprung von Agile. Teams liefern funktionierende Software in kurzen Iterationen, unterstützt durch Engineering-Praktiken, die die Qualität hoch halten, während sich Anforderungen ändern.
Das Wichtigste in Kürze
- Agile Softwareteams liefern funktionierende Software in kurzen Iterationen.
- TDD, CI/CD, Code-Review und Refactoring halten die Qualität bei Veränderungen hoch.
- DevOps erweitert Agile auf Release und Betrieb.
Der Entwicklungszyklus
- Der Product Owner ordnet einen Backlog aus User Stories.
- In Sprint Planning wählen die Developers Stories aus und zerlegen sie in Aufgaben.
- Entwickler schreiben Code und automatisierte Tests gemeinsam.
- Code wird häufig geprüft und in einen gemeinsamen Hauptbranch gemergt.
- Continuous Integration baut und testet jede Änderung automatisch.
- Fertige Stories werden im Sprint Review vorgeführt und released, manchmal viele Male am Tag.
Siehe Agiler Entwicklungszyklus für den übergeordneten Prozess.
Zentrale Engineering-Praktiken
| Praxis | Was es ist | Warum es wichtig ist |
|---|---|---|
| Testgetriebene Entwicklung (TDD) | Einen fehlschlagenden Test schreiben, dann den Code, der ihn besteht, dann refaktorisieren | Weniger Fehler, besseres Design |
| Continuous Integration (CI) | Code mindestens täglich mergen und testen | Integrationsprobleme werden früh erkannt |
| Continuous Delivery (CD) | Software jederzeit releasefähig halten; Deployment automatisieren | Schnelle Releases mit geringem Risiko |
| Pair Programming | Zwei Entwickler teilen sich eine Aufgabe | Qualität und Wissensaustausch |
| Code-Review | Ein anderer Entwickler prüft jede Änderung | Qualität und gemeinsame Verantwortung |
| Refactoring | Codestruktur verbessern, ohne das Verhalten zu ändern | Hält Code leicht änderbar |
| Trunk-Based Development | Kurzlebige Branches, die schnell gemergt werden | Vermeidet mühsame Merges |
Agile und DevOps
DevOps erweitert Agile über die Entwicklung hinaus auf den Betrieb: Teams verantworten ihre Software in der Produktion, automatisieren die Infrastruktur, überwachen die tatsächliche Nutzung und erholen sich schnell von Ausfällen. Verbreitete DevOps-Kennzahlen sind Deployment-Häufigkeit, Lead Time für Änderungen, Change Failure Rate und Zeit bis zur Wiederherstellung des Dienstes.
Best Practices
- Halten Sie Stories so klein, dass sie in wenigen Tagen fertig werden.
- Sorgen Sie dafür, dass die Definition of Done automatisierte Tests umfasst.
- Bauen Sie technische Schulden kontinuierlich ab; reservieren Sie in jedem Sprint Kapazität dafür.
- Automatisieren Sie Builds, Tests und Deployments.
- Releasen Sie häufig kleine Änderungen und nutzen Sie Feature Flags, um Deployment und Release zu trennen.
- Beziehen Sie Nutzer früh ein und messen Sie die tatsächliche Nutzung nach dem Release.
- Führen Sie nach Störungen schuldfreie Reviews durch.
Kostenlose Vorlagen zu diesem Thema
Häufig gestellte Fragen
Was ist der Unterschied zwischen agiler Softwareentwicklung und DevOps?
Agile konzentriert sich darauf, wie Teams Software iterativ planen und entwickeln; DevOps überträgt diese Zusammenarbeit und Automatisierung auf das Releasen und den Betrieb der Software.
Braucht agile Softwareentwicklung noch Dokumentation?
Ja: so viel, wie Nutzern und künftigen Entwicklern hilft, etwa klarer Code, automatisierte Tests, API-Dokumentation und kurze Entscheidungsprotokolle.
Was ist agile Softwareentwicklung?
Software in kurzen Iterationen durch kleine cross-funktionale Teams entwickeln, mit häufiger Integration, häufigen Tests und Releases sowie regelmäßigem Nutzerfeedback.
Was ist testgetriebene Entwicklung in der agilen Softwareentwicklung?
Zuerst einen fehlschlagenden automatisierten Test schreiben, dann den Code, der ihn besteht, dann refaktorisieren. Das führt zu weniger Fehlern und besserem Design.
Was ist Continuous Integration in der agilen Softwareentwicklung?
Codeänderungen mindestens täglich zusammenführen und testen, mit automatisierten Builds und Tests, damit Integrationsprobleme früh erkannt werden.
Was ist in der agilen Softwareentwicklung der Unterschied zwischen Continuous Integration und Continuous Delivery?
Continuous Integration führt Änderungen häufig zusammen und testet sie; Continuous Delivery hält die Software mit automatisiertem Deployment jederzeit releasefähig.
Was ist Pair Programming in der agilen Softwareentwicklung?
Zwei Entwickler arbeiten an einer Aufgabe an einem Bildschirm, was die Qualität verbessert und Wissen verbreitet.
Was ist Trunk-Based Development in der agilen Softwareentwicklung?
Eine Praxis, bei der Entwickler kurzlebige Branches nutzen und häufig in den Hauptbranch mergen, um mühsame Merges zu vermeiden.
Was ist Refactoring in der agilen Softwareentwicklung?
Die Struktur von Code verbessern, ohne sein Verhalten zu ändern, damit er leicht änderbar bleibt.
Was sind technische Schulden in der agilen Softwareentwicklung?
Die künftigen Kosten von Abkürzungen in Code oder Design. Bleiben sie unbeachtet, bremsen sie Teams aus und können sich in sinkender Velocity zeigen.
Wie groß sollte eine User Story in der agilen Softwareentwicklung sein?
Klein genug, um in wenigen Tagen fertig zu werden, damit sie innerhalb eines Sprints entwickelt, getestet und integriert werden kann. Siehe User Stories.