#Gastbeitrag
Lasst euch von Komplexität nicht abschrecken! Wie Software-Projekte zum Erfolg werden
Eine digitale Plattform aufsetzen, ein Shopsystem oder neue Datenbanken implementieren: Unternehmen sind darauf angewiesen, Software-Projekte erfolgreich umzusetzen. Diese Projekte sind selten simpel – ebensowenig wie die Probleme, die durch die Technologien gelöst werden. Gleichzeitig darf die Komplexität jedoch nicht überhand nehmen, damit der Zeit- und Kostenrahmen nicht gesprengt wird. Um sich nicht zu verzetteln, sollten die Teams die Komplexität so weit wie möglich reduzieren. Und das ist machbar – denn immer wieder treten die Probleme an ähnlichen, dafür prädestinierten Stellen auf. Mit den folgenden Tipps können diese Stolpersteine umschifft werden:
Integrationen nicht unterschätzen
Die Integration von anderen IT-Systemen ist wahrscheinlich der ressourcenintensivste Teil eines IT-Projekts – gehört aber zumeist fest dazu. Bei kaum einem Projekt können die Teams von Null starten, meist müssen neue Lösungen in bestehende IT-Infrastrukturen eingebunden werden. Hier lauern zahlreiche Stolperfallen, beispielsweise durch die Abhängigkeit von anderen Dienstleistern, durch nicht hinreichend definierte Schnittstellen, durch Legacy-Systeme oder geringe Datenqualität. IT-Teams begehen daher einen Fehler, wenn sie sich zunächst nur um den Aufbau einer neuen Plattform kümmern und diese erst am Ende an die bestehenden Systeme anbinden. Vielmehr muss die Integration möglichst weit vorgezogen werden, damit noch genügend Zeit und Flexibilität bleibt, um auf Hindernisse zu reagieren. In der Integration steckt die größte Variabilität, das muss zwingend mitbedacht sein.
Projekte vom Ende her denken
Projekte agil umzusetzen liegt im Trend – und bietet sich für komplexe IT-Projekte durchaus an. Agil heißt aber nicht einfach, planlos loszulegen. Ganz im Gegenteil: Damit das Software-Projekt pünktlich fertiggestellt wird und sich das Projektende bei Problemen nicht immer weiter hinauszögert, müssen die Vorhaben stets vom Ende her geplant werden. Das bedeutet: Die Gesamtprojektdauer ist fix, die einzelnen Phasen werden hingegen flexibel gestaltet.
Controlling vom produzierenden Team trennen
Zeigen sich im Controlling Warnsignale, ist im Projekt meistens etwas aus dem Ruder gelaufen. Deshalb ist es wichtig, diese Funktion nicht vollständig im umsetzenden Team zu belassen. Es besteht die Gefahr, dass im Projekt stark involvierte Teammitglieder, wie die Product Owner, Probleme zwar registrieren, aber nicht wahrhaben wollen und daher dazu tendieren, diese “aktiv zu übersehen”. Wesentlich sinnvoller ist es deshalb, wenn das Controlling bei Mitarbeitern liegt, die nicht aktiv an der Umsetzung mitarbeiten. Diese beziehen die Informationen aus dem Team und können die objektiven Zahlen immer im Blick behalten.
Entscheidungsstrukturen und Unternehmenskultur auf Auftraggeberseite verstehen
Jedes Software-Projekt muss zwischen Auftraggeber und -nehmer ausgehandelt und in enger Zusammenarbeit durchgeführt werden. Gerade große Unternehmen sind dabei selbst komplexe Gebilde, mit Hierarchien und impliziten, gewachsenen Machtgefügen. Das kann zu Problemen führen, beispielsweise wenn auf Auftraggeberseite Informationen nicht weitergeleitet oder Entscheidungen hinausgezögert werden. Deshalb ist es wichtig, Abhängigkeiten etwa in Stakeholder Maps abzubilden, Entwicklungen im Auge zu behalten und jederzeit transparent zu agieren, um notfalls gegensteuern zu können.
Scope richtig managen
Um die Komplexität in Software-Projekten zu reduzieren, fokussieren sich viele Projektteams zunächst einmal auf die Erstellung eines Minimum Viable Products (MVP), also auf die erste, minimal funktionsfähige Version des Produkts, die mit kleinstmöglichem Aufwand die Wünsche des Kunden abdeckt und Anhaltspunkte für weitere Verbesserungen liefert. MVPs eignen sich nicht für jedes Projekt. Nützlich sind sie besonders für die Neuentwicklung. Für Auftragsarbeiten, bei denen von vorneherein klar ist, dass eine bestimmte Anzahl an Funktionen abgebildet werden muss und die deshalb auch direkt mitentwickelt werden, sind sie weniger geeignet.
Hochfrequente Deployments durchführen
Um das Projekt voranzubringen, sollten die Teams viele kleine, gut durchdachte Schritte machen. Ein häufiger Stolperstein sind dabei zu selten durchgeführte Deployments. Gerade bei großen Projekten, an denen parallel zahlreiche Entwickler arbeiten, entstehen so schnell Abhängigkeiten im noch nicht deployten Code, der dann zu Zirkelbezügen und somit zu Problemen führt. Durch die konsequente Nutzung von Tools wie GitLab oder Jenkins und das genaue Befolgen von Deployment-Regeln lässt sich diesem Problem gut beikommen.
Kunden- und Erwartungsmanagement betreiben
Bei der Umsetzung eines Plattformprojekts hängen die Auftraggeber manchmal stark an Funktionen, die zwar einen hohen Entwicklungsaufwand bedeuten, aber keinen besonderen Business-Value bringen. Ein Beispiel hierfür ist, wenn der Auftraggeber eines neuen Online-Shops gern alle Bestell-Historien seiner Kunden noch Jahre rückwirkend aus dem alten System in das neue überführen möchte. Solche Anbindungen können sehr aufwendig sein, sind den Kunden aber oftmals nicht wichtig und sie generieren für den Shop-Betreiber keinen Mehrwert.
Fazit
Software-Projekte sind anspruchsvoll, aber die Komplexität ist beherrschbar. Wichtig ist vor allem: Frühzeitige Planung der besonders kniffligen Bestandteile, nicht die Augen vor aufziehenden Problemen zu verschließen, technisch sauber zu arbeiten und eine gute Kundenbeziehung, inklusive kompetenter Beratung, zu pflegen. So werden die Rahmenbedingungen geschaffen, um auch das komplexeste IT-Projekt erfolgreich zum Abschluss zu führen.
Über den Autor
Christopher Möhle ist CEO bei der Berliner Digitalagentur Turbine Kreuzberg.
Startup-Jobs: Auf der Suche nach einer neuen Herausforderung? In der unserer Jobbörse findet Ihr Stellenanzeigen von Startups und Unternehmen.