One size doesn't fit all

Für viele unserer Kunden reichen gesamtheitliche Lösungen getreu dem Motto „One size fits all” von etwa großen Produktherstellern nicht aus, um ihre digitale Strategie umzusetzen. Es gilt, verschiedenste Systeme miteinander zu verbinden und zu einem Gesamtsystem zusammenzuführen oder komplett individuelle Lösungen zu schaffen. Genau hier setzen wir an und unterstützen Sie dabei, die individuellen Anforderungen Ihrer Digitalisierungsstrategie umzusetzen.

Unsere Leistungen im Bereich Software Development

  • Individuelle Softwareentwicklung auf qualitativ sehr hochwertigem Niveau. Unsere Scrumteams sind darauf trainiert, Software in sehr hoher Qualität schnell in Produktion zu bringen. Dies erreichen wir durch eine hohe Testabdeckung und automatisiertem Deployment. Wir unterstützen unsere Kund:innen bei der Priorisierung ihrer Anforderungen. So gewährleisten wir gemeinsam einen sehr schnellen Benefit und das Nutzen der neu entstandenen Features für die Kundschaft unserer Kund:innen.

  • Moderne Architekturen: Microservices, API-first, Cloud Native und Headless, das sind die Schlagworte, die uns vorantreiben. Unsere Teams kapseln fachlich abgegrenzte Softwareteile voneinander ab (Domain-Driven Design) und bringen somit entkoppelte Systeme in den Betrieb, die bei Änderungen unabhängig voneinander ausgetauscht werden können.

  • Migration monolithischer Systeme in moderne Microservice-Architekturen

  • Architekturbewertung und Architekturberatung

Sie haben individuelle Anforderungen an ihre Digitalisierungsstrategie, die kein Produkt abdecken kann? Sie müssen viele Systeme in ein weltweit hochverfügbares System integrieren? Internationale Ausrichtungen sind für Sie selbstverständlich und benötigen eine Partnerschaft, die derartige Herausforderungen kennt und Sie unterstützend begleitet? Wir entwickeln passgenaue Lösungen für Sie oder kombinieren Produkte miteinander zu einem Gesamtsystem – für Sie und ihre Kund:innen.

So gehen wir vor – von MACH bis REST

Wir arbeiten mit einem sehr modernen Architekturansatz – der MACH-Architektur. MACH steht hierbei für Microservices, API-first, Cloud-native sowie Headless. Unter Microservices sind Anteile der Businesslogik zu verstehen, die – fachlich voneinander getrennt – Anforderungen kapseln und unabhängig voneinander in den Betrieb gebracht werden. Um die fachlichen Schnitte der Businesslogik zu bestimmen, wenden wir Domain-Driven Design (DDD) an. Api-first beschreibt Services, und Produkte, etwa ein E-Commerce-System, welches komplett über eine API gesteuert werden kann.

Alle Services, die wir miteinander verbinden, sind auf den Cloud Provider zugeschnitten. Sie nutzen wiederum Services und Dienste (SaaS), die passgenau ein skalierbares Gesamtsystem bieten (Cloud-native). Um ein sehr modernes Web-Frontend oder auch die Anbindung einer mobilen App an die Backend-Services zu ermöglichen, wird ein Headless-Ansatz gewählt. Die verschiedenen Clients können sich somit die Daten beispielsweise via REST oder GraphQL selektieren und dem Touchpoint entsprechend darstellen.

Gesamtsystemarchitektur

Erstellung

  • Requirementsanalyse in verschiedenen Workshops

  • NFR (Non-Functional Requirements): Anhand von Szenarien werden die Qualitätsmerkmale des Systems hinsichtlich Änderbarkeit, Benutzbarkeit, Effizienz, Funktionalität, Übertragbarkeit beschrieben

  • Funktionale Anforderungen werden mit Hilfe von Storymapping in eine sinnvolle Reihenfolge gebracht

  • Entwicklung einer Caching-Strategie

  • Skalierbarkeit und Resilienz des Systems

  • Schnittstellenanalyse

  • Datenflüsse werden erfasst

  • Sizing der Systeme, Beschreibung der Skalierungsszenarien

  • IAM (Identity Access Management) beispielweise mit Keycloak

  • … weitere spezifische individuelle Anforderungen werden definiert!

Priorisiertes Backlog

