Beschreibung und Analyse von Crystal

Aus Winfwiki

Wechseln zu: Navigation, Suche

Fallstudienarbeit

Hochschule: Hochschule für Oekonomie & Management
Standort: Düsseldorf
Studiengang: Bachelor Wirtschaftsinformatik
Veranstaltung: Fallstudie / Wissenschaftliches Arbeiten
Betreuer: Prof._Dr._Uwe_Kern
Typ: Fallstudienarbeit
Themengebiet: Agile Softwareentwicklung
Autor(en): Simon Wildenberg, Pascal Seidel
Studienzeitmodell: Tagesstudium
Semesterbezeichnung: SS11
Studiensemester: 2
Bearbeitungsstatus: begutachtet
Prüfungstermin: 20.06.2011
Abgabetermin: 17.06.2011
Name der Autoren: Pascal Seidel, Simon Wildenberg
Titel der Arbeit: "Beschreibung und Analyse von Crystal"
Hochschule und Studienort: FOM Düsseldorf


Inhaltsverzeichnis


1 Einleitung

Im Laufe der Zeit gab es in der Softwareentwicklung einen großen Wandel. Urspünglich war das Projekt-Management darauf bedacht, im Vorfeld alle Anforderungen und Bedürfnisse eines Kunden genau zu analysieren und schrittweise umzusetzen. Innerhalb der Projektphase wurden diese Anforderungen nicht mehr überprüft und das Produkt an das fertige Konzept angepasst. Dies führte oft zu Misserfolgen, da sich die Kundenanforderungen im Laufe der Zeit ändern konnten bzw. andere Parameter wie z. B. neue Gesetze das Zielprodukt beeinflussten. Die agile Softwareentwicklung versucht sich den neuen Parametern anzunehmen und diese in die Projektphase mit einzubinden.
Crystal ist ein Instrument der agilen Softwareentwicklung, deren Methodenfamilie sich am Anforderungsbereich von unterschiedlichen Projekten orientiert und daraus die zugehörige Methode ableitet. Dabei wird ein gemeinsamer genetischer Code verwendet, welcher sich durch den Fokus auf eine enge Kommunikationsstruktur, regelmäßige Bereitstellung des aktuellen Entwicklungsstandes und stetiges Überarbeiten der Prozesse zusammensetzt[1]. Aufgrund verschiedener Ausprägungen eines Projektes oder eines Unternehmens lassen sich mit Hilfe des genetischen Codes neue Methoden der Crystal-Familie erzeugen.
Cockburn begann im Jahre 1991 diese Methodenfamilie im Auftrag der IBM Consulting Group GmbH zu entwickeln. Für die Entwicklung von Crystal verwendete er einerseits seine eigenen Projekterfahrungen und andererseits empirische Auswertungen von Projekten, welche er von anderen Unternehmen zur Verfügung gestellt bekommen hatte[2].
Ziel der Fallstudie ist es, dem Leser fundierte Kenntnisse der Crystal-Methodenfamilie zu vermitteln. Ferner wird nach der Erklärung von Crystal eine detaillierte Analyse dieser agilen Methode anhand von vorab festgelegten Bewertungskriterien durchgeführt.

2 Grundlagen

2.1 Definition

Der Name Crystal leitet sich von dem gleichnamigen Mineralien ab. Dabei ähnelt das Verfahren des Beschreibens von Mineralien, welche nach Farben und Härte kategorisiert werden, dem Charakterisieren von Projekten, welche nach Teamgröße und Kritikalität klassifiziert werden[3]. Der Namenszusatz der einzelnen Methoden (z. B. Clear bei „Crystal Clear“) beschreibt die Komplexität des Projekts. Je komplexer sich das Projekt gestaltet, desto dunkler werden die Farben.

In Anlehnung an: Cockburn (2006), Seite 196 Abbildung 1: Projekteinordnung nach Crystal
In Anlehnung an: Cockburn (2006), Seite 196[4]
Abbildung 1: Projekteinordnung nach Crystal

Die vertikale Dimension (Kritikalität) beschreibt den potenziellen Schaden, den ein nicht erkannter Fehler auslösen könnte[5]. Dabei ist der potenzielle Verlust von Komfortabilität ein hinnehmbares Risiko, während der potenzielle Verlust von Menschenleben einen großen Toleranzbereich fordert, da auch gesetzliche Sicherheitsverordnungen eingehalten werden müssen. Die horizontale Dimension (Mitarbeiteranzahl) beschreibt die Größe des Projektteams.

2.2 Die Lernphasen

In Anlehnung an: Roskothen(2007) Abbildung 2: Lernphasen des Aikido
In Anlehnung an: Roskothen(2007)[6]
Abbildung 2: Lernphasen des Aikido

Cockburn benutzt bei der Projektbildung das Lernsystem des Aikidos, um die Projektmitarbeiter anhand Ihrer Qualifikationen den unterschiedlichen Stufen zuzuordnen[7]. Dieses Lernsystem besteht aus 3 Lernstufen, dem Shu, Ha und Ri. Es ist wie ein Ringsystem aufgebaut, sodass das Erreichen einer neuen Stufe die vorherige Stufe impliziert (siehe Abbildung 2: Lernphasen des Aikido). Im folgenden Abschnitt werden die unterschiedlichen Ebenen erläutert:

  • Shu

Unter dem Begriff Shu versteht man das Erlernen, Einhalten und Befolgen von Anweisungen. Auf dem Shu-Level befinden sich Programmierer, die noch keine oder wenig Projekterfahrung haben und deswegen auf den Projektleiter angewiesen sind. Ziel ist es ein Grundwissen zu vermitteln, welches von jedem Einzelnen, unabhängig vom Engagement, abgerufen werden kann.

  • Ha

Unter dem Begriff Ha versteht man das Abweichen, Verstehen und Hinterfragen der Anweisungen. Jeder Programmierer auf dem Ha-Level entwickelt seine eigene Individualität im Umgang mit den Techniken und hinterfragt diese, um sie besser verstehen zu können. Projektmitarbeiter auf dem Ha-Level sind Schüler und Lehrer zugleich.

  • Ri

