Definition „Extremprogrammierung“

Was ist Extreme Programming?

| Autor / Redakteur: HJL / Stephan Augsten

Beim Extreme Programming stehen möglichst kurze Iterations- und Entwicklungszyklen sowie die Kundenorientierung im Vordergrund.
Beim Extreme Programming stehen möglichst kurze Iterations- und Entwicklungszyklen sowie die Kundenorientierung im Vordergrund. (Bild: geralt - Pixabay.com / CC0)

Der Begriff „Extreme Programming (XP)“ beschreibt im Wesentlichen die Art und Weise, wie Software programmiert wird. Agile Prozesse, kurze Entwicklungszyklen und schnelle Reaktionszeiten auf neue oder sich ändernde Anforderungen stehen dabei im Vordergrund.

Als Vater des Extreme Programming gilt der amerikanische Software-Ingenieur Kent Beck. Gemäß Insidern aus der Software-Programmierer-Szene beschreibt XP den extremsten Fall hinsichtlich agiler Vorgehensmethodik bei der Software-Programmierung. Die „Feuertaufe“ bestand XP in den Jahren 1997-1998 bei der programmtechnischen Umsetzung des Daimler-Chrysler „Project C“ – Chrysler Consolidated Compensation.

Das interne Softwareprogramm für eine neue Mitarbeiter-Gehaltsabrechnung war in eine kritische Sackgasse geraten. Eine vom Autobauer engagierte Software-Entwicklungsgruppe um Kent Beck setzte das Projekt, basierend auf der Methode „Extreme Programming“ neu auf. Der neue Weg war von Erfolg gekrönt.

Beck fasste die in diesem Projekt gesammelten Erfahrungen in seinem Buch „Extreme Programming Explained“ zusammen. Als Gerüst für die Rahmenbedingungen der Extremprogrammierung bezeichnet der Autor darin die drei Hauptbestandteile

  • Werte (Values),
  • Prinzipien (Principles) und
  • Techniken (Practices).

Charakteristisch: zyklische Vorgehensweise

Charakteristisch beim Extreme Programming ist die zyklische Verfahrensweise auf den Entwicklungsprojekt-Ebenen. Diese Struktur betrifft die eigentliche Programmierung. Sie wirkt aber auch prägend auf die obligatorische Abstimmung im Entwicklungsprojekt-Team.

Diesem Zyklus unterliegt letztlich auch das gemeinsam mit dem Kunden definierte Anforderungsmanagement. Spätestens an dieser Stelle wird deutlich, dass XP auf einen vom Kunden strikt vorgegebenen Projekt-Anforderungskatalog bewusst verzichtet.

An seine Stelle tritt das sogenannte „Agile Modeling“. Es ermöglicht die Berücksichtigung von Kundenwünschen im Laufe der voran schreitenden Software-Entwicklung. So entstehen Entwicklungszyklen in Einheiten von einem Tag bis zu einer Woche. Sämtliche Themeninhalte einer komplexen Programmentwicklung, zum Beispiel

  • Analyse der Anforderungen
  • Produkt Design
  • Implementierung
  • Testphasen und Testtiefe

werden in diesen kurzen Zyklen aktualisiert und in den weiteren Entwicklungsprozess implementiert.

Diese zeitnahe und problemorientierte Verfahrensweise trägt der Erkenntnis Rechnung, dass Kunden und Auftraggeber die tatsächlichen Anforderungen und Leistungsprofile bei Projektbeginn oft nicht im Detail kennen. Die Erfahrung bei der klassischen Projektvorgabe zeigt auf, wie Pflichtenhefte häufig mit entbehrlichen Features belastet werden, während essentielle Funktionen vergessen werden.

Vorteile von XP bei komplexen Entwicklungsprojekten

Die Vorteile von Extreme Programming entfalten insbesondere bei komplexen Software-Entwicklungsprojekten ihre problemorientierte Wirkung. An die Stelle einer komplexen, starren Projektvorgabe tritt die in kürzere Iterationszyklen unterteilte Vorgehensweise.

Auf diesem Wege wird die Software-Entwicklung vereinfacht, was die aktive Einbindung der Kunden und Auftraggeber in das Projekt ermöglicht. Insbesondere diese Möglichkeit der Kommunikation mit dem Kunden gibt den nächsten Programm-Entwicklungsschritten eine konkrete Richtung. Kundenwünsche lassen sich zeitnah korrigieren, revidieren oder ergänzend konkretisieren.

