Anwendungsentwicklung
Wie sich neue Software effizient, schnell und sicher herstellen lässt
Organisationen müssen digitaler werden, um schneller wachsen, im Wettbewerb bestehen und Krisen besser bewältigen zu können. Das haben auch die deutschen Industrieunternehmen erkannt. Über drei Viertel sind der Ansicht, dass Firmen mit digitalisierten Geschäftsmodellen besser durch Krisen wie die Corona-Pandemie kommen, fast zwei Drittel konnten durch die Digitalisierung einen Innovationsschub erfahren, so eine repräsentative Umfrage des Digitalverbands Bitkom.
Die digitale Transformation ist allerdings ohne neue Software nicht umsetzbar. Die Anwendungsentwicklung und der Prozess zur Herstellung von Software gewinnen daher zunehmend an Bedeutung.
Was ist Anwendungsentwicklung?
Anwendungsentwicklung beschreibt den Prozess zur Herstellung von Software. Sie ist ein Teil der allgemeinen Software-Entwicklung, bei der es nicht nur um Applikationen, sondern auch um die Bereitstellung und Weiterentwicklung von Betriebssystemen, Middleware, Firmware oder Infrastructure as Code geht.
Prinzipiell lässt sich bei der Anwendungsentwicklung zwischen der Herstellung von Standardsoftware und Individualsoftware unterscheiden. Während Standardapplikationen einen festen Funktionsumfang aufweisen, der meist gestaffelt in Paketen oder Modulen angeboten wird, stellt man bei der Entwicklung von Individualsoftware Anwendungen her, die spezifisch auf die Anforderungen eines Unternehmens beziehungsweise einer Fachabteilung abgestimmt sind.
Welche Phasen der Anwendungsentwicklung gibt es?
Die Anwendungsentwicklung lässt sich in folgende Phasen einteilen:
Definition der Leistungsmerkmale und Funktionen: Zunächst gilt es, die Anforderungen der internen oder externen Kunden zu analysieren und detailliert festzuhalten. Dabei geht es nicht nur um rein technische Aspekte, auch Ansprechpartner, Kommunikationswege, Anforderungen an Systemintegration, Sicherheit und Bedienung sowie der zeitliche Ablauf des Projekts sollten in dieser Phase abgestimmt und dokumentiert werden.
Definition der Rahmenbedingungen: Sind die Anforderungen und Ziele klar, werden die Rahmenbedingungen für die Anwendungsentwicklung festgelegt: Welche Softwarearchitektur soll zum Einsatz kommen, welche Programmiersprachen und Datenbanken? Soll die Applikation cloud-nativ, lokal oder hybrid betrieben werden? Welche Abhängigkeiten und Schnittstellen sind zu beachten?
Umsetzung: Nun beginnt die eigentliche Anwendungsentwicklung, bei der die in Schritt Eins festgelegten Anforderungen mit den in Schritt Zwei definierten Tools und Technologien umgesetzt werden.
Testing: Die entstehende Software muss regelmäßig auf Funktionalität, Leistung, Sicherheit und Benutzerfreundlichkeit getestet werden. Bei der statischen Codeanalyse prüfen die Testsysteme, ob der Code Fehler oder Schwachstellen wie Pufferüberläufe oder Speicherlecks aufweist. Dynamische Tests werden dagegen während der Ausführung des Programms durchgeführt, um Fehler zu entdecken, die im Zusammenhang mit der Laufzeitumgebung stehen.
Bereitstellung: Hat die Anwendung alle Tests bestanden, ist sie bereit für den Einsatz. Der Kunde erhält die Applikation in Form eines physischen Datenträgers, eines Downloads oder als Cloud-Service. Er kann sie dann auf seinen Systemen installieren oder im Falle einer Cloud-Bereitstellung direkt nutzen. In der Regel erfolgt dieser Schritt in enger Abstimmung mit der Entwicklungsabteilung oder dem Dienstleister, der die Software erstellt hat. Zur Bereitstellung, auch als Deployment, Implementierung oder Abnahme bezeichnet, gehören zudem eine entsprechende Einweisung sowie die Dokumentation der Applikation.
Wartung und Pflege: Keine Software ist perfekt, deshalb muss die ausgelieferte Applikation in der Regel mehrfach angepasst werden. Neben funktionalen Fehlern sind vor allem Sicherheitslücken problematisch, die als sogenannte Zero Day Exploits ausgenutzt werden können. Der Softwareanbieter sollte deshalb bei erkannten Schwachstellen so schnell wie möglich eine korrigierte Version der Anwendung liefern, die den Fehler behebt. Dem Patch-Management des Anwenderunternehmens kommt die wichtige Aufgabe zu, diese Aktualisierungen so schnell wie möglich zu implementieren.
Je nach Lizenzmodell muss die Anwendung außerdem in das Software Asset Management des Kunden aufgenommen werden. Es sorgt dafür, dass die Zahl der Lizenzen den jeweils aktuellen Anforderungen im Unternehmen entspricht. So wird eine Über- oder Unterlizenzierung verhindert und das Risiko von Nachzahlungen während eines Software Audits durch den Hersteller minimiert.
Welche Qualitätsmerkmale der Anwendungsentwicklung gibt es?
Um die Qualität der Anwendungsentwicklung zu bewerten, können sich Unternehmen an der ISO/IEC 25010 orientieren. Sie definiert acht Qualitätsmerkmale:
- Funktionalität: Die Anwendung muss das funktionale Anforderungsspektrum vollständig abdecken, Funktionen wie Berechnungen oder Dateioperationen korrekt ausführen und angemessene Lösungen für die Problemstellung bieten.
- Zuverlässigkeit: Bei der Auslieferung muss die Anwendung ausgereift und so einsatzbereit sein, dass sie das mit dem Kunden vereinbarte Verfügbarkeitsniveau (beispielsweise 98 Prozent oder 99,999 Prozent Uptime) einhält. Sie muss fehlertolerant sein. Eingabe- oder Laufzeitfehler dürfen nicht zu schweren Problemen oder gar Abstürzen führen. Bei unvorhergesehenen Ausfällen muss die Anwendung schnell und vollständig wiederhergestellt werden können.
- Performance: Die Anwendung sollte schnell reagieren, Ressourcen optimal nutzen und nicht mehr Systemkapazität belegen als unbedingt nötig.
- Sicherheit: Gute Anwendungen erfüllen alle Anforderungen des Datenschutzes, sind authentifizierbar und lassen sich nicht manipulieren. Verwaltung und Nutzung erfolgen über sichere Zugänge.
- Kompatibilität: Die Anwendung arbeitet problemlos mit anderen Softwareprogrammen, Betriebsystemen und Verwaltungstools zusammen, bietet ausreichende und einfach zu nutzende Schnittstellen und beeinträchtigt die Ausführung anderer Applikationen nicht.
- Benutzerfreundlichkeit: Der Zugang zur Applikation sollte ästhetisch ansprechend sowie barrierefrei, der Einstieg einfach und die Nutzung bequem sein. Fehlbedienungen müssen verhindert und abgefangen werden.
- Wartung: Die Anwendung sollte modular aufgebaut und leicht erweiterbar sein. Komponenten sollten sich für andere Zwecke wieder verwenden lassen. Für Wartung und Problembehebung stehen einfach zu bedienende Analyseschnittstellen und Testfunktionen zur Verfügung.
- Portierbarkeit: Gute Anwendungen sind einfach zu installieren und auch wieder zu deinstallieren. Sie sollten sich außerdem leicht von einem System auf ein anderes migrieren lassen.
Tipps zur erfolgreichen Anwendungsentwicklung
Mit den folgenden Tipps können Sie die Erfolgsquote und die Qualität Ihrer Anwendungsentwicklung steigern:
1. Gewinnen Sie ein umfassendes Verständnis der Zielumgebung: Vor allem bei der Entwicklung von Individualsoftware kommt es darauf an, die fachspezifischen Anforderungen, Strukturen und Ziele der Anwendenden wirklich zu verstehen. Das ist nicht so einfach, wie es zunächst scheint, denn oft sprechen die Fachkräfte aus Forschung und Entwicklung, Produktion oder Finanzbuchhaltung eine eigene Sprache, die zunächst dechiffriert und verstanden werden muss. In der Analysephase ist deshalb ein intensiver Austausch notwendig, bei dem immer wieder geprüft werden sollte, ob alle Beteiligten dasselbe Verständnis von den Anforderungen an die Anwendungsentwicklung und deren Umsetzung haben.
2. Nutzen Sie agile Methoden: Traditionell werden die oben skizzierten Phasen der Anwendungsentwicklung in einer starren Abfolge nacheinander durchlaufen. In einer volatilen Welt, in der sich Rahmenbedingungen, Wettbewerb und Nutzerverhalten ständig ändern, hat diese sogenannte „Wasserfallmethode“ allerdings erhebliche Nachteile. Schließlich können zwischen der Definition der Anforderungen und der letztendlichen Implementierung viele Monate vergehen. Oft ist ein solches Software-Produkt bereits veraltet, wenn es auf den Markt kommt.
Moderne agile Konzepte wie Scrum oder DevOps setzen auf ein iteratives Vorgehen, in dem die Phasen der Anwendungsentwicklung immer wieder durchlaufen werden. Ziel ist es, so schnell wie möglich ein lauffähiges Produkt (Minimum Viable Product, MVP) zu erstellen und dieses unter Realbedingungen zu testen. Aus den Erfahrungen und dem Feedback der Nutzenden wird dann die nächste Version erstellt und wieder getestet. So ist sichergestellt, dass die Software-Herstellung mit den Entwicklungen im Markt Schritt hält.
3. Arbeiten Sie mit den richtigen Leuten zusammen: Der Prozess zur Herstellung von Software ist komplex, aufwendig, langwierig und kostenintensiv. Wer daher bei der Anwendungsentwicklung auf die falschen Partner setzt, kann viel Geld und Zeit verlieren. Achten Sie deshalb bei der Auswahl eines Dienstleisters darauf, dass dieser Ihre Bedürfnisse auch wirklich versteht und Sie bei der optimalen Anpassung und Erweiterung Ihrer Softwarelandschaft unterstützt.
Idealerweise sollte das Unternehmen umfangreiche Erfahrungen in Ihrem Spezialgebiet haben und diese auch nachweisen können. Kompetenz in agiler und cloud-nativer Anwendungsentwicklung sollte ebenso vorhanden sein wie ausreichende Entwicklungskapazitäten, die sicherstellen, dass Ihr Projekt erfolgreich im vorgesehenen Zeitrahmen umgesetzt werden kann.
Sprechen Sie jetzt mit unseren Experten!
Als netgo group bringen wir Menschen und Technologien erfolgreich zusammen.
Dabei denken wir ganzheitlich, verstehen das Geschäft unserer Kunden und ebnen den Weg für eine smarte und intelligente Digitalisierung.