Unter dem Begriff Ri versteht man das Loslösen und die freie Verwendung von Anweisungen. Projektleiter sollten sich in der Regel auf dem Ri-Level bewegen, da Sie durch Ihre bisherigen Erfahrungen Techniken stetig weiterentwickeln können. Sie fungieren als Lehrperson für die Anfänger und haben die größte Verantwortung in einem Team.

»Damit das Lernsystem des Aikido funktionieren kann müssen die Projektmitarbeiter, vor allem die Anfänger, bestimmte Eigenschaften erfüllen. Sie sollten besonders fleißig sein und mit großem Eifer an die Arbeit gehen, damit das Erreichen einer höheren Stufe gewährleistet werden kann. Ferner ist wichtig zu erwähnen, dass ein reines Nachahmen ohne persönliche Einbringung in das Team zum Scheitern eines Projektes führen kann. Damit der Projektleiter eine gute Übersicht behält, werden regelmäßig Mitarbeitergespräche geführt.«[8]

2.3 Varianten

Die Crystal-Familie besteht aus vielen einzelnen Methoden. Die am häufigsten verwendeten Methoden werden in diesem Abschnitt kurz benannt. Des weiteren erlaubt uns Crystal, je nach Ausprägung, neue Methoden zu generieren.
Folgend nun eine Auflistung der wesentlichen Methoden:

  • Crystal Clear
  • Crystal Yellow
  • Crystal Orange
  • Crystal Orange Web
  • Crystal Red
  • Crystal Magenta
  • Crystal Blue

Crystal Clear ist die wohl bekannteste Methode der Crystal-Familie. Sie wird im Laufe dieser Fallstudie fokussiert.
Ein Projektteam, welches Crystal Clear verwenden möchte, sollte maximal 8 Personen umfassen. Idealerweise wird eine Gruppengröße von 3 Leuten präferiert. Dieses Team besteht aus einem erfahrenen Chefdesigner, welcher üblicherweise die Projektleitung übernimmt und den Anforderungen des Ri-Levels entspricht. Zwei Programmierer, die sich zwischen dem Shu- und Ha-Level bewegen sollten, komplettieren das Team. Zusätzlich sollte ein Endanwender als Experte zur Verfügung stehen. Das Projektteam stellt durch kontinuierliche Kommunikation mit dem Experten sicher, dass die Anforderungen vollumfänglich erfüllt werden.
Des weiteren sollte ein Büro zur Verfügung stehen, welches genug Kapazitäten für das komplette Projektteam bietet, da der enge Kontakt zueinander eine der wichtigsten Erfolgsfaktoren der Crystal Clear Methode ist. Als Hilfsmittel für die Planung wird lediglich ein Whiteboard verwendet, auf dem alle wichtigen Informationen und Entwürfe gesammelt werden. Durch die gegebene Raumsituation erfolgt eine kontinuierliche Bearbeitung des Programmcodes, da die Entwickler direkt nebeneinander arbeiten und sich gegenseitig über die Schulter schauen können. Diese Variante der Programmierung wird auch „Peer Code Peering“ genannt[9].
Crystal Clear konzentriert sich wie auch alle anderen Methoden der Crystal-Familie auf drei Eigenschaften:

  • Regelmäßige Lieferungen
  • Reflektierte Verbesserungen
  • Osmotische Kommunikation

die jedes Projekt besitzen sollte.[10]. Diese und weitere Eigenschaften werden in den nächsten Kapiteln genauer beschrieben.
Crystal Orange eine Variante Variante der Crystal-Familie. Sie ist ausgelegt für eine Projektgröße von bis zu 40 Mitarbeitern, die sich in einem Gebäude und an einem System arbeiten, welches einen größeren finanziellen Schaden verursachen könnte[11]. Um das Projekt erfolgreich abzuschließen, werden kleinere Projektteams gebildet. Diese orientieren sich ebenfalls an den drei oben erwähnten Eigenschaften.
Ein Projekt, welches zur Crystal Orange Variante zählt, hat eine durchschnittliche Projektdauer von 1,5 Jahren. Ferner ist zu beachten, dass die zeitlichen Intervalle der regelmäßigen Softwarelieferung auf bis zu vier Monate ausgeweitet werden. Zusätzlich ist es bei dieser Projektgröße erforderlich, stets ein Auge auf die zeitliche Planung und die Kostenstruktur zu werfen.
Wichtig: Crystal Orange wird nur bei Projekten verwendet, bei denen keine Gefahr für Menschenleben besteht[12].
Nachdem nun zwei Varianten beispielhaft beschrieben wurden, wird auf die Beschreibung weiterer Varianten verzichtet, , weil sie sich von der Struktur sehr ähneln und den Rahmen dieser Hausarbeit sprengen würden. Es bleibt lediglich darauf hinzuweisen, dass es durch den genetischen Code möglich ist, weitere Varianten der Crystal-Familie zu erzeugen, um auf neue Projektanforderungen flexibel reagieren zu können. Dies kann bis zum härtesten Mineral, dem Diamanten, erweitert werden. Die sogenannte Crystal Diamond Variante wird bei Projekten verwendet, bei denen Menschenleben in Gefahr sind. Dies ist zum Beispiel der Fall, wenn Programmierer eine Software entwickeln sollen, die die Bewegungen von Bohrstangen in einem nuklearen Reaktor ausführen sollen[13].

2.4 Die sieben Eigenschaften

»Wenn man sich mit der Funktionsweise von Crystal Clear befasst, stellen sich zwei spezielle Fragen:

  •  »Worauf konzentrieren sich die Leute, wenn sie arbeiten?«
  •  »Können wir noch weiter in den sicheren Bereich kommen?««[14]

Crystal wird durch sieben unterschiedliche Eigenschaften kategorisiert. Die ersten drei Eigenschaften zählen zu den wichtigsten und werden von der gesamten Crystal-Familie benötigt. Die weiteren vier Eigenschaften werden eingesetzt, um in den gesicherten Bereich zu kommen. Alle Eigenschaften außer außer der osmotischen Kommunikation gelten für Projekte jeglicher Größe.
»Die Crystal-Familie steht und fällt mit den Eigenschaften und nicht mit der eingeschlagenen Vorgehensweise.«[15].

