Extreme Programming - eine Einführung

Teil 1:
Grundlagen und Prinzipien von Extreme Programming
Warum ist Software zu teuer, kommt zu spät, tut nicht genug oder ist einfach schlecht? Extreme ProgrammingExtreme ProgrammingExtreme Programming ist eine Arbeitsmethode zur kundenorientierten Entwicklung von Software, die sich auf den zu erstellenden Quellcode und den kürzesten Weg dorthin konzentriert. Typisch für Extreme Programming ist die enge Verflechtung von Entwicklung und Qualitätssicherung in sehr kurzen Zyklen (Programmierung in Paaren), das Arbeiten in kleinen, flexiblen Teams mit fest definierten Rollen und der beständige Kontakt zum Kunden, der beständig verfügbar sein muss. (XP) zeigt Wege, ein Projekt auch unter klassisch schwierigen Bedingungen auf Qualität und EffizienzEffizienzEffizienz kommt vom lateinischen efficientia: Wirksamkeit, Tätigkeit. Effizienz ist also das Erstellen eines Werks, bzw. die zielgerichtete Tätigkeit. Im technischen Sinne wird Effizienz in erster Linie als Wirkungsgrad verwendet: Das Verhältnis von abgegebener zu aufgenommener Leistung eines Systems. zu optimieren. Diese ausführliche Einführung umfasst drei Teile. Der erste Teil klärt die Frage, was Extreme Programming eigentlich ist, erläutert die wichtigsten Grundlagen und geht auf die Prinzipien hinter XP ein. Zwei weitere Teile beschäftigen sich mit der Historie von XP, den Einsatzgebieten und Zielen, den Verfahren zur ProjektplanungProjektplanungProjektplanung ist der Prozess, Ablauf, Umfang, Kosten, Ressourcen, Qualität und andere Aspekte eines Projekts zu planen. und Entwicklung und mit den spezifischen Rollen in einem extremen Projekt.

 

Download PDFDownload PDF

Artikelserie

  1. Grundlagen und Prinzipien von Extreme Programming
  2. Einsatzgebiete und Ziele
  3. Entwicklungsverfahren, Rollen im Projekt und Erfahrungen

Extreme Programming - eine Einführung

Teil 1:
Grundlagen und Prinzipien von Extreme Programming
Warum ist Software zu teuer, kommt zu spät, tut nicht genug oder ist einfach schlecht? Extreme ProgrammingExtreme ProgrammingExtreme Programming ist eine Arbeitsmethode zur kundenorientierten Entwicklung von Software, die sich auf den zu erstellenden Quellcode und den kürzesten Weg dorthin konzentriert. Typisch für Extreme Programming ist die enge Verflechtung von Entwicklung und Qualitätssicherung in sehr kurzen Zyklen (Programmierung in Paaren), das Arbeiten in kleinen, flexiblen Teams mit fest definierten Rollen und der beständige Kontakt zum Kunden, der beständig verfügbar sein muss. (XP) zeigt Wege, ein Projekt auch unter klassisch schwierigen Bedingungen auf Qualität und EffizienzEffizienzEffizienz kommt vom lateinischen efficientia: Wirksamkeit, Tätigkeit. Effizienz ist also das Erstellen eines Werks, bzw. die zielgerichtete Tätigkeit. Im technischen Sinne wird Effizienz in erster Linie als Wirkungsgrad verwendet: Das Verhältnis von abgegebener zu aufgenommener Leistung eines Systems. zu optimieren. Diese ausführliche Einführung umfasst drei Teile. Der erste Teil klärt die Frage, was Extreme Programming eigentlich ist, erläutert die wichtigsten Grundlagen und geht auf die Prinzipien hinter XP ein. Zwei weitere Teile beschäftigen sich mit der Historie von XP, den Einsatzgebieten und Zielen, den Verfahren zur ProjektplanungProjektplanungProjektplanung ist der Prozess, Ablauf, Umfang, Kosten, Ressourcen, Qualität und andere Aspekte eines Projekts zu planen. und Entwicklung und mit den spezifischen Rollen in einem extremen Projekt.

 

Warum ist Software zu teuer, kommt zu spät, tut nicht genug oder ist einfach schlecht? Während viele ProjektmanagerProjektmanagerEin Projektmanager plant, koordiniert und überwacht ein Projekt - ein einmaliges, zeitlich begrenztes Vorhaben mit temporärer Organisationseinheit und einem konkreten Ziel . Je nach Größe des Projekts und den hierfür notwendigen Kenntnissen, der erforderlichen Arbeitskapazität und dem gegebenen Budget arbeitet ein Projektmanager allein oder mit einem Projektteam an seinem Vorhaben. Im Gegensatz zu Projektleiter/in ist "Projektmanager/in" nicht in der DIN festgelegt. Häufig werden die beiden Begriffe  Projektmanager  und Projektleiter gleichgesetzt, im englischen Sprachraum gibt es keine Unterscheidung. meinen, der ProzessProzessEin Prozess ist nach ISO 8402 durch folgende Eigenschaften charakterisiert: Er besteht aus einer Menge von Mitteln und Tätigkeiten. Zu den Mitteln können Personal, Geldmittel, Anlagen, Einrichtungen, Techniken und Methoden gehören. Diese Mittel und Tätigkeiten stehen in Wechselbeziehungen Ein Prozess erfordert Eingaben. Ein Prozess gibt Ergebnisse aus. zur Software-Entwicklung sei nicht detailliert genug beschrieben oder kontrolliert, vertritt Extreme Programming eine andere Meinung.

