Was Unternehmenssoftware von Entwicklern verlangt

Peter Tran

Anmerkung: Dieser Blogpost wurde für das Modul Enterprise IT (113601a) verfasst

Einleitung

Unternehmenssoftware, wie ERP oder CRM-Systeme, ist das Rückgrat moderner Organisationen. Sie übernimmt zentrale Geschäftsprozesse, verarbeitet große Datenmengen zuverlässig und muss höchsten Anforderungen an Sicherheit, Skalierbarkeit und Wartbarkeit gerecht werden. Für Entwickler bedeutet das: Ihre Lösungen müssen nicht nur funktional, sondern auch zukunftsfähig und gut integrierbar sein. Besonders herausfordernd ist die Anbindung an bestehende Legacy-Systeme sowie die Umsetzung unternehmenskritischer Funktionen wie Zugriffskontrollen, Ausfallsicherheit und langfristiger Support. Dieser Text erläutert die Anforderungen, mit denen Entwickler bei der Erstellung solcher Systeme konfrontiert sind [1][2].

Technische Anforderungen an Entwickler

Skalierbarkeit

Skalierbare Softwarearchitektur ist essenziell, um flexibel auf wachsende Anforderungen zu reagieren und langfristig eine leistungsfähige sowie kosteneffiziente Infrastruktur zu gewährleisten. Entwickler müssen dabei nicht nur die technische Umsetzung meistern, sondern auch Herausforderungen wie Kosten, Sicherheit, Datenschutz und Testbarkeit berücksichtigen [3].
Wichtige Prinzipien einer skalierbaren Architektur:

  • Modulare Architektur: Nutzung von Microservices oder Container zur Entkopplung von Komponenten
  • Cloud: Einsatz von Plattformen wie AWS
  • Datenbank-Skalierung: Strategien wie Sharding, Replikation oder Caching
  • Lastverteilung: Gleichmäßige Verteilung von Anfragen auf mehrere Server
  • Asynchrone Verarbeitung: Hintergrundprozesse zur Entlastung der Hauptanwendung
  • Performance Überwachung: Permanente Leistungsüberwachung zur frühzeitigen Fehlererkennung

Neben der skalierbaren Softwarearchitektur spielt die skalierbare Infrastruktur ebenfalls eine wichtige Rolle. Dabei wird sie in zwei grundlegende Skalierungen unterschieden.

  • Vertikale Skalierung: Erhöhung der Rssourcen eines einzelnen Servers. Kostengünstig aber nur begrenzt erweiterbar
  • Horizontale Skalierung: Verteilung der last auf mehrere Server durch neue Instanzen. Bietet hohe eine Ausfallsicherheit dafür kostenintensiver

Qualität und Zuverlässigkeit

Die ISO 25010 ist ein internationaler Standard, der als Norm für die Qualitätskriterien von Software dient. Er wird als umfassender Leitfaden dargestellt, der darauf abzielt, eine hohe Qualität in der der Softwareentwicklung zu gewährleisten. Einige dieser Kriterien sind [4]:

  • Funktionalität: Erfüllung der spezifizierten Anforderungen
  • Leistungseffizient: Leistung im Verhältnis zu eingesetzten Ressourcen
  • Sicherheit: Schutz sensibler Daten und kontrollierter Zugriff
  • Kompatibilität: Interoperabilität mit anderen Systemen

Die Berücksichtigung der ISO-Kriterien schon zu Beginn eines Projektes kann Zeit und Kosten sparen und die Qualität deutlich verbessern.
Ein weiterer Faktor ist die Zuverlässigkeit: Software sollte in ihrer Zielumgebung für einen bestimmten Zeitraum fehlerfrei laufen. Im Gegensatz zur Hardware hängt Software-Zuverlässigkeit stark vom Design ab. In der Luftfahrt können Fehler lebensgefährlich sein, während sie in andren Bereichen „nur“ frustrierend aber weniger schwerwiegend sind.
Zur Verbesserung der Zuverlässigkeit helfen DevOps und SRE durch Automatisierung, Überwachung und schnelle Reaktion auf Vorfälle [5].

Integration

Viele Unternehmen nutzen noch veraltete Legacy-Systeme, die teuer und schwer wartbar sind. Eine komplette Ablösung ist oft keine Option da sie zu aufwändig und riskant sind. Stattdessen hilft Middleware, moderne Anwendungen mit alten Systemen zu verbinden [6]. Typen von Middleware:

  • Api-basiert: Verwaltung von Schnittstellen
  • Daten-Middleware: Direkter Zugriff auf Datenbanken
  • Message-Oriented Middleware: Echtzeit-Nachrichtenrouting
  • RPC-Middleware: Fernaufrufe zwischen Anwendungen
  • ORB-Middleware: Objektanfragen in verteilten Systemen
  • Portal-Middleware: Präsentation von Backend-Daten im Frontend

