Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
se:extremeprogramming [2008-12-27 21:08] stefan angelegt |
se:extremeprogramming [2014-04-05 11:42] (aktuell) |
||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
[[http://c2.com/cgi/wiki?ExtremeProgramming|Wiki von Ward Cunningham]] | [[http://c2.com/cgi/wiki?ExtremeProgramming|Wiki von Ward Cunningham]] | ||
- | **nach {[quellen:Bleek2008|S. 137ff.]}** | + | **nach \cite[S. 137ff.]{Bleek2008}** |
* 5 Werte | * 5 Werte | ||
* Kommunikation | * Kommunikation | ||
Zeile 37: | Zeile 37: | ||
* Slack: Entwickler brauchen auch während des Projekts Freiraum um sich über neue, projektferne Dinge zu informieren, um neue Anregungen in das Projekt zu bringen und nicht nur noch durch die Projektbrille schauen (und dadurch in anderen Projekten nicht mehr gut einsetzbar sind) | * Slack: Entwickler brauchen auch während des Projekts Freiraum um sich über neue, projektferne Dinge zu informieren, um neue Anregungen in das Projekt zu bringen und nicht nur noch durch die Projektbrille schauen (und dadurch in anderen Projekten nicht mehr gut einsetzbar sind) | ||
* Ten-Minute Build: ein Build inkl. Tests darf max. 10 Minuten dauern | * Ten-Minute Build: ein Build inkl. Tests darf max. 10 Minuten dauern | ||
- | * Continuous Integration: mehrmals am Tag integrieren die Entwickler ihre Änderungen in die Quelltextbasis | + | * [[se:continuousintegration|Continuous Integration]]: mehrmals am Tag integrieren die Entwickler ihre Änderungen in die Quelltextbasis |
* Test-First Programming: Tests werden vor dem eigentlichen Code entwickelt | * Test-First Programming: Tests werden vor dem eigentlichen Code entwickelt | ||
* Incremental Design: beim Entwurf werden immer nur die aktuell relevanten Anforderungen berücksichtigt | * Incremental Design: beim Entwurf werden immer nur die aktuell relevanten Anforderungen berücksichtigt | ||
* 11 Folgepraktiken | * 11 Folgepraktiken | ||
- | * Real Customer Involvement | + | * Real Customer Involvement: der Kunde wird in die Arbeit mit Storys und den Entwurf integriert |
- | * Incremental Deployment | + | * Incremental Deployment: erstellte Releases sollen auch produktiv eingesetzt werden |
- | * Team Continuity | + | * Team Continuity: Teammitglieder sollten zu 100% im Projekt arbeiten und die Personalfluktuation sollte minimiert werden |
- | * Shrinking Teams | + | * Shrinking Teams: die Produktivität der Entwickler soll schrittweise soweit erhöht werden, dass ein Teammitglied in ein anderes Projekt wechseln kann |
- | * Root-Cause Analysis | + | * Root-Cause Analysis: systematische Suche nach den Ursachen eines Problems |
- | * Shared Code | + | * Shared Code: jeder Entwickler darf den kompletten Quelltext verändern |
- | * Code and Tests | + | * Code and Tests: außer dem Quelltext und den Tests werden keine weiteren Artefakte erstellt (insb. keine Dokumentation) |
- | * Single Code Base | + | * Single Code Base: es gibt nur eine Quelltextbasis und Entwicklungszweige werden nur kurzfristig verwendet |
- | * Daily Deployment | + | * Daily Deployment: der aktuelle Entwicklungsstand sollte täglich an die Anwender verteilt werden |
- | * Negotiated Scope Contract | + | * Negotiated Scope Contract: es wird ein festes Budget und ein verhandelbarer Funktionsumfang festgehalten |
- | * Pay per Use | + | * Pay per Use: es wird nicht pro Release bezahlt, sondern pro Nutzung einer Funktion |
+ | * Rollen | ||
+ | * Entwickler | ||
+ | * Kunde | ||
+ | * Tracker | ||
+ | * XP-Coach | ||
+ | * Projektablauf | ||
+ | - Kunde wählt Anforderungen für Release (3 Monate) | ||
+ | - Entwickler schätzen Aufwände und geben Rückkopplung | ||
+ | - Kunde wählt konkrete Anforderungen für Release und erste Iteration | ||
+ | - Entwickler implementieren und fragen ggfs. nach Details | ||
+ | - am Ende der Iteration werden die Ergebnisse dem Kunden präsentiert und dieser gibt Rückkopplung | ||
+ | - Planung der nächsten Iteration bzw. des nächsten Releases | ||