Implementierung

  • Wir arbeiten mit unseren Kunden sehr häufig mit dem MVP-Ansatz (Minimum Viable Product). Das heißt: Um schnelles Kundenfeedback und Mehrwert zu liefern, wird das kleinstmögliche Feature-Set gewählt, mit welchem man schnell in Produktion gehen kann.

  • Die kritischen und wichtigen Dinge, welche den meisten Mehrwert liefern oder Risiken minimieren, setzen wir zuerst um.

  • Mit agiler Softwareentwicklung arbeiten die diva-e-Teams stetig an der Optimierung.

  • Das Deployment der Artefakte startet spätestens nach jeder Iteration (Sprintzyklus)

So arbeiten wir

Vorgehensweise

Eingesetzte Programmiersprachen, Produkte, Services

  • Wir arbeiten mit passgenauen Architekturen und wählen mit unseren Kunden die passenden Systeme aus.

  • Individuelle Anforderungen werden in Form von Microservices oder Serverless Functions umgesetzt.

  • SaaS- und PaaS-Lösungen kombinieren wir mithilfe einer MACH-Architektur miteinander. Wir sind Partner von Microsoft Azure und Amazon Web Services (aws) und kombinieren die passende Plattform oder den passenden Service für Ihr System.

  • Wir wählen die passende Programmiersprache für das System, unsere Kund:innen und die beteiligten Entwicklungsteams aus: Oft kommen Java, Kotlin oder .net aber auch Golang oder Python zum Einsatz.

Automatisiertes Deployment

  • CI/CD Pipeline: automatisiertes Deployment von Beginn der Entwicklung bis zum Livegang und im Betrieb

Sich selbst skalierende Systeme und Betrieb

  • Wir arbeiten bereits von Beginn an mit unseren Kund:innen an den Verfügbarkeiten, die an das Zielsystem gestellt werden, um einen kosteneffizenten Betrieb zu gewährleisten.

Software Development Glossar

Fachlich voneinander getrennte Services, die eine bestimmte Businesslogik kapseln und voneinander unabhängig deployed werden können. Die Services stellen Schnittstellen bereit und implementieren einen bestimmten Anwendungsfall, der fachlich von anderen Services getrennt gesehen kann. Man spricht hierbei von einem Bounded Context, im Sinne des Domain-Driven Designs.

Unter API-first wird verstanden, dass ein Dienst in der Cloud (SaaS) alle Features über ein Application Programming Interface (API) zur Verfügung stellt. Es gibt also keine Features, welche nur über eine proprietäre UI gesteuert werden können. Alle Features und Einstellmöglichkeiten sind über die API erreichbar.

Ziel von Cloud-native ist, skalierbare Systeme zu betreiben, welche sich automatisch an die Nutzerzahl anpassen: Sind wenige Nutzer auf dem System, sollen auch weniger Ressourcen verwendet werden. Sind sehr viele Nutzer auf dem System, sollen viele Ressourcen zur Verfügung gestellt werden, damit das System immer schnell und adäquat reagiert. Erreicht wird das unter Verwendung von Services in der Cloud, sogenannten Software-as-a-Service-Lösungen, welche diese Möglichkeit meist out of the box bieten, oder durch die Verwendung von Diensten, welche die entsprechenden Cloud Provider anbieten (Platform as a service (PaaS)).

Bei diesem Architekturansatz wird die Businesslogik für alle Clients in einer Schnittstelle (API) zur Verfügung gestellt. Das Backend System sorgt nicht mehr für die Aufbereitung der Daten für spezifische Frontends, sondern durch intelligentes API Design können sich die verschiedenen Clients für jeden Kanal von dieser Schnittstelle bedienen.

Wir setzen alle unsere Projekte mittels agiler Methoden um.

Ziel des MVP-Ansatzes ist, das kleinst funktionsfähige Produkt zu erstellen, um dieses schnell dem Kunden zur Verfügung zu stellen und somit umgehend Nutzerfeedback zu erhalten. Dieses Nutzerfeedback ist enorm wichtig, um die nächsten Schritte, die Weiterentwicklung des Produktes, zu priorisieren. Um die Kundenbedürfnisse bestmöglichst zu erfüllen und die Time-to-Market zu reduzieren.

