projektmagazin 1 Monat kostenlos testen!
Das projektmagazin - unverzichtbares Nachschlagewerk und Inspirationsquelle für alle, die in Projekten arbeiten.
Warum ist Software zu teuer, kommt zu spät, tut nicht genug oder ist einfach schlecht? Extreme Programming (XP) zeigt Wege, ein Projekt auch unter klassisch schwierigen Bedingungen auf Qualität und Effizienz zu optimieren. Diese ausführliche Einführung umfasst drei Teile. Im ersten Teil standen die Grundlagen und die Motivation von Extreme Programming sowie die wichtigsten Prinzipien im Vordergrund. Der zweite Teil stellte nach einem Blick auf Entstehungsgeschichte die Einsatzgebiete und Ziele vor. Abschließend werden die Verfahren, die XP zur Projektplanung einsetzt, erläutert. Die Verfahren zur "Extremen" Softwareentwicklung sowie die bisherigen Erfahrungen mit XP schließen in diesem dritten Teil die Einführung ab.
Warum ist Software zu teuer, kommt zu spät, tut nicht genug oder ist einfach schlecht? Extreme Programming (XP) zeigt Wege, ein Projekt auch unter klassisch schwierigen Bedingungen auf Qualität und Effizienz zu optimieren. Diese ausführliche Einführung umfasst drei Teile. Im ersten Teil standen die Grundlagen und die Motivation von Extreme Programming sowie die wichtigsten Prinzipien im Vordergrund. Der zweite Teil stellte nach einem Blick auf Entstehungsgeschichte die Einsatzgebiete und Ziele vor. Abschließend werden die Verfahren, die XP zur Projektplanung einsetzt, erläutert. Die Verfahren zur "Extremen" Softwareentwicklung sowie die bisherigen Erfahrungen mit XP schließen in diesem dritten Teil die Einführung ab.
In den ersten beiden Teilen dieser Serie standen die Grundlagen und Prinzipien von Extreme Programming (XP) sowie die Historie und die Verfahren zur Projektplanung im Vordergrund. Der abschließende dritte Teil dieser Einführung erläutert die Verfahren, die XP zur Softwareentwicklung einsetzt, stellt die besondere Verteilung der Rollen im Projekt vor und berichtet über Erfahrungen und die Bedeutung von XP.
Der Arbeitszyklus der Entwicklung in Extreme Programming besteht aus vier Phasen: Zuhören, Testen, Codieren, Design.
Dieser Entwicklungszyklus unterscheidet sich von anderen Prozessen und ist auf Risikovermeidung und Feedback getrimmt. Vor allem fallen der späte Zeitpunkt und die ungewöhnliche Methode des Designs auf. Durch diesen späten Zeitpunkt wird das Projekt nicht durch komplexe Strukturen gebremst, die später vielleicht doch nicht benötigt werden. Andererseits wird das Design nicht übergangen, sondern hat seinen festen Platz und findet unter hohen Qualitätsmaßstäben statt. Letztlich mindert dieser Designprozess das Projektrisiko, da Funktionalität früh sichtbar und immer erweitert wird.
Projekte, die Design hauptsächlich durch Refactoring betreiben, vermeiden effizient eine frühe Paralyse durch Überdesign, müssen allerdings der Versuchung widerstehen, mit Fertigstellung der Funktionalität auch den Code für fertig zu erklären. Vielmehr muss der Code jetzt noch einem Design unterzogen werden, damit im Sinne eines aufgeräumten Arbeitsplatzes die Software bereit ist, die nächste Funktionalität aufzunehmen. Besonders umfangreiche Refactoring-Maßnahmen fließen als eigene Entwicklungsaufgaben in die Planung ein.
Auch in Extremen Projekten findet ein grobes Design vor der Implementierung statt, zum Beispiel in Diskussionsrunden oder CRC-Kartensitzungen. Die so entwickelten Designideen können als Leitlinien zur Implementierung dienen, müssen aber als spekulativ angesehen werden, solange bis der Code über ihre Gültigkeit entscheidet.
Eine CRC-Karte ist eine Karteikarte, die für eine Klasse (Class) ihren Namen, ihre Zuständigkeiten (Responsibilities) und die benötigten Kooperationspartner (Collaborations) enthält. Diese Karten dienen als Medium für Designdiskussionen.
In einer CRC-Kartensitzung werden die Karten handschriftlich erstellt. Das Durchlaufen von Abläufen und Szenarien, z.B. in der Form eines Rollenspiels, führt zu einer schrittweisen Verfeinerung der Zuständigkeiten und Kooperationen.
Die Karten werden mit der Hand geschrieben, um das Ändern zu erleichtern und die Hemmschwelle zum Wegwerfen nicht ausgereifter Ideen herabzusetzen. Ein Tool würde mehr Zeit erfordern und die Diskussion behindern. Zudem werden die Karten später nicht als Dokumentation benötigt.
Im Gegensatz zu den Planungsverfahren von Extreme Programming, bei denen Kunden und Entwickler eng zusammenarbeiten, betreffen die Entwicklungsverfahren primär den täglichen Zyklus der Entwickler. Kunden können und müssen diesen allerdings an einigen Stellen unterstützen.
…