2.4.1 Eigenschaft 1: Regelmäßige Lieferungen

»Regelmäßige Lieferungen des aktuellen Codes sind die wichtigste Eigenschaft eines Projektes. Es ist egal, ob das Projekt groß oder klein, agil oder nicht agil ist. Diese Lieferungen haben folgende Vorteile:

  • Durch die Abgabe des aktuellen Codes erhalten die Auftraggeber den aktuellen Stand ihrer Anforderung und können im Verlaufe der Abgaben die Verbesserungen und Fortschritte sehen.
  • Die Anwender können erkennen, ob ihre ursprünglichen Anforderungen auch den tatsächlichen Anforderungen entsprechen. Des weiteren können sie ihre Erkenntnisse in die weitere Entwicklung einfließen lassen.
  • Das Team wird wieder an die Schwerpunkte des Projekts erinnert.
  • Das Team wird durch positives Feedback aufgebaut und durch negatives auf Fehler im Code aufmerksam gemacht.

Um diese erwähnten Vorteile zu erzielen, sollten die Lieferungen an den Endanwender mindestens in monatlichen Abständen erfolgen, maximal in einem Rhythmus von vier Monaten durchgeführt werden. Bei längeren Zeiträumen verblasen die Vorteile. Kürzere Zeiträume sind zwar möglich, beinhalten aber in der Regel zu geringe Veränderungen.
Frage an die Teams: Hat es in den letzten sechs Monaten zumindest zweimal eine Lieferung eines funktionsfähigen und einsetzbaren Codes an den Endanwender gegeben?«[16]

2.4.2 Eigenschaft 2: Reflektierte Verbesserungen

»Diese Eigenschaft kann ein Projekt vor dem sicheren Misserfolg bewahren. Reflektierte Verbesserungen erhalt man mit Hilfe eines Teammeetings. Das Entwicklerteam setzt sich zusammen und listet sowohl die Dinge auf, die funktioniert haben als auch die Themen, die nicht funktioniert haben. Es wird über schlecht gelaufene Abläufe diskutiert und wie man diese verbessern kann. Zudem wird ermittelt, was verbessert werden könnte. Diese Erkenntnisse werden in der nächsten Entwicklungsphase aufgegriffen und versucht, bestmöglich anzuwenden. Im Endeffekt findet also eine Reflexion statt, die Verbesserungen bringen soll.
Um diese Erkenntnisse zu erlangen, muss sich das Team idealerweise einmal pro Woche für eine Stunde treffen. Bei gut organisierten Teams kann auch eine Stunde pro Monat ausreichen.
Frage an die Teams: Hat sich das Team in den letzten drei Monaten mindestens einmal zusammengesetzt und die Arbeitssituation diskutiert?«[17]

2.4.3 Eigenschaft 3: Osmotische Kommunikation

In Anlehnung an: Cockburn (2005), Seite 59 Abbildung 3: Osmotische Kommunikation
In Anlehnung an: Cockburn (2005), Seite 59[18]
Abbildung 3: Osmotische Kommunikation

»Die osmotische Kommunikation ist die letzte der drei wichtigsten Eigenschaft von Crystal. Bei ihr fließen die Informationen im Hintergrund, dies bedeutet, dass die Teammitglieder die Informationen wie bei einer Osmose aufnehmen. Die Voraussetzung für diese Kommunikation ist, dass alle Teammitglieder im selben Raum (siehe Abbildung 3: Osmotische Kommunikation) arbeiten. Die Mitglieder können somit entscheiden, ob sie sich an einem aufkommenden Gespräch / der aufkommenden Diskussion der Übrigen beteiligen oder ihre Arbeit fortsetzen. Bei dieser Art von Kommunikation fließen die Informationen durch Fragen und Antworten, wobei die am Gespräch / Diskussion nicht beteiligten Teammitglieder kaum gestört werden.
Dies und regelmäßige Lieferungen ermöglichen ein schnelles und ergiebiges Feedback. Dadurch werden keine anderen Projektstrukturen benötigt.
Frage an das Team: Werden mehr als 30 Sekunden benötigt, um jemanden zu erreichen, der eine Antwort geben kann?«[19]

2.4.4 Eigenschaft 4: Persönliche Sicherheit

»Die persönliche Sicherheit beschreibt das Vertrauen und die Offenheit der Mitarbeiter untereinander. Es besteht eine persönliche Sicherheit, wenn ein Teammitglied sich über etwas beschweren kann, ohne das es Angst vor Repressalien haben muss. Beispielsweise kann ein Teammitglied seinem Chef sagen, dass der Zeitplan für unrealistisch gehalten wird.
Die persönliche Sicherheit ist wichtig, da nur so die Schwächen des Teams erkannt und angesprochen werden können. Wenn keine Sicherheit besteht, dann wird keiner die Fehler im Team oder eines Einzelnen ansprechen und dadurch werden diese nicht behoben. Existiert persönliche Sicherheit innerhalb des Teams und es besteht Vertrauen zwischen den Teammitgliedern, wirkt sich dies positiv auf die Leistungen des Teams aus.
Allerdings ist es nicht erforderlich, jedem Teammitglied alle Formen des Vertrauens entgegenzubringen, da es schon reicht, wenn die Teammitglieder frei sprechen und handeln können. Wenn eine solche Vertrauensbasis vorhanden ist, wird automatisch freizügiger mit Informationen umgegangen, wodurch der Projektablauf beschleunigt wird. Aus diesem Grund gilt es, die persönliche Sicherheit anzustreben.
Frage an die Teams: Kann man untereinander frei sprechen und handeln, ohne negative Folgen befürchten zu müssen?«[20]

2.4.5 Eigenschaft 5: Schwerpunkte bilden