Nicht-funktionale Anforderung sind Merkmale eines Softwaresystems, welche den Anspruch an die Softwarequalität beschreiben. Diese sind in dem ISO/IEC 9126 Standard zu finden und werden anhand folgender Oberbegriffe definiert: Änderbarkeit/Wartbarkeit, Benutzbarkeit, Effizienz, Funktionalität, Übertragbarkeit und Zuverlässigkeit. Die Anforderungen eines Systems, etwa wie zuverlässig es bereitgestellt werden soll, beschreiben wir mittels Szenarien. Es gibt für jeden Use Case unserer Kunde ganz andere Ansprüche an die Softwarequalität, auch sind die Kosten für die verschiedenen Qualitäten sehr verschieden. Wir kennen uns damit aus und finden den richtigen Weg für die Gesamtarchitektur in diesen verschiedenen Dimensionen.

Damit ist die Möglichkeit gemeint bestimmte Businesslogik auf der Plattform eines bestimmten Cloud-Anbieters (z. B. Microsoft Azure oder aws) zur Verfügung zu stellen, ohne sich um die Skalierbarkeit und Hochverfügbarkeit des Systems kümmern zu müssen. Dass diese Funktion verfügbar ist, wenn sie gebraucht wird, garantiert der Cloud-Anbieter.

Unter resilientem Software Design versteht man den Umgang mit Fehlerzuständen im Livebetrieb eines Softwaresystems. Das heißt: Wenn ein bestimmter Dienst nicht zur Verfügung steht, wird nicht das ganze System in Mitleidenschaft gezogen. Die User werden entsprechend informiert, dass ein bestimmter Dienst gerade nicht zur Verfügung steht, beispielsweise die Produktbestandsführung, aber ein Produkt ist trotzdem bestellbar.

Informationen zu PaaS.

Die zentrale Verwaltung von Nutzer:innen und Zugriffsrechten ist gerade bei verteilten Systemen mit sehr unterschiedlichen Diensten von entscheidender Bedeutung. Wir sind Expert:innen in verschiedenen IAM-Systemen und deren Features, sei es Single Sign On (SSO) oder Zwei-Faktoren-Authentifizierung. Wir kennen Open-Source-Produkte wie Keycloak, kommerzielle Produkte oder auch die Lösungen, welche von unseren Cloud-Provider-Partnerunternehmen zur Verfügung gestellt werden (Microsoft Azure und aws). So wählen wir mit unseren Kund:innen daraus die passende Lösung aus.

Unter Represential State Transfer (REST) versteht man ein Paradigma, welches vor allem für Webservices zum Einsatz kommt. Hierbei gilt es, nach bestimmten Regeln die Schnittstelle (API) aufzubauen und auch die Möglichkeiten des HTTP-Protokolls voll auszunutzen. Das bedeutet, dass man HTTP-Statuscodes für den Erfolgs- und Fehlerfall sowie Medientypen unterstützt, um einerseits dem Client zu signalisieren, was er von der Schnittstelle für eine Antwort erwarten kann, aber auch auf Serverseite festzulegen, wie auf bestimmte Zustände zu reagieren ist.

GraphQL ist eine Abfragesprache für APIs, welche den Clients die Möglichkeit bietet, die Daten anzufordern, die sie zur Darstellung des aktuellen Use Cases benötigen. Dadurch werden im Backend die Daten entsprechend selektiert und nur die wirklich benötigten Informationen werden an den Client übertragen.

Häufige Fragen in Verbindung mit Software Development

MACH geht noch einen Schritt weiter als eine reine Architektur aus Microservices. Hierbei gilt es, verschiedene Servicelösungen miteinander zu kombinieren im Zusammenspiel mit individuellen Microservices. Auch müssen die eingesetzten Produkte gewisse Voraussetzungen mitbringen. Der API-first Ansatz gibt vor, dass die Produkte komplett über die API steuerbar sind. So hat beispielsweise ein E-Commerce-System keine versteckten Features, welche man nur mit einer gesonderten Admin-UI einstellen kann. Wichtig ist auch der Cloud-native Ansatz. Die Systeme sind für die Cloud konzipiert, skalieren vollautomatisch nach oben und unten. So sparen sie also Kosten bei Unterlast und stellen Ressourcen zur Verfügung, wenn viele Nutzer:innen das System gleichzeitig verwenden wollen. Hinzu kommt der Headless-Ansatz. Schnittstellen zur Darstellung des User Interfaces werden für alle Clients bereitgestellt – ein modernes Frontend, eine PWA oder eine native mobile App kann den Anforderungen entsprechend das Interface mit derselben Schnittstelle darstellen.