Der Einsatz von Middleware bringt zahlreiche Vorteile. Sie steigert die Effizienz, verbessert die Nutzererfahrung indem erweiterte Funktion der neuen Umgebung eingebunden werden und ermöglicht es Unternehmen, bestehende Altsysteme weiterhin zu nutzen, ohne sie vollständig ersetzen zu müssen.

Typischer Ablauf:

  1. Bestandsaufnahme der vorhandenen Systeme
  2. Auswahl der Middleware-Architektur
  3. Entwicklung & Einführung
  4. Optimierung und Erweiterung

Wartbarkeit & Erweiterbarkeit

Entwurfsmuster

Entwurfsmuster sind bewährte und wiederverwendbare Lösungen für häufig auftretende Probleme im Software-Design. Sie helfen Entwicklern die Software-Architektur zu strukturieren und ermöglichen es Entwicklern Zeit zu sparen sowie typische Fehler zu vermeiden und führen zu mehr Zuverlässigkeit der Programme. Der gesamte Entwicklungszyklus kann sich positiv beeinflussen:

Lesbarkeit: Code der nach bekannten Mustern strukturiert ist, ist für andere Entwickler wesentlich leichter zu lesen und zu verstehen.

Modularität: Große Probleme können in kleinere Teile zerlegt werden. Arbeiten an kleineren Komponenten erleichtert nicht nur das Debugging, sondern vermeidet große Auswirkung auf andere Teile des Codes bei Änderungen der Komponente

Skalierbarkeit: Entwurfsmuster helfen dabei, Software so zu gestalten, dass sie mit wachsenden Anforderungen mitwachsen kann wie das Hinzufügen neuer Funktionen oder steigende Anzahl an Benutzern

Wiederverwendbarkeit: Durch das Vermeiden von wiederholtem Code, können Entwurfsmuster dazu beitragen Zeit einzusparen und sorgen für Konsistenz und Einhaltung von Best Practices über verschiedene Projekte hinweg.

Entwurfsmuster sind unverzichtbar in der modernen Softwareentwicklung und fördern nicht nur Codequalität, sondern verbessern auch die Effizienz und Zusammenarbeit im gesamten Entwicklungsprozess [7].

Testbarkeit

Eine gute Testumgebung stellt sicher, dass die Software möglichst fehlerfrei verwendet werden kann. Beim Testen gibt es sowie beim Programmieren viele Strategien, wovon eine bewährte das „Shift-Left“ Testing ist. Das Prinzip davon, ist die Verlagerung von Testaktivitäten an einen früheren Punkt während der Entwicklungsphase. Dadurch kann sich die Qualität bereits am Anfang verbessern und reduziert Zeit für das Testen und minimiert Auswirkungen von Defekten, die später im Zyklus gefunden werden.
Weitere Vorteile des „Shift-Left“ Prinzips, sind die unmittelbaren Feedbacks zur schnellen Problemlösung, vorhersehbarer Sprintergebnisse durch Reduzierung unbekannter Probleme und mehr Zeit für Feature-Entwicklung da schnellere Testzyklen und weniger Defekte mehr Entwicklerzeit fördern [8].

Technologien, die häufig gefordert sind

Sprachen

Trotz des Aufkommens von Sprachen wie Python, Go, Rust und Kotlin, bleibt Java aufgrund seiner grundlegenden Stärken eine dominierende Sprache.
Ein zentraler Vorteil Javas ist seine Portabilität durch die Java Virtual Machine (JVM). Sie ermöglicht, dass Java-Anwendungen auf verschiedenen Plattformen lauffähig gemacht werden kann, ohne dass dieser neu kompiliert werden muss. Dies ist besonders wichtig für den Einsatz in Unternehmensanwendungen, wo plattformübergreifende Kompatibilität von höchster Bedeutung ist.
Zusätzlich ist das Ökosystem von Java riesig und ausgereift, was einen wesentlichen Beitrag zu seiner Popularität leistet. Eine große und aktive Entwicklergemeinschaft, umfassende Frameworks wie Spring sowie eine große Auswahl an Bibliotheken erleichtern die Entwicklung und Wartung von Java-Anwendungen. Sie tragen zur Produktivität der Entwickler bei und ermöglichen die schnelle Erstellung von Webdiensten, APIs und Microservices [9].

Tools

Für Java-Anwendungen existiert ein Framework, das für viele Entwickler unverzichtbar ist. Spring Boot sorgt für eine erleichterte Entwicklung von Java basierten Anwendungen wie die Auto-Konfigurationsfunktion die anhand vorhandener Bibliotheken, passende Einstellungen und Abhängigkeiten wählt.
Ein weiterer Schwerpunkt ist das umfassende Set an eingebauten Sicherheitsfunktionen wie Authentifizierung und Autorisierung.
Die Skalierbarkeit ist ein entscheidendes Kriterium für Unternehmensanwendung. Spring Boot besitzt die Fähigkeit die Anforderung von hohen Nutzer-Verkehrsaufkommen zu meistern und auch sehr große Anwendungen effizient zu unterstützen [10].

