Agile Methoden für IT-Integrations-Projekte
Mehr Agilität - mehr Vorteile. In Softwareentwicklungs-Projekten haben sich agile Methoden schon seit vielen Jahren durchgesetzt. Komplexe Integrationsvorhaben hingegen werden oft noch nach Wasserfall-Modell durchgeführt. Doch warum eigentlich?
Lesen Sie im Folgenden, welche agilen Methoden sich in unseren Integrationsprojekten bewährt haben und welche Benefits Sie aus unseren praktischen Erfahrungen ziehen können.
1. Customer first: Simplicity
Wir verzichten auf unnötige Arbeit ohne Kundennutzen. Unsere bevorzugte Lösung mit Spring Boot oder Quarkus und Apache Camel ist schlank, benötigt wenig Einarbeitungsaufwand und kann vom ersten Tag an produktiv genutzt werden. Das „YAGNI“-Prinzip befragen wir zu Beginn eines jeden Entwicklungstasks. Wo immer es geht, nutzen wir Code-Generatoren, sogenannte Maven-Starter-Module und klassische OO-Konzepte wie Abstraktion und Vererbung, um möglichst wenig Code selbst pflegen zu müssen. Das bedeutet auch für später: weniger Fehlerquellen, weniger Analyse- und Änderungsaufwände.
Erfahren Sie mehr zum Prinzip Simplicity auf medium.com.
2. Start small, become great: Microservices
Wir starten gerne klein: Ein Microservice mit der idealen Technologie passend für Ihren ersten Anwendungsfall. Im weiteren Projektverlauf wird die Architektur mit linear konstantem Aufwand um immer mehr Microservices erweitert. So haben wir z.B. bei unseren Kunden inzwischen über 200 Microservices produktiv im Einsatz. Mittlerweile raten wir von zentralen ESB-Produkten eher ab, da diese einen sehr hohen Initialaufwand haben. Ab einem bestimmten Funktionsumfang können sie nur noch mit exponentiell steigendem Aufwand weiter ausgebaut werden.
3. API first: APIs are First-Class Citizens
Wir leben nach dem "API first"-Paradigma. Um später möglichst selbständig und effizient entwickeln zu können, konzentrieren wir uns zu Beginn immer auf ein konsistentes, schlüssiges und schlankes API-Design. SOAP- und REST-Schnittstellen beschreiben wir nach WSDL- und OpenAPI-Standards. Alle angebundenen Partnersysteme können sich auf unser API-Design verlassen, gerne stellen wir früh auch schon Simulatoren zur Verfügung. Und unser Team kann sich auf die eigentliche Implementierung von Source- und Testcode unter Nutzung von Code-Generatoren stürzen. Mit diesem Ansatz haben unsere Integrations-Experten inzwischen unzählige Schnittstellen entworfen und genauso unzählige Software-Systeme zum produktiven Nachrichtenaustausch miteinander verbunden. Mehr dazu lesen Sie hier.
4. No Testers Needed: Test-Driven-Development
Wir sind die Erfinder des Open Source Frameworks Citrus, das speziell für Integrationsbelange entwickelt wurde. Es bietet deutlich mehr Möglichkeiten als andere Tools wie z.B. SoapUI, Wiremock oder Testcontainers. Zu unserem Produktiv-Sourcecode liefert unser Team selbstverständlich auch den entsprechenden Citrus-Testcode, sowohl für alle spezifizierten positiven als auch negativen Use Cases (wie z.B. Timeouts, SoapFaults u.v.m.). Die QA-Abteilung des Kunden testet in unseren Projekten üblicherweise nicht mehr selbst, sondern prüft nur noch unsere Testprotokolle.
5. Agile Mindset: Not Only Scrum or Kanban
Das Mindset ist entscheidend: Wir haben die 12 Agilen Prinzipien verinnerlicht. Je nach Projektbedarf nutzen wir als Vorgehensmodell Scrum oder Kanban. Wir haben ausnahmslos Integrations-Experten im Team, welche vollständig selbstorganisiert arbeiten. Anforderungsanalysen vor der Umsetzung eines Tasks und Code-Reviews im Anschluss sind für uns absolute Selbstverständlichkeiten, genauso wie regelmäßige Code Refactorings. In regelmäßigen Abständen blicken wir in Retrospektiven zurück und versuchen uns weiter zu verbessern. Selbstverständlich bilden sich alle Integrations-Experten regelmäßig in aktuellen IT-Trends weiter.
6. DevOps: One Team for All
Microservice- und Cloud-Native-Architekturen bringen es mit sich, dass Software-Engineers nicht mehr nur "coden", sondern automatisch auch Betriebsaufgaben mit erledigen. Wir achten auch hier darauf, dass der Aufwand im Betrieb möglichst gering bleibt, nicht nur bei Installationen, sondern z.B. auch durch einfache Monitoring-Healthchecks, einfachen Zugriff auf Log-Dateien u.v.m.
Je nach Container-Plattform nutzen wir die verfügbaren Möglichkeiten für Continuous Integration bis Continuous Deployment. Bei vielen Kunden sind wir inzwischen technisch in der Lage, mehrfach täglich in Produktion zu deployen. Viele Produktiv-Deployments sind in wenigen Minuten ohne Downtime erledigt.
So können wir schlagkräftige Teams bilden, in denen alle DevOps-Kompetenzen gebündelt sind.
7. Agile Fixed Price: Best of Both Worlds
Wir wissen, was wir tun und wir tun dies am liebsten selbstbestimmt. Mit unserem Agilen Festpreis haben wir die Möglichkeit geschaffen, wie wir in enger Abstimmung zwischen Kunde und unserem Team möglichst effizient arbeiten können und Sie als Auftraggeber gleichzeitig absolute Budgetsicherheit behalten.
Noch Fragen rund um Agile Integrationsprojekte?
Lassen Sie uns sprechen!
Thomas Machata