Traditionelles Software-Engineering ist durch einen vorhersagbaren Prozess charakterisiert. Dieser Prozess ist aus anderen Ingenieurswissenschaften entlehnt, und Software-Entwicklung wird oft durch Analogien zu Maschinenbau, Elektrotechnik oder Architektur beschrieben. Ihrer Meinung nach sollen Software-Kunden einmal eindeutig erklären, was sie erwarten. Das SystemSystemProjekte sind Systeme und beziehen sich auf Systeme. Um Projekte erfolgreich abwickeln zu können, muss das betreffende System analysiert und umfassend betrachtet werden. wird dann mit allen Features entwickelt, getestet und ausgeliefert, und alle sind zufrieden.

So vorhersagbar ist die Welt nur leider nicht. Kunden ändern ihre Meinung, und Entwickler irren sich. Ausgetüftelte Strategien, mit solchen Unwägbarkeiten klarzukommen, wurden entwickelt - und berühren kaum das Kernproblem. Anstatt noch mehr vorherzusehen und zu berücksichtigen, müssen viele Projekte Änderungen als normal begreifen und mit den dadurch entstehenden Kosten umzugehen lernen. Extreme Programming (XP) zeigt Wege, ein Projekt auch unter klassisch schwierigen Bedingungen auf QualitätQualitätQualität ist der zentrale Begriff des Qualitätsmanagements und wird dort äußerst differenziert diskutiert. Für die Praxis im Projektmanagement ist es wichtig zu verstehen, dass "Qualität" durch vier Aspekte beschrieben ist: Die Einheit (engl.: entity), d.h. der Gegenstand der Betrachtung Die konkrete Beschaffenheit der Einheit (engl.: totality of characteristics and their values) Die Anspruchsklasse, nach der die Einheit bewertet wird Die Qualitätsforderung, an der die Beschaffenheit gemessen wird und Effizienz zu optimieren.

Diese ausführliche Einführung umfaßt drei Teile. Der erste Teil klärt die Frage, was Extreme Programming eigentlich ist, erläutert die wichtigsten Grundlagen und geht auf die Prinzipien hinter XP ein. Zwei weitere Teile beschäftigen sich mit der Historie von XP, den Einsatzgebieten und Zielen, den Verfahren zur Projektplanung und Entwicklung und mit den spezifischen Rollen in einem extremen Projekt.

Was ist Extreme Programming?

Extreme Programming ist ein leichtgewichtiger, durch RisikomanagementRisikomanagementRisikomanagement ist der Teil des Projektmanagements, der sich mit der Identifizierung, Analyse und Beherrschung von Risiken für die geplante Projektabwicklung beschäftigt. und Software-Struktur gesteuerter Prozess zur Softwareentwicklung (Siehe Kent Beck: Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999). XP verzichtet auf Analogien zu anderen Ingenieursdisziplinen und bezieht sich ausschließlich auf Software.

Dabei setzt XP bekannte Prinzipien und Verfahren, die einzeln erprobt sind, in neuer Sichtweise zu einem Ganzen zusammen. Alles Gute wird betont, alles Unnötige weggelassen. Kent Beck, einer der Erfinder, versieht XP mit den Attributen "leicht, effizient, risikoarm, flexibel, vorhersagbar, menschlich und spaßig".

XP verlangt Disziplin und Verantwortungsbewusstsein

XP ist interessant, weil es Qualität und Effizienz in den Vordergrund der Entwicklung rückt und periphere Aufgaben zu vermeiden sucht. Wer gewohnt ist, mit schwergewichtigen Prozessen wie dem Capability Maturity ModelCapability Maturity ModelDas Capability Maturity Model (CMM) wurde in den 90er Jahren vom Verteidigungsministerium der USA entwickelt, um die Qualität von Software-Zulieferern standardisiert beurteilen zu können. Es beschreibt den "Reifegrad der Fertigkeit" (Capability Maturity) in fünf Stufen, angefangen vom einfachen, unstrukturierten Programmieren bis hin zum standardisierten und beständig optimierten Software-Entwicklungsprozess. (CMM) umzugehen, mag XP als Hacken empfinden. Das ist es nicht - XP verlangt viel Disziplin und Übernahme von Verantwortung. Allerdings kann XP nicht aus einem Lehrbuch abgeschrieben oder als Software-Lösung gekauft werden, sondern muss im jeweiligen Projekt von den beteiligten Personen zum Leben erweckt werden.

Download PDFDownload PDF

Jetzt Feedback geben und mitdiskutieren!

Wir würden uns über Ihre Bewertung und/oder einen Kommentar freuen ‒ nur so können wir Ihnen in Zukunft noch bessere Inhalte liefern.

Diese Funktion steht nur eingeloggten Nutzern zur Verfügung.
0 Kommentare anzeigen & selbst mitreden!
Gesamt
Bewertungen 0
Kommentare 0

Fortsetzungen des Fachartikels

Teil 2:
Einsatzgebiete und Ziele
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.
Teil 3:
Entwicklungsverfahren, Rollen im Projekt und Erfahrungen

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 …