Microservices

In den letzten Jahren haben Microservices als Architekturstil in der Softwareindustrie stark an Bedeutung gewonnen. Während die theoretischen Grundlagen gut dokumentiert sind, ist das Wissen über konkrete Migrationserfahrung aus monolithischen Systemen in der Industrie begrenzt.
Die primäre Motivation für den Umstieg auf Microservices liegen in der verbesserten Wartbarkeit, Skalierbarkeit und besserer Flexibilität der Systeme. Es können aber auch technische Probleme entstehen. Dazu gehört vor allem die saubere Abgrenzung einzelner Services und der Umgang mit verteilten Daten. Zusätzlich müssen viele Entwickler sich erst Wissen über neue Technologie wie Containerisierung, API-Gateways oder Monitoring-Werkzeuge aneignen.
In der Praxis setzen viele Unternehmen jedoch nicht auf eine schrittweise Migration, sondern entscheiden sich für eine vollständige Neuentwicklung da sich alte monolithische Systeme kaum sinnvoll in kleinere Komponenten zerlegen können.
Viele befragte Unternehmen können bestätigen, dass sich der Umstieg auf Microservices langfristig lohnt, insbesondere wenn dieser strategisch geplant ist [11].

Fazit

Die Entwicklung von Enterprise-Software erfordert ein hohes Maß an technischer Expertise, strategischer Planung und Verständnis für komplexe Unternehmensanforderungen. Von der Skalierbarkeit der Architektur über Qualitätsstandards wie ISO 25010 bis hin zur Integration bestehender Systeme mittels Middleware bringt jede Phase spzifische Herausforderungen mit sich. Moderne Konzepte wie Microservices, bewährte Entwurfsmuster sowie frühes Testen nach dem Left-Shift Prinzip tragen entscheidend zur Wartbarkeit und Weiterentwicklung solcher Systeme bei. Technologien wie Java und passende Frameworks wie Spring Boot zeigen, dass etablierte Tools weiterhin eine zentrale Rolle spielen. Letzlich ist erfolgreiche Enterprise-Software das Ergebnis ausgereifter Technik, klare Prozesse und kontinuierlicher Optimierung.

Referenzen

[1] Wikipedia. 2024. Enterprise Software. Zugriff am 21. Juli 2025. https://en.wikipedia.org/wiki/Enterprise_software.

[2] Cuttlesoft. 2024. “What Makes Enterprise Software Development Different?” Cuttlesoft Blog, 18. August 2024. Zugriff am 21. Juli 2025. https://cuttlesoft.com/blog/2024/08/18/what-makes-enterprise-software-development-different/.

[3] Bellmatec. 2023. “Skalierbare Softwarearchitekturen – Grundlagen und Umsetzung.” Zugriff am 21. Juli 2025. https://bellmatec.de/skalierbare-softwarearchitekturen/.

[4] Inztitut. 2023. “ISO 25010 – Qualitätsmodell für Softwareprodukte.” Zugriff am 21. Juli 2025. https://inztitut.de/blog/glossar/iso-25010/.

[5] Gart Solutions. 2023. “Software Reliability: How to Build Stable and Trustworthy Applications.” Zugriff am 21. Juli 2025. https://gartsolutions.com/software-reliability/.

[6] Imaginovation. 2023. “Custom Middleware to Integrate Old and New Systems.” Zugriff am 21. Juli 2025. https://imaginovation.net/blog/custom-middleware-to-integrate-old-new-systems/.

[7] Onwave Group. 2023. “How Design Patterns Can Improve Software Development.” Zugriff am 21. Juli 2025. https://onwavegroup.com/blog/how-design-patterns-can-improve-software-development/.

[8] Microsoft Learn. 2024. “Shift Left: Make Testing Fast and Reliable.” Zugriff am 21. Juli 2025. https://learn.microsoft.com/de-de/devops/develop/shift-left-make-testing-fast-reliable.

[9] Kato, Satoshi. 2024. “The Role of Java in Modern Software Development: A Comparative Analysis with Emerging Programming Languages.” ResearchGate. Zugriff am 21. Juli 2025. https://www.researchgate.net/publication/391876747_The_Role_of_Java_in_Modern_Software_Development_A_Comparative_Analysis_with_Emerging_Programming_Language.

[10] Ivanov, Dmitry. 2024. “Spring Boot for Modern Enterprises: Security, Scalability and Seamless Integration.” ResearchGate. Zugriff am 21. Juli 2025. https://www.researchgate.net/publication/387127268_Spring_Boot_for_Modern_Enterprises_Security_Scalability_and_Seamless_Integration

[11] Taibi, Davide, Valentina Lenarduzzi und Claus Pahl. 2019. “Architectural Patterns for Microservices: A Systematic Mapping Study.” arXiv preprint. arXiv:1906.04702. Zugriff am 21. Juli 2025. https://arxiv.org/abs/1906.04702.


Posted

in

by

Peter Tran

Comments

Leave a Reply