Ob das Nutzen der MACH-Architektur ein Vorteil ist oder doch eine Enterprise Lösung besser passt, das entscheiden wir gemeinsam. Wir können beides! Für viele unserer Kund:innen ist die Enterprise Lösung genau die richtige Entscheidung. Andererseits haben wir aber auch sehr viele Anfragen mit sehr speziellen Anforderungen. Das Customizing einer großen Enterprise Lösung muss man dann gegen die individuellen Stärken einer MACH-Architektur abwägen, bei welcher dann leichtgewichtige SaaS-Lösungen mit individuell erstellten Microservices kombiniert werden und gegebenenfalls schneller und kostengünstiger zum Ziel führen.

Time-to-Market ist entscheidend. Je schneller ein wichtiges Feature nutzbar ist, desto besser. Ein neues Feature birgt aber stets die Gefahr, dass es zu Fehlerzuständen kommen kann. Durch den Einsatz agiler Methoden ist in unserer DNA eine hohe Testabdeckung für alle Features bereitzustellen. Bei jeder Integration von Features werden automatisierte Unit/Integrations und bei Bedarf Oberflächentests ausgeführt. Auch das Deploymentszenario wird entsprechend der Anforderungen individuell aufgebaut. Unterbrechungsfreies Deployment ist für uns selbstverständlich. Natürlich besteht auch die Möglichkeit, nur mittels A/B-Tests auszuprobieren, wie ein bestimmtes Feature angenommen wird.

Durch resiliente Architekturen ermöglichen wir, dass beim Ausfall eines bestimmten Dienstes nicht das ganze System betroffen ist. Der User wird in dem Fall informiert, dass ein bestimmter Dienst nicht zur Verfügung steht, er aber den Großteil der Features weiterhin verwenden kann.

Jetzt Kontakt aufnehmen

ZEISS
Konzeption und Betrieb der E-Commerce Plattform auf Basis Intershop in der Azure Cloud.
EDEKA
diva-e realisiert für den Einzelhandelsriesen eine dynamische E-Food-Plattform und sorgt so für mehr Transaktionen.
dmTECH
diva-e setzt gemeinsam mit dmTECH neue Maßstäbe sowohl in der Softwareentwicklung als auch in der digitalen Beratung.
ALDI SÜD
e-on
Mit über 140 Experimenten und der smarter Steuerung von „Next Best Actions“ spielen wir komplexe Personalisierungs- und Testkampagnen aus.
Weleda
diva-e begleitet Weleda seit mehreren Jahren auf dem Weg der digitalen Transformation. Als großer Meilenstein der Digitaloffensive ging im Februar 2024 der Online-Shop in Deutschland live.
Schott
diva-e schafft durch die Online Plattform des Glas-Weltmarktführers ein einzigartiges Bestellerlebnis im B2B.
FC Bayern München
diva-e setzt für den deutschen Rekordmeister und seine Fans neue Maßstäbe mit maßgeschneiderten digitalen Erlebnissen.
Viega
Optimale User Experience für den Kunden
ZEISS
Konzeption und Betrieb der E-Commerce Plattform auf Basis Intershop in der Azure Cloud.
EDEKA
diva-e realisiert für den Einzelhandelsriesen eine dynamische E-Food-Plattform und sorgt so für mehr Transaktionen.
dmTECH
diva-e setzt gemeinsam mit dmTECH neue Maßstäbe sowohl in der Softwareentwicklung als auch in der digitalen Beratung.
ALDI SÜD
e-on
Mit über 140 Experimenten und der smarter Steuerung von „Next Best Actions“ spielen wir komplexe Personalisierungs- und Testkampagnen aus.
Weleda
diva-e begleitet Weleda seit mehreren Jahren auf dem Weg der digitalen Transformation. Als großer Meilenstein der Digitaloffensive ging im Februar 2024 der Online-Shop in Deutschland live.
Schott
diva-e schafft durch die Online Plattform des Glas-Weltmarktführers ein einzigartiges Bestellerlebnis im B2B.
FC Bayern München
diva-e setzt für den deutschen Rekordmeister und seine Fans neue Maßstäbe mit maßgeschneiderten digitalen Erlebnissen.
Viega
Optimale User Experience für den Kunden
Gemüseabteilung in einem Supermarkt
Logo ALDI Süd
weleda logo
Gemüseabteilung in einem Supermarkt
Logo ALDI Süd
weleda logo