»Diese Eigenschaft wird größtenteils durch den Auftraggeber definiert. Schwerpunkte bilden bedeutet, dass jeder Mitarbeiter weiß, was er zu tun hat und auch die Zeit und Ruhe dafür findet. Die Schwerpunkte entstehen aus der Kommunikation mit dem Auftraggeber, da dieser die Arbeitsziele und Prioritäten setzt. Die Zeit und Ruhe wird durch die Arbeitsumgebung und die Führungskraft definiert, da diese dafür zu sorgen hat, dass die Teammitglieder nicht durch andere und unvereinbare Arbeiten gestört werden.
Frage an die Teams: Kennt jeder seine Arbeitsschwerpunkte? Kann jeder diese Aufgabe an zwei Tagen in der Woche mindestens zwei Stunden ohne Unterbrechung ausführen?«[21]

2.4.6 Eigenschaft 6: Einfache Kontaktaufnahme mit Endanwendern

»Durch ständigen Kontakt des Teams zum Endanwender kommt es zu

  • regelmäßigen Lieferungen
  • schnellem Feedback des aktuellen Codes
  • schnellem Feedback zum Design
  • beständigen Anforderungen des aktuellen Stands

Eine Untersuchung von Keil und Carmel ergab, dass es sinnvoll ist indirekte Kontakte zu vermeiden und den unmittelbaren Kontakt mit den Endanwendern zu suchen.
Frage an die Teams: Dauert die Beantwortung durch den Endanwender länger als drei Tage?«[22]

2.4.7 Eigenschaft 7: Technische Umgebung mit automatisierten Tests, Konfigurationsmanagement und regelmäßige Integrationen

»Automatisierte Tests:
Die Teams arbeiten mit automatisierten Tests, da es für sie eine Verbesserung der Lebensqualität ist. Durch automatisierte Tests kann schnell überprüft werden, ob unbeabsichtigt Funktionalität verloren gegangen ist.
Konfigurationsmanagement:
Das Konfigurationsmanagement speichert die verschiedenen Versionen des erstellten Codes, wodurch jede erstellte Version abgerufen werden kann. Dies ist dann hilfreich, wenn man einen gravierenden Fehler eingebaut hat, denn dann kann man auf eine frühere Konfiguration zurückgreifen.
Regelmäßige Integrationen:
Die Integrationen sollten täglich, maximal jeden zweiten Tag durchgeführt werden. Je kürzer der Zeitabstand zwischen den Integrationen, desto schneller werden die auftretenden Fehler entdeckt und desto kleiner ist der auf Fehler zu untersuchende Code.
Am besten ist es, wenn die Teams in ihren Tests alle drei Elemente aufnehmen und diese kontinuierlich durchführen, somit können Fehler innerhalb kürzester Zeit gefunden und behoben werden.
Frage für die Teams: Können die Tests in Abwesenheit laufen? Gibt es mindestens zweimal wöchentlich eine Integration? Arbeiten alle im Team mit dem Konfigurationsmanagement?«[23]

2.5 Ablauf

Abbildung 4: Projektablauf
Abbildung 4: Projektablauf

Die Abbildung 4: Projektablauf beschreibt den normalen Ablauf einer jeden Crystal-Methode. Jedes Projekt startet mit den Anforderungen, die der Kunden dem Entwicklerteam vorgibt. Sobald die Anforderungen verständlich überbracht wurden, wird ein Kick-Off-Meeting einberufen, in dem die Aufgabenverteilung abgestimmt wird. Dies ist erforderlich, damit jeder Mitarbeiter des Entwicklerteams weiß, wo seine Schwerpunkte liegen und ersichtlich ist, welcher Mitarbeiter welches Themengebiet bearbeitet. Dadurch wird auch die Kommunikation untereinander erleichtert, da jeder darüber informiert ist, an wen er sich wenden muss, wenn Probleme auftreten. Nach dieser Aufgabenverteilung fangen alle Teammitglieder an ihre Schwerpunkte zu erfüllen und den Code zu entwickeln. Im Anschluss wird der erstellte Code der Mitarbeiter implementiert. Bei diesem Schritt hat der Endanwender Gelegenheit, mit dem Entwicklerteam zu kommunizieren. Es können unklare Anforderungen vom Entwicklerteam dem Kunden mitgeteilt werden, um eine klare Definition der Anforderung zu erhalten. Des weiteren kann der Kunde auch neue oder geänderte Anforderungen mitteilen, die denselben Ablauf durchlaufen, wie gerade beschrieben.
Hier bei kann das Entwicklerteam auch ein Feedback des Kunden erhalten, ob die umgesetzten Anforderungen den Vorstellungen des Kunden entsprechen und ob der Kunde mit der Vorgehensweise des Teams zufrieden ist. Diese kurzen Zwischenfazits sind sehr wichtig für das Team, da es durch positive Zustimmung moralisch aufgebaut wird und ihre erbrachte Leistung anerkannt wird. Dadurch steigt die Motivation der Mitarbeiter und der Ansporn wird größer, was das Team und jeden Einzelnen nach vorne bringt. Nach der erfolgreichen Implementierung setzt sich das Team in den wöchentlich abgehaltenen Meetings zusammen, diskutiert und reflektiert die gute und die schlecht gelaufenen Dinge. Hier bietet sich die Gelegenheit, die geänderten bzw. neuen Anforderungen wieder auf die einzelnen Mitarbeiter des Entwicklerteams zu verteilen.
Wenn die Implementierung erfolgreich war werden automatisierte Tests durchgeführt, um Fehler und Bugs auszuschließen. Sollten bei diesen Tests Fehler auftreten, muss der Code geändert und neu implementiert werden. Treten keine Fehler auf, dann kann der getestete Code erfolgreich und mit einem guten Gefühl in das System des Endanwenders integriert werden.
Nach der erfolgreichen Integration erhält das Entwicklerteam nochmals ein Feedback durch den Kunden, ob alles zur Zufriedenheit verlaufen ist und den gestellten Anforderungen entspricht.

2.6 Rollen

2.6.1 Projektleiter

Der Projektleiter sollte ein sehr erfahrener Mitarbeiter sein, damit die anderen Projektmitarbeiter viel von ihm lernen können. Er ist für die Planung und Steuerung des Projektes verantwortlich. In seinen Aufgabenbereich fallen einerseits die Einhaltung der Rahmenbedingungen des Projektplans und andererseits die Organisation der Teammitglieder sowie die Durchführung regelmäßiger Teammeetings.

