Service-Vergabe bei IT-Projekten

Vorsicht bei der Auslagerung der Software-Entwicklung!

| Autor / Redakteur: Dr. Jens Kawelke und Dr. Jens Buchholz* / Elke Witmer-Goßner

Software Engineering Lifecycle bei agiler Entwicklung.
Software Engineering Lifecycle bei agiler Entwicklung. (Bild: NTT Data)

Wenn Firmen das Software-Engineering an externe Dienstleister vergeben, müssen sie zunächst geeignete Partner finden. Egal, ob es um ein Bestandsführungssystem für eine Versicherung oder die Entwicklung einer App geht.

Unternehmen stehen dabei vor einer Reihe von Herausforderungen: Kann ein Anbieter mehrere Teilschritte der Entwicklung übernehmen? Welche Vor- und Nachteile hat es mit einem oder mehreren Dienstleistern zu arbeiten? Bevor ein Unternehmen sich für einen oder mehrere Anbieter entscheidet, sollten sich die Verantwortlichen Gedanken über den Software Engineering Lifecycle, also den Entwicklungsprozess machen. Dieser umfasst eine Reihe von Schritten – auch Services genannt: Vom Requirements Engineering, bei dem die Anforderungen an die Software detailliert beschrieben werden müssen, bis zum Test am Ende des Zyklus. Verschiedene Kombinationen bieten unterschiedliche Vor- und Nachteile.

Lineare Darstellung des Software Engineering Lifecycle.
Lineare Darstellung des Software Engineering Lifecycle. (Bild: NTT Data)

Der Auftraggeber muss zunächst eine Entscheidung treffen, ob er nur einzelne Dienste an externe Partner oder die komplette Entwicklung vergeben will. Hierfür spielt die Entwicklungsmethode eine Rolle: Ob das Unternehmen mit agiler Softwareentwicklung – heute die gängigste Methode – arbeitet oder eher mit dem traditionellen Wasserfallmodell. Steht die Entwicklungsmethode fest, sollten Unternehmen bei der Vergabe eines IT-Projekts folgende Punkte beachten: das Für und Wider einer Komplettvergabe an einen Dienstleister, Konkurrenz zwischen mehreren Partnern, Kontrollmechanismen und verschiedene Abrechnungsmodelle.

Alles aus einer Hand

Manche Unternehmen vergeben ein komplettes Projekt an einen Dienstleister. Andere Firmen ziehen es vor, einzelne Services an verschiedene Dienstleister auszulagern. In jedem Fall lohnt es sich, einen Blick auf die Vorteile einer Komplettvergabe zu werfen. So können Auftraggeber beispielsweise ein eingespieltes Team ins Rennen schicken. Kollegen geben Informationen untereinander besser weiter als Konkurrenten, die dem jeweils anderen keinen Vorteil verschaffen möchten. Auf diese Weise schreitet die Entwicklung schnell voran, wodurch Unternehmen bares Geld sparen können.

Manche Auftraggeber schließen eine Komplettvergabe allerdings generell aus, weil sie sich nicht von einem Provider abhängig machen möchten. Sie verteilen die einzelnen Entwicklungsschritte also an möglichst viele Unternehmen. Diese Firmen befürchten, dass ein Dienstleister nur eine unvollständige Dokumentation bereitstellt, um später einen Wechsel zu einem anderen Anbieter zu erschweren. Ein weiterer Nachteil: Es gibt weniger Full-Service-Anbieter für Softwareentwicklung als Dienstleister, die Teilschritte beherrschen. Mit einer Komplettvergabe schränkt ein Unternehmen die Auswahlmöglichkeiten also automatisch ein. Nicht zuletzt spielt das Vertrauensverhältnis zwischen Auftraggeber und Dienstleister eine wichtige Rolle. Das Unternehmen sollte sich sicher sein, den richtigen Partner gefunden zu haben. Andernfalls empfiehlt es sich eher einzelne Schritte an unterschiedliche Anbieter auszulagern.

Software Engineering Lifecycle bei agiler Entwicklung.
Software Engineering Lifecycle bei agiler Entwicklung. (Bild: NTT Data)

Bei agilen Projekten kommt der Zusammenarbeit zwischen den Services noch eine viel größere Bedeutung zu als bei der Softwareentwicklung nach dem Wasserfallmodell. Die verschiedenen Schritte, beispielsweise Requirements Engineering und Entwicklung, müssen immer wieder aufs Neue für unterschiedliche Teile der Software durchlaufen werden. So kann es zu Schwierigkeiten kommen, wenn verschiedene Partner die Services erbringen. Schließlich müssen hierfür Konkurrenten zusammenarbeiten. Es besteht die Gefahr, dass sie sich gegenseitig die Schuld für Fehler in die Schuhe schieben, etwa wenn die Wünsche des Auftraggebers nicht klar genug beschrieben wurden.

