Die Basis für die erfolgreiche Zusammenarbeit mit externen IT-Dienstleistern
Im Jahr 2019 war ich zum ersten Mal mit einer Breakout Session beim Digitale Leute Summit am 28. November in Köln dabei und habe über die erfolgreiche Zusammenarbeit mit externen IT-Dienstleistern gesprochen. Vor allem habe ich über unsere Erfahrungen bei der QOSSMIC berichtet und wie wir mit unseren Kunden zusammenarbeiten.
Vertrauen als Grundlage
Nach unseren Erfahrungen, die wir in den vergangenen Jahren gesammelt haben, ist die Grundlage für eine erfolgreiche und wirkungsvolle Zusammenarbeit das Vertrauen zwischen Kunde und Auftraggeber. Mit wachsendem Vertrauen vollzieht sich gleichzeitig ein Wandel, in der Zusammenarbeit. Ein Wandel, in dem sich der Dienstleister vom austauschbaren Befehle entgegennehmenden Kostenverursacher zu einem Partner auf Augenhöhe entwickelt.
Ist das nötige Vertrauen vorhanden, ergeben sich folgende drei große Unterschiede zu weniger erfolgreichen und weniger auf Vertrauen basierenden Beziehungen.
Slow IT -> Fast IT
Moderne Software-Entwicklung ist geprägt von agilen Arbeitsweisen. Insbesondere im letzten Jahrzehnt hat die agile Entwicklung die herkömmliche Methode nach dem Wasserfallprinzip zunehmend abgelöst.
Mit dem Wasserfallprinzip wird bereits vor Beginn der Entwicklungsarbeit ein möglichst komplettes und lückenloses Konzept der Software entworfen. Dieses enthält sämtliche Funktionalitäten, Sicherheitsaspekte und genaue Anweisungen zu Design und Struktur. Nachdem dieses finale Konzept beschlossen wurde, wird das Konzept in unzählige einzelne Arbeitspakete unterteilt und Schritt für Schritt mit der Umsetzung dieser Arbeitspakete begonnen. Dieser Prozess läuft so lange, bis alle Pakete fertiggestellt sind und somit die Software fertig ist und genutzt werden kann. Eine zwischenzeitliche Änderung des Konzepts, Hinzufügen oder Abändern von Features oder die Priorisierung anderer Teilaspekte sind nach diesem Prinzip nicht ohne weiteres möglich.
Bis eine Software, die nach dem Wasserfallprinzip entwickelt wird, wirklich fertiggestellt ist und genutzt werden kann, können schon mal Jahre vergehen. Und somit vergehen auch Jahre, bis das erste Nutzerfeedback kommt und sich zeigt, ob die Software überhaupt den Anforderungen der Nutzer gerecht wird. Im schlimmsten Fall kann sich nach einem langen Entwicklungsprozess herausstellen, dass die Software vollkommen am Nutzer vorbeientwickelt wurde und nutzlos ist, was einem enormen finanziellen Risiko entspricht.
Bei der Software-Entwicklung nach agilen Methoden liegt der Fokus darauf, schnellstmöglich erste nutzbare Versionen der Software zu entwickeln. Angefangen mit den ersten rudimentären Funktionalitäten und darauf aufbauen immer weitere Funktionen. Üblicherweise wird in kurzen Zeitfenstern von beispielsweise zwei Wochen definiert, was die weiteren Entwicklungsziele sind und wo die aktuellen Prioritäten in der Entwicklung liegen. Vor Beginn der Entwicklung muss zudem kein ganzheitliches Konzept der späteren Software vorliegen. Da bereits sehr schnell erste nutzbare Versionen existieren, kann das gesamtheitliche Konzept mit konkretem Nutzer-Feedback im Laufe des Prozesses zunehmend gestaltet werden. Somit reduziert sich nicht nur die Zeit signifikant, bis die Software genutzt werden kann, sondern auch das Risiko enorm.
Aus unserer Sicht ist somit der Gewinn an Geschwindigkeit bei der Entwicklung neuer Lösungen von höchster Bedeutung. Wir deuten daher, mehr scherzhaft, auf einen Schritt von “Slow IT” zur “Fast IT” hin.
Bei der agilen Entwicklung von Software ist Vertrauen basal. Die eingebundenen Teams und Mitarbeiter müssen sich gegenseitig vertrauen und sich darauf verlassen können, dass abgesprochene Punkte auch eingehalten werden.
Die agile Arbeitsweise bietet gegenüber dem klassischen Vorgehen, nach der Wasserfallmethode, einige weitere Vorteile. Für unseren Anwendungsfall als Dienstleister für individuelle Software-Lösungen liegt einer dieser Vorteile in der Handhabung von komplexen Projekten. Durch die agile Methode wird ein fortlaufender Austausch mit dem Kunden und im eigenen Team angestrebt. Dieser Austausch relativiert Komplexität und ermöglicht es, große Aufgaben in kleineren Schritten anzugehen und regelmäßig zu beurteilen. Hierfür nutzen wir insbesondere regelmäßige Refinement-, Review- und Planing-Meetings.
Ein weiterer Vorteil liegt laut der Standish Group Chaos Study darin, dass die Quote des Scheiterns eines agilen Projekts um die Hälfte geringer ausfällt, als die Quote bei einem klassischen Projekt. Auch hier liegt aus unserer Erfahrung der Grund darin, dass durch ein agiles Projekt die Komplexität besser gehandhabt werden kann und mit Fehlern kann besser umgegangen werden.
Cost -> Value
Eine weitere Beobachtung zeigt, dass je größer das Vertrauen zwischen beiden Parteien wird, umso mehr wird der Dienstleister auch als Partner bei der Generierung neuer Werte verstanden. Der Dienstleister wandelt sich vom Kostenverursacher hin zu einem wichtigen Teil der Produktentwicklung und damit zu einem Teil der Wertschöpfung des Auftraggebers.
Verstärkt tritt dieser Effekt auf, wenn auf beiden Seiten nicht nur in Projekten gedacht wird, sondern in Produkten, die für den Endkunden einen Mehrwert schaffen. Also Produkte, die am Ende der gemeinsamen Wertschöpfung von Auftraggeber und Auftragnehmer stehen.
Unsere Erfahrung zeigt, dass die Produkt-Denke besonders bei jenen Unternehmen vorherrscht, die ohnehin eine starke Endkundenzentrierung verfolgen. Wenn die Problemlösung für den Endkunden und die Erschaffung eines Mehrwerts für ihn die höchste Priorität hat, folgt automatisch ein produktorientiertes Denken in den Teams.
Für uns ist es ein tolles Gefühl, mit unseren Kunden auf Augenhöhe zu arbeiten. Es motiviert uns, wenn wir gemeinsam mit unseren Kunden einen Mehrwert schaffen. Denn so fühlen wir uns mitverantwortlich für Produkt und wollen dieser Verantwortung und dem uns entgegengebrachten Vertrauen gerecht werden.
Verhandeln -> Entwickeln
In den vergangenen Jahren haben wir großes Augenmerk darauf gelegt, eine enge und vertrauensvolle Beziehung zu unseren Kunden aufzubauen. Dieses Bemühen hat sich ausgezahlt. Denn wir haben festgestellt, dass wir nicht nur zu einem Partner auf Augenhöhe geworden sind, sondern, dass sich das geschäftliche Verhältnis grundlegend geändert hat.
Zum Beginn unserer Aktivitäten als Agentur verbrachten wir sehr viel Zeit damit, einzelne Preise und Kosten mit unseren Kunden zu verhandeln. Häufig ging über die Frage des Preises der Fokus vom Produkt verloren und es stellte sich ein gewisser Frust auf allen Seiten ein. Mit zunehmendem Vertrauen trat jedoch das Produkt in den Vordergrund und es wird nun gemeinsam ein Produkt entwickelt. Denn es besteht das Vertrauen in uns, dass wir diese zur Zufriedenheit des Kunden lösen. Statt uns also wertvolle Zeit mit Verhandlungen zu vergeuden, können wir nun gemeinsam mit unseren Kunden auf die Entwicklung der Software konzentrieren.
Der Weg vom “gegeneinander” Verhandeln hin zum gemeinsamen Entwickeln war es für uns als Agentur ein langer Weg. Als besonders wichtigen Faktor haben wir auf diesem Weg die enge Zusammenarbeit zwischen Auftraggeber und Auftragnehmer ausgemacht. Als Folge haben wir den Kunden als aktiven Bestandteil in unsere Prozesse mit einbezogen. So bestehen die Entwickler-Teams immer zu einem Teil auch aus Mitarbeitern unserer Kunden. So ist auf Seite unserer Kunden stets mindestens ein Product Owner in sämtliche Prozesse integriert. Besser sogar noch weitere Mitarbeiter wie Inhouse-Entwickler, Content-Manager oder Freelancer.
Doch reicht es nicht, den Kunden in allen Prozessen mit einzubeziehen. Es bleibt oft die Besorgnis, der Kunde sei abhängig von uns als Agentur im Fall der Beendigung der Zusammenarbeit. Befürchtet wird, dass wichtiges Wissen und Fähigkeiten bei uns bleiben würden und dem Kunden so große Verluste drohen. Daraus resultiert häufig eine Art Protektionismus beim Kunden.
Um diesem Problem zu begegnen, wollen wir all unseren Kunden möglichst viel Kontrolle über die Prozesse und die Umsetzung der eigenen Produkte geben. Wir gehen sogar so weit, dass wir Projekte von Beginn an so aufsetzen, dass ein Kunde mit seinem eigenen Team jederzeit die Projekte für die Inhouse-Entwicklung übernehmen könnte.
Wir wollen Kunden nicht durch künstliche Hürden oder vertragliche Winkelzüge an uns binden, sondern durch einen vertrauensvollen Umgang und einem hohen Maß an Freiheit. Auch wenn dies bedeutet, dass unsere Kunden jederzeit die Entwicklung ihrer Produkte auch ohne uns fortführen können.
Konkret sieht es so aus, dass alle relevanten Mitarbeiter unserer Kunden in sämtlichen Kommunikationskanälen oder Plattformen mit integriert sind. So stehen wir mit den Teams stets über Slack in Kontakt, alle Mitarbeiter haben auf Ticketing-Systeme wie Jira Zugriff und können sogar aktiv über GitLab am Code mitarbeiten. Außerdem finden fast tägliche Telefonate statt und wöchentliche Meetings zur weiteren Koordination. Wenn die Entwicklung sowohl durch Mitarbeiter unserer Kunden, als auch durch uns durchgeführt wird, wird dieser Austausch zusätzlich intensiviert.