Flexibel entwickeln – Agile Programmierung in IT-Projekten

14.11.2013, Autor: Herr Jörg Bange / Lesedauer ca. 2 Min. (591 mal gelesen)
Agile Softwareentwicklung soll kostenintensive Fehlentwicklungen vermeiden. Die Besonderheiten dieser Projektmethode sollten in den Verträgen berücksichtigt werden.

Fast jedes IT-Projekt bereitet Probleme, Budgets und Termine werden nicht eingehalten. Änderungswünsche und Fehlplanungen sind die häufigsten Ursachen. Die agile Softwareentwicklung setzt an den Schwächen der klassischen Projektmethode einer umfangreichen Planung und entsprechender Umsetzung an. Sie basiert auf der Erkenntnis, dass ein Softwareprojekt flexibel auf Anforderungen und Probleme reagieren muss und das Festhalten an einem starren Plan in der Softwareentwicklung zwar ein Ergebnis bringt, welches jedoch nicht zwingend den Bedürfnissen des Kunden entspricht.

Grundzüge der agilen Programmierung

Agile Programmierung verzichtet auf eine umfangreiche Planungsphase mit einem Pflichten-/ und Lastenheft und entwickelt in kurzen Entwicklungsschritten funktionsfähige Programmierergebnisse, die dem Kunden jeweils vorgestellt werden. In enger Abstimmung mit dem Kunden werden seine Anforderungen umgesetzt und Änderungen flexibel aufgenommen. Auf eine zeitintensive Dokumentation wird überwiegend verzichtet. Es besteht eine enge Zusammenarbeit der Projektpartner, die teure Fehlentwicklungen vermeiden soll.

Vertragsgestaltung

In der Vertragsgestaltung von solchen Projekten sollte sich die agile Projektmethodik auch in den juristischen Regelungen wiederfinden. Häufig werden solche Verträge wie klassische werkvertragliche Entwicklungsverträge gestaltet, so dass sich für den IT-Anbieter eine umfassende Erfolgsverpflichtung ergibt. Dies widerspricht jedoch dem eigentlichen Ansatz, dass nämlich das Endergebnis der Entwicklung von vornherein nicht feststeht.
Empfehlenswert ist ein Rahmenvertrag, auf dessen Grundlage Teilprojekte definiert, beauftragt und durchgeführt werden. Soweit möglich, sollten der Zweck und die Kernanforderungen an die Softwareentwicklung bestimmt werden. Die konkret eingesetzte agile Projektmethodik (wie z.B. die Scrum-Methode) sollte beschrieben, die Mitwirkungspflichten des Kunden definiert werden. Verantwortlichkeiten, Abnahmeprozeduren sowie Gewährleistungen gehören ebenfalls in diesen Rahmen. Der Kunde sollte sich kurzfristige Kündigungsmöglichkeiten einräumen lassen.

Entwicklungsschritte als Teilprojekte

Die Parteien vereinbaren dann jeweils ein bestimmtes Teilprojekt, welches in kleinen Schritten basierend auf den jeweils vereinbarten Vorgaben nach der agilen Methodik umgesetzt wird, bei der Scrum-Methode „Sprints“ genannt. Kurzfristige Meetings zwischen den Projektleitern werden fest vereinbart, Projekt- und Fristenpläne fortlaufend fortgeschrieben. Für jeden Teilschritt wird eine Abnahme- bzw. Freigabeprozedur durchgeführt, z.B. als Sprint-Review, hierauf basierend der nächste Entwicklungsschritt geplant.

Vergütung und Budgetkontrolle

Die Vergütung kann nach Aufwand vereinbart werden, in jedem Fall sollte eine Obergrenze gezogen werden. Empfehlenswert ist die Festlegung eines Budgets mit kurzfristigen und aktuellen Reportingpflichten des Entwicklers über den voraussichtlichen und verbrauchten Aufwand für ein Teilprojekt oder eines Sprints zur Prüfung durch den Kunden.

Fazit

Die agile Entwicklungsmethodik ist nicht das Allheilmittel für jedes IT-Projekt. Bestimmte Projekte, wie zum Beispiel die Einführung von Standardsoftware mit Einrichtungs- und Anpassungsleistungen sind ggf. bei einer klassischen Projektmethodik besser aufgehoben. Bei der Vertragsgestaltung sollten die Parteien auch Flexibilität mit Blick auf die gesetzlichen Regelungen zeigen. Der Kunde sollte akzeptieren, dass Entwicklungen nicht direkt zum Ziel führen und trotzdem zu bezahlen sind. Aufgrund der kurzfristigen Prüfungs- und Abstimmungsintervalle kann das Risiko einer teuren Fehlentwicklung jedoch reduziert werden.

Jörg Bange, Rechtsanwalt
Fachanwalt für Urheber- und Medienrecht