Die Erfolgsformel: Philosophie, Mindset und Softskills
Es ist seit Jahrzehnten vermutlich die meistgeführte Diskussion zwischen Informatikern und Business-Entscheidern: soll die neue Geschäftsanwendung als Standard-Software eingekauft oder als Individual-Software entwickelt werden? Argumente wie Kosten, Geschwindigkeit, Flexibilität, Zukunftssicherheit und Risiken lassen sich beliebig durchdeklinieren und für die eigene Position nutzen.
So gelingt es, erfolgreich Individual-Software zu entwickeln
Warum werden überhaupt noch individuelle Anwendungen entwickelt, wenn es doch so viele Software-Pakete für alle nur denkbaren Branchen gibt? Häufig sind es sehr spezielle Geschäftsprozesse, die individuelle Software benötigen. Diese Abläufe sind höchst komplex und gleichzeitig Teil einer Wertschöpfungskette, die das Kerngeschäft einer Organisation betreffen. Diese Prozesse würden sich nur mit erheblichen Bauchschmerzen in einer Standard-Software abbilden lassen. Unter Umständen würde ein Unternehmen sogar seine Innovationskraft oder Wettbewerbsfähigkeit verlieren, wenn es diese Abläufe verändert, damit sie in vordefinierte Software-Schablonen passen.
Lieferkette für Fahrzeugproduktion optimieren
Ein solches Entwicklungsprojekt beschäftigt gerade ein Team bei Materna. Im Auftrag eines Automobilherstellers entsteht eine Anwendung zur Optimierung von Logistikprozessen. Benötigt wird eine spezielle Software, die für alle Produktionsstandorte nutzbar ist und die für den Einsatz an einem ersten Standort entwickelt wurde.
Ein wesentliches Merkmal der neuen Anlage, der sogenannten Smart Factory, ist die 360 Grad-Vernetzung aller Systeme und Prozesse über die gesamte Wertschöpfungskette hinweg – von der Entwicklung und dem Design über die Lieferanten und die Produktion bis zu den Kunden. Eine wichtige Rolle nimmt das Management der Lieferketten ein, denn eine automatisierte Fertigung kann nur dann hohe Effizienzgewinne vorweisen, wenn das richtige Material zur richtigen Zeit an der Produktionslinie eintrifft.
Integriertes Supply Chain Management
Hier kommt die neue Supply Chain Planning-Anwendung ins Spiel, die Materna gemeinsam mit den Logistikexperten des Kunden entwickelt. Stark vereinfacht lassen sich die Anforderungen an die Software wie folgt beschreiben: es soll die Lagerhaltung auf dem Betriebsgelände unter Kostenaspekten optimiert werden, gleichzeitig soll aber auch der Zulauf des Materials aus Produktionssicht bestmöglich organisiert sein.
Wie häufig bei solchen Projekten, ist die Komplexität im Detail verborgen. So erfordert die Variantenfertigung bei der Kfz-Produktion, dass Montageteile in der richtigen Reihenfolge und zur passenden Zeit am jeweils benötigten Montagepunkt vorliegen. Darüber hinaus muss die Lösung die Logistikprozesse über mehrere Schritte hinweg optimieren: von der Anlieferung der Ware am Tor über den Transport an ein geeignetes Zwischenlager auf dem Firmengelände bis hin zur Bereitstellung an der Produktionslinie – wobei der letzte Punkt wieder von einer anderen Lösung durchgeführt wird. Über alle Schritte hinweg müssen Abläufe so optimiert werden, dass die günstigsten Kostenpunkte bei Transport, Lagerung und Bereitstellung gefunden werden. Bisher erfolgt die gesamte Planung durchgängig per Excel-Datei, die zwischen verschiedenen Abteilungen wie Einkauf, Produktionsplanung und Logistik verschickt wurde.
Projektstart
Nach einer Ausschreibung und der Vergabe des Projekts an Materna – die Dortmunder IT-Experten führten bereits zuvor erfolgreich kleinere Projekt bei dem Kunden in diesem Umfeld durch – konnte das Projekt im Februar 2020 starten. Der Fokus lag darauf, eine Kernlösung zur Kosten- und Prozessoptimierung in der Intralogistik zu entwickeln, und so wurde das Projekt in drei Arbeitspakete unterteilt. Zunächst sollten Dateneingabe, zentrale Datenhaltung und die Benutzeroberflächen aufgesetzt werden, da sie die Basis für die nächsten zwei Pakete bilden: in diesen erfolgen in einem Regelkreis die Berechnung optimaler Prozesse und Kosten sowie die Rückgabe eventueller Entscheidungskorrekturen von Benutzerseite an den Algorithmus.
Auswahl geeigneter Methoden und Werkzeuge
Wer sich für die Individualentwicklung entschließt, benötigt passende Methoden und Tools , die die Durchführung beschleunigen und die Produktqualität sicherstellen. So ist die agile Software-Entwicklung als Konzept in modernen Projekten gesetzt – insbesondere, wenn es um hochgradig komplexe und vernetzte Anwendungen geht. Im hier beschriebenen Projekt setzt Materna beispielsweise auf Scrum als Vorgehensmodell für die Entwicklung und arbeitet auf Basis einer Philosophie, wie sie in DevOps definiert ist, und bei der Zusammenarbeit, Experimentierfreude und Lernbereitschaft im Vordergrund stehen.
Die Verwendung von Scrum als Framework unterstützt ein agiles Projektmanagement und ist in der Software-Entwicklung beliebt, da es schnell vorzeigbare Ergebnisse liefert. Das Konzept basiert auf kurzen Iterationen, den sogenannten Sprints, in denen funktionierende Software entsteht, die ein Teil der Gesamtlösung sind.
Materna arbeitet bereits seit vielen Jahren erfolgreich auf Basis agiler Methoden und verfügt über erfahrene Mitarbeiter, die die Rollen in einem Scrum-Projekt ausfüllen können. So ist beispielsweise ein Scrum-Master notwendig, der das Entwicklungsteam sowie den Product -Owner unterstützt und darauf achtet, dass Scrum als Prozess gelebt wird. Dieser achtet also darauf, dass sich das Team an die grundlegenden Spielregeln der Methode hält und beseitigt Probleme, die das Team daran hindern könnten, die vereinbarten Ziele zu erreichen.
Ein weiteres Mitglied ist der Product -Owner , der dafür verantwortlich ist, dass auch das richtige Produkt entsprechend den fachlichen Vorgaben entwickelt wird. Die dritte Komponente ist schließlich das Development-Team: hier arbeiten meist wenige Entwickler in einem kleinen und multidisziplinären Team daran, die Aufgaben eines zuvor definierten Teilprojekts vom Entwurf, der Umsetzung, dem Testen bis hin zur Auslieferung eigenständig umzusetzen.
Freiheiten und Softskills
„Damit Scrum auch wirklich erfolgreich funktioniert, ist ein besonderes Mindset bei den Teammitgliedern notwendig“,
weiß Stefan Pauka in seiner Rolle als Senior-Developer und Developer-Coach bei Materna zu berichten. „Die Methode basiert auf nur wenigen Regeln und die Teams entscheiden eigenständig, wie sie ihre Arbeit am besten erledigen, anstatt Vorgaben durch Personen außerhalb des Teams zu erhalten“, so Pauka weiter.
Der Scrum-Master hat hierbei beispielsweise die Aufgabe, das Team bei seiner Eigenständigkeit zu unterstützen und darauf zu achten, dass nicht während eines Sprints neue Anforderungen in den Ring geworfen werden. Wichtig ist auch, dass die interdisziplinären Teams über alle Kompetenzen verfügen und nicht auf externe Spezialisten zugreifen müssen, da dies den Arbeitsfluss verzögern würde. Außerdem müssen die Mitglieder über die notwendigen Softskills wie Teamfähigkeit verfügen, damit sie tatsächlich gemeinsam in eine Richtung arbeiten.
Die richtige Mischung macht den Unterschied
Für das Logistikprojekt bei dem Kunden wurde schließlich ein multidisziplinäres Team zusammengestellt. Dies besteht aus erfahrenen Entwicklern von Materna, ergänzt um jüngere Kollegen, die häufig frische Ideen einbringen, sowie fachliche Experten auf Kundenseite. In dem aktuellen Projekt wird die Rolle des Product -Owners durch Mitarbeiter des Kunden ausgefüllt: so erhalten die Entwickler von Materna bereits ausgearbeitete Business Requirement s und können diese direkt in einzelnen Sprints umsetzen, die jeweils etwa 14 Tage dauern.
Wichtig für den Projekterfolg ist die Zusammensetzung des Teams. Materna hat sich, auch auf expliziten Kundenwunsch hin, für ein eher junges Entwicklungsteam entschieden.
„Für unsere Entwickler sind Scrum und DevOps nicht nur Buzz-Wörter. Wir leben diesen Prozess in der Praxis und jeder hält sich an die Regeln. So erhalten auch junge Mitarbeiter bei Scrum ein hohes Maß an Verantwortung, indem sie sich als Team die richtigen Ziele setzen und erfüllen. Dieses Mindset macht uns so erfolgreich“,
beschreibt Carsten Paasch, Scrum-Master bei Materna, das Vorgehen.
In der täglichen Entwicklungsarbeit arbeiten die Mitarbeiter des Kunden und von Materna partnerschaftlich eng zusammen. Es wird kein Unterschied deutlich, wer Auftraggeber oder Kunde ist. Dies ist ebenfalls typisch für den Scrum-Ansatz, nämlich dass alle Teammitglieder als gleichwertig angesehen werden. „Wer damit beginnt, im Team einzelne Mitglieder zu unterscheiden, hat das Projekt bereits verloren“, so die Erfahrung von Carsten Paasch.
Der Vorteil dieser engen Zusammenarbeit: schrittweise entwickeln Materna und der Kunde gemeinsam das Fachwissen, um das Projekt zu verwirklichen und künftig weiter ausbauen zu können. Hierbei wird Materna als Partner angesehen und nicht nur als Dienstleister, während gleichzeitig ein Know-how-Transfer stattfindet, bei dem die Mitarbeiter beim Kunden von dem Erfahrungsschatz der Materna-Experten profitieren.
Qualität sicherstellen
Ein weiterer wichtiger Baustein für erfolgreiche Scrum-Projekte: die Automatisierung von Software-Tests. Hierbei geht Materna in dem aktuellen Projekt so vor, dass die Entwickler alle für einen Sprint relevanten Akzeptanzkriterien automatisiert testen. So werden beispielsweise Benutzeroberflächen vollständig automatisiert geprüft. Die dafür notwendigen Testroutinen entwickelt das Team im Rahmen des Projektes. „Natürlich kostet Testing während eines Sprints wertvolle Zeit“, weiß Carsten Paasch. „Wer jedoch an einem langfristig angelegten Software-Projekt mit vielen integrierten Subsystemen arbeitet, muss die Qualität aller Teilschritte sicherstellen und Testläufe transparent dokumentieren“, so Paasch weiter.
Testautomatisierung über die Cloud
Wer schnell und flexibel immer wieder neue Testumgebungen aufsetzen möchte, kommt um eine Cloud-Umgebung nicht herum. Materna betreibt die Entwicklungs- und Produktumgebung in Microsoft Azure und realisiert dort unter anderem Build- und Release-Pipelines. Über die Azure DevOps Plattform stehen weitere Tools bereit, beispielsweise für die Teamkommunikation sowie das Anforderungsmanagement.
Das Deployment und Testing konnte Materna über die Cloud vollständig automatisieren. Jede Änderung an der zu entwickelnden Software wird automatisch umgesetzt und durch erste Integrationstests geprüft. Nach erfolgreichem Test werden die Komponenten bzw. Services automatisch in die Testumgebung ausgerollt. Dort können dann zum Beispiel End-to-End-Testläufe stattfinden, um so auch die Funktionen der Benutzeroberflächen zu prüfen. Die Testverfahren werden direkt aus den Akzeptanzkriterien der Anforderung abgeleitet. Waren auch diese Tests erfolgreich, werden die Komponenten in die Produktionsumgebung ausgerollt.
Diese hochgradig automatisierte Entwicklung mit der Azure-Cloud ermöglicht es, dem Kunden eine qualitativ gesicherte und aktuelle Software innerhalb kurzer Entwicklungszyklen zu liefern. Genauso, wie es die Scrum-Methode vorsieht. Dies geschieht vollständig ohne manuelle Eingriffe.
Software-Entwicklung unter COVID-19
Bleibt abschließend noch zu klären, wie sich die Corona-Pandemie auf die agile Software-Entwicklung auswirkt. „Das ist wirklich kein Problem“, weiß Paasch zu berichten. „Wir machen unsere Dailys, also die täglichen Scrum-Update -Meetings, einfach per Videokonferenz. Das funktioniert sehr gut und wir können trotz der Pandemie sehr effizient mit einem bundesweit verteilten Team arbeiten“, erläutert Paasch abschließend.
Technik: Architektur und Werkzeuge bei Materna
Agile Software-Entwicklung bei Materna