2.6.2 Programmierer

Der Programmierer ist für die Entwicklung, das Testen und die Fehlerbehebung des Codes innerhalb der Crystal-Methode zuständig. Er versucht, die Anforderungen des Kunden bestmöglich in ein leicht testbares und funktionsfähiges System zu implementieren. Die Dokumentation bzw. die Erstellung eines Benutzerhandbuches erfolgt dabei parallel zur Realisierung.
Wichtige Qualifikationen des Programmieres:

  • Fundierte Grundkenntnisse der verwendeten Mitteln und Methoden
  • Große Lernbereitschaft
  • Gutes offenes Kommunikationsverhalten
  • Kritikfähigkeit, da ein offener und ehrlicher Umgang miteinander ein Erfolgsfaktor der Crystal-Methoden ist

2.6.3 Experte

Der Experte ist ein Projektmitarbeiter und dient als Schnittstelle zum Kunden. Innerhalb der Projektplanungsphase setzt er sich mit dem Auftraggeber und dem Anwender zusammen, um die Anforderungen abzustimmen und sich einen Überblick zu verschaffen. Im Laufe des Projekts bleibt er der Hauptansprechpartner des Kunden und steht im regelmäßigen Kontakt zum Endanwender. Wichtige Qualifikationen des Experten:

  • Sehr gute Auffassungsgabe
  • Die Fähigkeit, komplexe Sachverhalte nachvollziehbar anderen Projektmitarbeitern zu erklären

2.6.4 Auftraggeber

Der Auftraggeber gibt die Projektziele vor. Des Weiteren trägt er die finanzielle Verantwortung für das Projekt und sollte auf mögliche wirtschaftliche Änderungen flexibel reagieren können. Um zum Erfolg des Projektes beizutragen, sollte er für Rückfragen zeitnah zur Verfügung stehen und wichtigen Meetings des Projektes teilnehmen.

2.6.5 Anwender

Der Anwender oder auch Endanwender repräsentiert den Fachbereich des Unternehmens. Er gibt dem Projektteam nach der Auslieferung der aktuellen Softwareversion eine detaillierte Rückmeldung und ist dafür verantwortlich, dass bei falscher Umsetzung der Anforderungen das Projektteam wieder in die richtige Richtung gelenkt wird. Anwender und Experte geben sich regelmäßig Feedbacks, um ihre Ergebnisse zu verbessern.
Wichtige Qualifikationen des Anwenders:

  • Genaue Kenntnis der eigenen Arbeitsabläufe
  • Die Fähigkeit, dem Experten komplexe Sachverhalte nachvollziehbar zu erläutern
  • Hohe Lernbereitschaft

2.7 Einsatzmöglichkeiten

Crystal lässt sich in vielen verschiedenen Unternehmen integrieren. Durch die bestehende Variantenvielfalt und durch das Erstellen von neuen Varianten wird sichergestellt, dass jedes Unternehmen eine auf sich abgestimmte Alternative der Crystal-Familie erhält. Somit kann Crystal bei der Herstellung verschiedenster Software dienlich sein.
Die Spannweite von Crystal reicht von der Entwicklung einer einfachen Kassensoftware bis hin zu der Entwicklung von Software für die Berechnung von Raketentriebwerken, welche bei einer Fehlfunktion das Leben von vielen Menschen bedrohen kann. Projekte, welche Gefahr für Menschenleben bedeuten und damit in der Regel der Variante „Crystal Diamond“ zugeordnet werden, müssen vorab auf rechtliche Grenzen überprüft werden[24]. Wenn es rechtliche Grundsätze gibt, die die Einhaltung der sieben Eigenschaften nicht mehr gewährleisten können, endet die Einsatzmöglichkeit von Crystal.
Des weiteren sollte Crystal nicht eingesetzt werden, wenn Projekte mit niedriger Kritikalität die Produktivität der restlichen Mitarbeiter eines Unternehmens negativ beeinflussen. Dies ist z. B. der Fall, wenn die Implementierung der neuen Software ein kontinuierliches Arbeiten verhindert.

3 Analyse

Um die Crystal-Familie bewerten zu können, müssen vorab Kriterien festgelegt werden, anhand derer man die Crystal-Familie analysieren kann. In der folgenden Bewertung wird der Hauptfokus auf die Crystal-Clear-Methode gelegt, um auf Basis dieser Analyse Rückschlüsse auf die komplette Bewertung der Crystal-Familie zu ziehen.
Um eine statistische Bewertung zu ermöglichen, wird eine Bewertungsskala verwendet.


3.1 Bewertungsskala

Folgende Bewertungsskala wird verwendet, um Crystal Clear zu beurteilen. Die Bewertungszahlen orientieren sich an der Notenvergabe in der Schule.

Bewertung Beschreibung
1 Kriterien in herausragendem Maße erfüllt
2 Kriterien in gutem Maße erfüllt
3 Kriterien in befriedigendem Maße erfüllt
4 Kriterien in ausreichendem Maße erfüllt
5 Kriterien in mangelhaftem Maße erfüllt
6 Kriterien in keiner Weise erfüllt

Tabelle 1: Bewertungsskala

3.2 Bewertungskriterien

Nachfolgend sind alle Bewertungskriterien aufgelistet, anhand derer die Crystal-Clear Methode analysiert werden kann. Auf Basis dieser zehn Kriterien wird anschließend ein Gesamtergebnis erstellt, bei dem die einzelnen Punkte die gleiche Gewichtung erhalten.

3.2.1 Wirtschaftliche Betrachtung

Die wirtschaftliche Betrachtung setzt sich aus den folgenden Variablen zusammen:

  • Kosten
  • Zeit
  • Qualität
  • Umfang