Einzelvergabe von Services

Manche Unternehmen ziehen es vor, einzelne Schritte an hochspezialisierte Provider zu vergeben – in manchen Fällen sogar projektübergreifend. Dies macht insbesondere dann Sinn, wenn fachlich, methodisch oder technologisch Spezialwissen erforderlich ist. Es gibt einige IT-Dienstleister, die sich tatsächlich nur auf einzelne Teilschritte im Software Engineering Lifecycle konzentrieren und deshalb über einen großen Erfahrungsschatz verfügen. Dies können zum Beispiel die Bereiche Test oder Requirements Engineering sein.

Der Auftraggeber muss sich allerdings über den Mehraufwand im Projektmanagement bezüglich der Steuerung des Dienstleisters bewusst sein. Es ist außerdem wichtig, Services sauber voneinander abzugrenzen und Lücken zwischen den Teilschritten zu schließen. Dies ist besonders in agilen Projekten schwierig. Hier müssen die Verantwortlichen für die unterschiedlichen Prozesse noch stärker zusammenarbeiten als in klassischen Vorgehensmodellen.

Kontrolle ist besser

Um zu gewährleisten, dass die Services nahtlos ineinandergreifen, ist es notwendig, dass der Auftraggeber entsprechende Fachleute an den Schnittstellen zwischen den Services positioniert. In einem agilen Projekt nach SCRUM könnte dies zum Beispiel der Product Owner sein. Dieser Kontrollmechanismus hilft dabei, Risiken beim Outsourcing der Softwareentwicklung zu minimieren: Beispielsweise, dass Mitarbeiter des Service-Providers Fehler eines Kollegen nicht offenlegen, um ihn nicht in einem schlechten Licht erscheinen zu lassen. Dabei gilt: Je mehr externe Partner beteiligt sind, desto mehr eigene Mitarbeiter sind für die Kontrolle nötig. Ist dies nicht möglich, sollte sich der Auftraggeber zumindest regelmäßig anhand einer umfassenden Dokumentation einen Überblick über den aktuellen Stand des Projekts verschaffen.

Nur die Leistung zählt

Es gibt verschiedene Preismodelle bei Softwareentwicklungsprojekten, die von der Programmiermethode abhängen. Eine ist „Time and Material“, bei der die Arbeitsstunden entlohnt werden. In den meisten Fällen vereinbaren Auftraggeber und Partner hierfür einen maximalen Preis. Auftraggeber sollten darauf bestehen. Nur so können sie verhindern, dass die Kosten uferlos steigen. Anders bei einem Festpreis: Hier wird ein fixer Preis für das Projekt vereinbart. Der Vorteil für den Auftraggeber ist der geringere Verwaltungsaufwand im Vergleich zur Variante „Time and Material”. Allerdings ist ein Festpreis nur bei der Komplettvergabe des gesamten Projekts an einen Dienstleister möglich. Bei einem Festpreis ist es zudem besonders wichtig, den Leistungsumfang beim Vertragsabschluss genau festzulegen. Nur so können Unstimmigkeiten bei der Abrechnung vermieden werden.

Da bei agilen Projekten zu Beginn meist noch kein vollständiger Anforderungskatalog vorhanden ist, ist es oft schwierig von vorneherein einen Preis festzulegen. Meist einigen sich Auftraggeber und Dienstleister im Vorfeld, unter welchen Bedingungen sich der Preis noch ändern kann. Eine weitere Möglichkeit für Unternehmen ist es, sich einfach am vorhandenen Budget zu orientieren und die wichtigsten Teile der Softwareentwicklung zuerst umzusetzen. Sollte danach noch Geld verfügbar sein, kann der Partner weitere Services liefern.

Am besten kocht nur einer

Jens Kawelke, NTT Data.
Jens Kawelke, NTT Data. (Bild: NTT Data)

Jens Buchholz, NTT Data.
Jens Buchholz, NTT Data. (Bild: NTT Data)

Einen Dienstleister mit allen Entwicklungsschritten zu beauftragen bietet mehr Vorteile, als Teilschritte an unterschiedliche Anbieter auszulagern. Auftraggeber sollten eine Komplettvergabe auf jeden Fall prüfen, wenn sie einen festen Preis und ein eingespieltes Team schätzen. Wenn eigene Mitarbeiter die Ergebnisse entsprechend kontrollieren, steht einer erfolgreichen Zusammenarbeit nichts mehr im Weg.

* Dr. Jens Kawelke ist Competence Unit Manager Requirements Engineering, Financial Services; Dr. Jens Buchholz Lead Consultant, beide bei der NTT DATA Deutschland GmbH.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  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.

copyright

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