Die Software-Entwicklung lässt sich dank dieser zyklischen Vorgehensweise signifikant beschleunigen. Auch der mit dem reduzierten Zeitaufwand gekoppelte Kostenaspekt birgt Einsparpotenziale. Im günstigsten Falle bewirkt das Zusammenspiel erfahrener Programmierer in Verbindung mit aktiv eingebundenen Kunden Projektvorteile, die sich mit Hilfe des Extreme Programming in Form eines qualitativ hochwertigen, passgenauen Software-Programms darstellen.

Zu guter Letzt sollte noch einmal darauf hingewiesen werden, dass das in Verbindung mit der Extremprogrammierung und ihrer Organisationsform anzutreffende Kürzel „XP“ keinerlei Bezug zum Betriebssystem Windows XP hat, bei dem es für Experience stand.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

5 Gründe, warum Scrum und Agile scheitern

Agile Softwareentwicklung in der Realität

5 Gründe, warum Scrum und Agile scheitern

In der Softwareentwicklung kommen zunehmend agile Methoden zum Einsatz. Zahlreichen erfolgreichen Projekten stehen aber auch viele missglückte gegenüber. Doch warum scheitert der agile Ansatz und wie lässt sich dieses Scheitern verhindern? lesen

SecDevOps – Sichere, agile Softwareentwicklung

Sicherheit sollte nicht an letzter Stelle stehen

SecDevOps – Sichere, agile Softwareentwicklung

Gegenüber linearen Entwicklungsmethoden wie dem Wasserfallmodell bietet agile Softwareentwicklung einige Vorteile. Bei der Sicherheit gibt es dabei aber einige Knackpunkte, die Janosch Maier von Crashtest Security genauer dargelegt hat. lesen

Was ist Ruby?

Definition „Ruby (Programmiersprache)“

Was ist Ruby?

Ruby ist eine objektorientierte Programmiersprache, welche bereits im Jahr 1995 entwickelt wurde und seitdem in verschiedenen Bereichen eingesetzt wird. Seit dem Jahr 2012 ist die sogenannte Ruby-Norm unter der Norm ISO/IEC 30170 exakt spezifiziert. lesen

Was ist Pair Programming?

Definition „Paarprogrammierung“

Was ist Pair Programming?

Beim Pair Programming arbeiten zwei Entwickler an einem Rechner, um gemeinsam eine Aufgabe zu lösen. Die Methode soll die Qualität des Codes steigern, Wissen gleichmäßig verteilen und langfristig die Kommunikation und Produktivität im Team steigern. lesen

Wichtige Methoden agiler Softwareentwicklung

eBook-Exzerpt – Arbeitsmethoden der Entwicklerteams

Wichtige Methoden agiler Softwareentwicklung

Die agile Softwareentwicklung ermöglicht schnellere und effizientere Entwicklung bei minimalem Aufwand. Doch welche Methoden gibt es, um Software agil zu entwickeln? lesen

Mit agilen Methoden effizienter arbeiten

eBook „Agile Softwareentwicklung“

Mit agilen Methoden effizienter arbeiten

Agile Softwareentwicklung ist das große Thema des 21. Jahrhunderts. Doch was bedeutet Agilität eigentlich? Welche Methoden gibt es? Und was ist bei der Umsetzung zu beachten? Das eBook „Agile Softwareentwicklung“ hilft Ihnen möglicherweise dabei, wichtige Entscheidungen zu treffen. lesen

Der Druck, im Konzern agil zu werden

Erfahrungsbericht eines Agile-Beraters

Der Druck, im Konzern agil zu werden

Agilität verspricht höhere Flexibilität, mehr Dynamik, schnelle Reaktionszeiten – auf Kundenwünsche, Veränderungen im Markt oder regulatorische Anforderungen. Doch sind agile Prozesse der Königsweg für alles und jeden, auch für Konzerne? lesen

Continuous Integration mit Swift und Jenkins

App-Entwicklung mit Apple Swift, Teil 4

Continuous Integration mit Swift und Jenkins

Kontinuierliche Integration macht es möglich, Apps mit minimalem Aufwand zu optimieren und zu testen. Auch im Falle von Swift ist diese Praxis vorgesehen. Apple setzt dabei auf Jenkins. lesen

Extreme Programming – diese Skills sind gefragt

Programmieren ist eine soziale Aktivität

Extreme Programming – diese Skills sind gefragt

Extreme Programming oder kurz XP bricht – ganz so, wie man es sich in der agilen Software-Entwicklung wünscht – konservative Development-Prozesse auf und setzt sie als fortlaufende Iteration in kürzeren Zyklen wieder zusammen. Das verlangt manchen Entwicklern ein Umdenken ab. Welche Skills müssen sie für Extreme Programming mitbringen? lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45073954 / Definitionen)