Diese vier Variablen stehen in einem Zusammenhang, da sie sich gegenseitig beeinflussen. Drei dieser vier Faktoren werden durch den Kunden oder durch das Management festgelegt. Dies bezieht sich insbesondere auf die Zeit und die Kosten.
Das Team erhält einen Abgabetermin, der einzuhalten ist. Bis zu diesem Datum hat das Projektteam Zeit, die Aufgaben den Anforderungen des Kunden entsprechend zu realisieren. Der Abgabetermin wird so gewählt, dass er ohne Probleme eingehalten werden kann, sofern keine Komplikationen während der Entwicklung entstehen.
Die Kosten beschreiben die Aufwände, die man für das Team aufbringen muss, damit sowohl die optimalen räumlichen als auch die besten arbeitstechnischen Bedingungen erfüllt werden können. Diese Bedingungen beinhalten das Arbeits- (bessere Monitore, leistungsstärkere Computer) und das Raumequipment (Whiteboards, Beamer oder Arbeitsplatzumzug eines Mitarbeiters, damit er mit dem restlichen Team zusammen in einem Raum sitzen kann). Das Arbteitsumfeld des Teams muss nicht nur diesen Bedingungen entsprechen, sondern auch die Möglichkeit für automatisierte Tests und kontinuierliche Integrationen bieten. Diese Investitionen fließen in die Projektkosten ein. Diese Voraussetzungen müssen gegeben sein, damit das Team unter möglichst perfekten Bedingungen arbeiten kann, um das Projekt in den sicheren Bereich zu bringen.
Die Qualität ist durch die Anforderungen des Kunden vorgegeben. Merkmale für die Qualität sind die betriebswirtschaftliche Funkitonalität, die Benutzerfreundlichkeit und die Verfügbarkeit der gelieferten Ergebnisse.
Der Umfang wird durch die Komplexität des Projektes beeinflusst. Je komplexer und komplizierter die Anforderungen des Kunden sind, desto größer ist der Aufwand, der auf das Entwicklerteam zukommt.
Während des Projektverlaufes können sich die Variablen durch den Endanwendern oder Probleme im Projekt verändern. Dadruch können die anderen Faktoren beeinflusst werden. Die Entwicklung aus der Veränderung der Variablen tritt verzögert und nicht linear auf.

3.2.2 Projekt-Management

Das Projekt-Management dient der Einhaltung der vorgegebenen Rahmenbedingungen wie Qualität, Aufwand und Zeit um rechtzeitig auf Abweichungen wie z.B. Ressourcenengpässe und Verzögerungen im Projektplan reagieren zu können.

3.2.3 Qualitäts-Management

Das Qualitäts-Management gewährleistet die Einhaltung von vorgegebenen Standards und Normen zur erfolgreichen Erfüllung des Projekts.

3.2.4 Requirement-Management

Die Anforderungen und Anpassungswünsche des Endanwenders werden über das Requiriment-Management aufgenommen, strukturiert und geplant.

3.2.5 Implementierung

Der Einsatz der Projektergebnisse wird durch die Implementierung in den vorhandenen Code vorgenommen.

3.2.6 Integration

Die Integration ermöglicht das reibungslose Zusammenspiel einer neuen Anwendung mit den bestehenden Systemen und das Funktionieren der Schnittstellen zwischen diesen.

3.2.7 Wartung

Im Rahmen der Wartung werden Systeme und Anwendungen auf dem aktuellsten Stand gehalten und die Pflege und Fehlerbehebung wird vorgenommen.

3.2.8 Test

Durch das Testen wird festgestellt, ob alle Anforderungen erfüllt und keine Fehler im System vorhanden sind.

3.2.9 Betrieb

Im Betrieb muss sichergestellt sein, wie das System zu starten und zu beenden ist, welche regelmäßigen automatischen sowie manuellen Abläufe durchzuführen sind und gegebenenfalls auch in Fehlersituationen reagiert werden muss.

3.2.10 Systemdesign

Im Systemdesign werden die Architektur und die Ergonomie definiert und gestaltet.

3.3 Bewertung

In Anlehnung an: IDG (2010)  Abbildung 5: Bewertungsdiagramm
In Anlehnung an: IDG (2010) [25]
Abbildung 5: Bewertungsdiagramm

Die Bewertung erfolgt auf Basis der zuvor definierten Kriterien und deren Analyse, welche nachfolgend erläutert wird.

3.3.1 Wirtschaftliche Betrachtung

  • Kosten
  • Zeit
  • Qualität
  • Umfang

Die Projektkosen für die Einrichtung eines Teams der Crystal-Clear Methode sind relativ gering. Die kleine Teamgröße und die wenigen Arbeitsmaterialien (Computer und Whiteboard) halten die Kosten niedrig. Während der Projektphase sind die Kosten relativ stabil, solange keine Komplikationen eintreffen. Wenn Komplikationen eintreten, dann ändern sich nicht nur die Kosten, sondern auch der Zeitplan und der Umfang des gesamten Projekts. Die zeitliche Planung wird vorab vom Auftraggeber und dem Projektleiter festgelegt. Durch die regelmäßigen Lieferungen kann man nachvollziehen, inwiefern der Zeitplan eingehalten wird. Der Auftraggeber sollte immer einen gewissen Spielraum für finanzielle Mittel und der zeitlichen Planung haben (Forderung von Crystal an das Team [26]). Der Umfang eines Projektes bleibt erfahrungsgemäß relativ konstant während der Projektphase. Durch eine genaue vorab Analyse und Einordnung des Projekts in eine bestimmte Variante von Crystal sind die Rahmenbedingungen bereits gesetzt. Trotzdem kann es passieren, dass die Komplexität falsch eingeschätzt wurde und die Variante verändert werden muss, was einen direkten Einfluss auf Kosten, Zeit und dem Umfang hat. Die Qualität des Endprodukts ist bei der Verwendung der Crystal Methode immer recht gut, da nach der Lieferung der Softwareversionen ein detailliertes Feedback erfolgt und Anforderungen angepasst respektive erneuert werden.
Insgesamt liefert die Crystal-Methodenfamilie eine solide Grundbasis für eine wirtschaftliche Analyse und erhält für die Übersichtlichkeit der einzelnen Variablen die Note 3. Diese Note wird später nicht im Bewertungsdiagramm abgebildet, da sich die späteren Bewertungskriterien auf die Anwendung der Methode beziehen und nicht in die Projektplanung fallen.

