**Dies ist eine alte Version des Dokuments!**
Extreme Programming
Agiler Softwareentwicklungsprozess von Kent Beck.
Wiki von Ward Cunningham
nach {[quellen:Bleek2008|S. 137ff.]}
5 Werte
Kommunikation
Rückkopplung
Einfachheit
Mut
Respekt
14 Prinzipien
Menschlichkeit: Software wird von Menschen entwickelt
Wirtschaftlichkeit: Softwareprojekte müssen sich lohnen, Nutzen > Kosten
gegenseitiger Vorteil: Zusammenarbeit anstatt Aurichtung auf eigenen Vorteil
Selbstähnlichkeit: bereits Vorhandenes kann meist auf neue Projekte übertragen werden
Verbesserung: sowohl der Prozess als auch das Produkt werden kontinuierlich weiterentwickelt
Mannigfaltigkeit: unterschiedliche Meinungen und Erfahrungen sind willkommen, da nur so Innovation möglich ist
Reflexion: Lernen und Verbesserung
Fluss: die Arbeit soll flüssig von der Hand gehen und nicht ins Stocken geraten
Gelegenheit: Probleme sind Gelegenheiten etwas Neues zu lernen und zu wachsen (positive Grundhaltung)
Redundanz: bezogen auf das Entwicklungsteam (Stichwort "Truckfaktor")
Fehlschlag: Probleme und Fehlschläge gehören dazu und müssen akzeptiert werden, da meist nur durch sie bessere Lösungen gefunden werden können (anstatt immer die bewährten Wege zu gehen)
Qualität: das Team muss sich komplett der Qualität verschreiben und ggfs. gegen andere Faktoren (z.B. Termindruck) entscheiden
Babyschritte: kleine Schritte ergeben im Fehlerfall nur kleine Rückschläge, große lassen evtl. das Projekt scheitern
akzeptierte Verantwortlichkeit: jeder Projektteilnehmer muss die ihm übertragene und auch seine implizite Verantwortung erkennen und akzeptieren
13 Primärpraktiken
Sit Together: die Teammitglieder sollten nah beieinander sitzen um die Kommunikation zu optimieren
Whole Team: das Team muss alle im Projekt benötigten fachlichen und technischen Fähigkeiten umfassen
Informative Workspace: die Arbeitsumgebung muss über den aktuellen Fortschritt des Projekts informieren (z.B. durch Flipcharts)
Energized Work: alle Teammitglieder sind engagiert
Pair Programming: zwei Entwickler programmieren im Team
Stories: Anforderungen werden als Geschichten erfasst
Weekly Cycle: eine Iteration dauert eine Woche
Quarterly Cycle: ein Release dauert 3 Monate
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
Continuous Integration: mehrmals am Tag integrieren die Entwickler ihre Änderungen in die Quelltextbasis
Test-First Programming: Tests werden vor dem eigentlichen Code entwickelt
Incremental Design: beim Entwurf werden immer nur die aktuell relevanten Anforderungen berücksichtigt
11 Folgepraktiken