3.3.2 Projekt-Management

Regelmäßige Meetings innerhalb des Entwicklerteams gewährleisten die Einhaltung der Vorgaben des Endanwenders. Auf spontane Änderungen der Anforderungen kann flexibel reagiert werden. Des Weiteren können durch die kontinuierliche Kommunikation der einzelnen Projektmitarbeiter untereinander Ressourcenengpässe schneller auffallen und der Projektleiter kann frühzeitig reagieren. Daher wird das Projekt-Management innerhalb der Crystal-Clear Methode mit der Note 2 bewertet.

3.3.3 Qualitäts-Management

Die regelmäßige Lieferung des entwickelten Codes ist ein großer Vorteil von Crystal-Clear und sichert die Qualität des Produkts. Der Endanwender kann die neue Softwareversion genau analysieren und kritisch begutachten. Da er im direkten Kontakt mit dem Projektteam steht, kann er den Entwicklern ein genaues Feedback geben.
Eine weitere Maßnahme zur Qualitätssicherung sind die Teammeetings, in denen besprochen wird, welche Prozesse gut funktioniert haben und welche Abläufe noch Verbesserungspotenzial bieten. Insgesamt ist das Qualitäts-Management bei Crystal-Clear sehr gut abgedeckt und erhält deswegen die Note 1.

3.3.4 Requirement-Management

Innerhalb der Crystal-Clear Methode werden die Anforderungen des Endanwenders gezielt von einem Projektmitarbeiter aufgenommen und dokumentiert. Dieser fungiert als Experte und steht im regelmäßigen Kontakt mit dem Endanwender. Anpassungswünsche sind somit zeitnah umsetzbar. Das Requirement-Management wird daher mit der Note 2 bewertet.

3.3.5 Implementierung

Die Implementierung ist für das Entwicklerteam ein wichtiger Meilenstein auf dem Weg zur Integration in die Systemlandschaft beim Endanwender. Durch die Implementierung werden die neu entwickelten Codefragmente in das bereits vorhandene Programm eingebaut. Sobald dies geschehen ist, weiß das Team, ob es fehlerfrei gearbeitet hat, denn nur wenn das Programm nach diesen Implementierungen weiterhin einwandfrei funktioniert, wurde das Arbeitsziel erreicht. Die Implementierung erhält die Note 2.

3.3.6 Integration

Die Integration des erzeugten Codes wird beim Endanwender nur selten vorgenommen, dadurch wird eine perfekte Integration in das System des Endanwenders schwer. Durch die nicht ausreichend vorhandenen Informationen und Testintegrationen können auch beim finalen Produktionseinsatz Fehler unterschiedlicher Gewichtung auftreten, wodurch die gewünschte Qualität und Funktionalität nicht erreicht wird. Die finale Integration in das System des Endanwenders ist der wichtigste Teil der Projektarbeit. Nur bei einem einwandfreien laufenden Programm kann das Projektziel als erreicht angesehen werden. Die Integration wird daher mit der Note 4 bewertet.

3.3.7 Wartung

Eine Wartung des erstellten Programms erfolgt nach der Auslieferung an den Endanwender nicht. Dadurch bleiben vorhandene Bugs sowie erst beim Endanwender auftretende Fehler ungelöst. Da dieses Kriterium bei Crystal in keinster Weise erfüllt wird, ist es mit der Note 6 zu bewerten.

3.3.8 Test

Durch die automatisierten Tests nach jeder Implementierung, welche idealerweise täglich erfolgen sollte, werden vorhanden Fehler zeitnah entdeckt. Somit können fehlerhafte Codefragmente schnellstmöglich verbessert werden.
Das Testen wird durch das Konfigurationsmanagement unterstützt, denn dadurch werden alle erzeugten Versionen eines Programms gespeichert und sind jederzeit wiederherstellbar. Gravierende Fehler können auf diese Weise umgehend durch das Einsetzen der Vorgängerversion behoben werden. Durch diese beiden Vorgehensweisen hat das Team die Möglichkeit das Scheitern durch Fehler im Code zu minimieren und sich jederzeit ein eigenes Feedback zur Qualität des Arbeitsstandes zu verschaffen. Da innerhalb der Crystal-Clear Methode ausführlich getestet wird, erhält das Kriterium die Note 1.

3.3.9 Betrieb

Der Produktivbetrieb wird bei der Crystal-Clear Methode nicht ausreichend betrachtet. Die kontinuierlichen Tests und Implementierungen während der Projektlaufzeit führen zwar weitesgehend zu einer Fehlerbeseitigung, sodass in der Regel ein Produkt mit hoher Qualität ausgeliefert werden kann. Jedoch gibt es keine festen Regelungen, wie der Betrieb beim Endanwender sichergestellt wird. Da in der Crystal-Methode kein besonderer Fokus auf ausführliche Beschreibungen und Dokumentationen gelegt wird, kann es im Produktionsbetrieb zu erheblichen Störungen kommen. Der Betrieb erhält daher die Note 4 mit Tendenz zur Note 5.

3.3.10 Systemdesign

Das Kriterium Systemdesign muss differenziert betrachtet werden. Einerseits wird innerhalb des laufenden Projektes sehr gut auf die Anforderungen und Anpassungswünsche des Endanwenders eingegangen, andererseits kann die Benutzerfreundlichkeit und Funktionalität trotz ausreichender Integration sinken, da sich die Anforderungen in der täglichen Nutzung verändern können. Daher wird das Systemdesign mit der Note 3 bewertet.

4 Fazit

Crystal Clear erfüllt die Bewertungskriterien in gutem Maße und erreicht eine durchschnittliche Bewertung von 2,8. Diese Bewertung lässt sich auf die gesamte Crystal-Methodenfamilie übertragen, da alle mit einem einheitlichen genetischen Code erzeugt werden.
Durch die relativ einfache Handhabung von Crystal erfreut diese sich in der Praxis großer Beliebtheit. Bei der Verwendung von Crystal müssen insbesondere die ersten drei Eigenschaften eingehalten werden, damit ein Projektteam publizieren darf, dass Crystal im Projekt verwenden wurde.
Für den Erfolgsfaktor eines Projektes gilt: Je mehr Eigenschaften eingehalten werden, desto höher ist die Wahrscheinlichkeit eines erfolgreichen Projektverlaufes. Darüberhinaus gibt es spezielle Tools zur Unterstützung, um das Arbeiten mit der Crystal-Methodenfamilie zu erleichteren.
Abschließend betrachtet ist nachvollziehrbar, dass Crystal besonders in den Bereichen Projekt-Management, Qualitäts-Management, Requirement-Management, Implementierung und Test punktet, da sich diese Kriterien mit ihren Anforderungen nahe an den sieben Eigenschaften von Crystal bewegen.
Die Kommunikation und Reflektion muss durch einen erfahren Projektleiter stets fokussiert werden. Zu diesem Zweck sollte für das Projektteam ein Großraumbüro (inkl. eines Whiteboards) zur Verfügung stehen, um die osmotische Kommunikation in der Gruppe zu gewährleisten.
Bei der Analyse der Crystal-Methodenfamilie wird deutlich, dass gerade die freie Gestaltung der Arbeitsprozesse einen wesentlichen Erfolgsfaktor darstellt. Da nach dem Projektabschluss kein weiterer Kontakt zwischen dem ehemaligen Projektteam und dem Endanwender vorgesehen ist, hat die Methode Crystal im Bereich der Wartung eindeutig Verbesserungspotenzial.
Innerhalb dieser Fallstudie wird deutlich, dass die Benutzung von Crystal in Projekten gerechtfertig ist. Durch die hohe Flexibilität während der kompletten Projektlaufzeit sind auch komplexe Strukturen leicht abbildbar. In regelmäßigen Teammeetings wird jeder einzelne Projektmitarbeiter angehört und gewertschätzt. Dies fördert das Vertrauen untereinander, welches für einen erfolgreichen Projektabschluss unabdingbar ist. Der erfolgreiche Einsatz von Varianten der Crystal-Familie in verschiedenen Unternehmen untermauert die Ergebnisse dieser Fallstudie[27].

5 Abkürzungsverzeichnis

AbkürzungBedeutung
WB Wirtschaftliche Betrachtung
PM Projekt-Management
QM Qualitäts-Management
RM Requirement-Management
IMP Implementierung
INT Integration
W Wartung
T Test
B Betrieb
SD Systemdesign

6 Abbildungsverzeichnis

Abb.-Nr.Abbildung
1 Projekteinordnung nach Crystal
2 Lernphasen des Aikido
3 Osmotische Kommunikation
4 Projektablauf
5 Bewertungsdiagramm

7 Tabellenverzeichnis

Tabelle Nr.Quelle
1 Bewertungsskala


8 Fußnoten

  1. Vgl. Cockburn (2005), Seite 17
  2. Vgl. Wolf, Kemp (2008), Seite 14
  3. Vgl. Cockburn (2005), Seite 17
  4. Vgl. Cockburn (2006), Seite 196
  5. Vgl. Cockburn (2005), Seite 246
  6. Vgl. Roskothen(2007), Seite 1
  7. Vgl. Cockburn(2005), Seite 40
  8. Vgl. Cockburn (2005), Seite 39 ff.
  9. Vgl. Cockburn (2005), Seite 29
  10. Vgl. Cockburn (2005), Seite 51
  11. Vgl. Cockburn (2006), Seite 342 f.
  12. Vgl. Cockburn (2006), Seite 342
  13. Vgl. Cockburn (2006), Seite 338
  14. Cockburn (2005), Seite 51
  15. Cockburn (2005), Seite 51
  16. Vgl. Cockburn (2005), Seite 52
  17. Vgl. Cockburn (2005), Seite 55
  18. Vgl. Cockburn (2005), Seite 59
  19. Vgl. Cockburn (2005), Seite 57
  20. Vgl. Cockburn (2005), Seite 62 f.
  21. Vgl. Cockburn (2005), Seite 65
  22. Vgl. Cockburn (2005), Seite 67
  23. Vgl. Cockburn (2005), Seite 70 f.
  24. Vgl. Cockburn (2006), Seite 338
  25. Vgl. IDG (2010)
  26. Vgl. Cockburn (2006), Seite 340
  27. Vgl. Cockburn (2005), Seite 289 ff.


9 Literatur- und Quellenverzeichnis

Beck (2001) Beck, Kent et al.: The Manifesto for Agile Software Development, Agile Alliance, 2001, http://www.agilealliance.org/the-alliance/the-agile-manifesto/ (16.06.2011, 9:59)
Cockburn (2005) Cockburn, Alistair: Crystal Clear: Agile Software-Entwicklung für kleine Teams, 1. Auflage, mitp-Verlag, Bonn 2005
Cockburn (2006) Cockburn, Alistair: Agile Software Development: The Cooperative Game, 2nd Edition, Addison-Wesley-Verlag, Boston 2006
IDG (2010) Software Infrakstruktur, Crystal, Agile Softwareentwicklung, IDG BUSINESS MEDIA GMBH, München 2010, http://www.computerwoche.de/software/software-infrastruktur/2352325/(01.06.2011, 13:31)
Roskothen (2007) Roskothen, Peter: “Shu Ha Ri” – die Lernstufen im Budo / Aikido, 2007, http://www.aikido-blog.de/shu-ha-ri-die-lernstufen-im-budo-aikido/ (16.06.2011, 10:12)
it-agile GmbH (2011) it-agile GmbH, Die Crystal-Methodenfamilie, http://www.it-agile.de/crystal.html (07.06.2011, 9:49)
Wolf, Kemp (2008) Henning Wolf, Christoph Kemp: XP, Scrum, Crystal, FDD: Welche agile Methode passt zu uns?, it-agile GmbH (Hrsg.), 2008, http://www.sigs.de/download/oop_08/Wolf_Kemp%20di4-2.pdf (07.06.2011, 9:58)
Persönliche Werkzeuge