Eine Rakete, die einen Software-Entwicklungsprozess darstellen soll
Wissen

Wie läuft die Entwicklung von Software ab?

Haben Sie eine Produktvision und möchten Sie diese in die Realität umsetzen, wissen jedoch noch nicht, wie Sie vorgehen sollen? Wir erklären Ihnen in diesem Wissensbeitrag, wie die Software-Entwicklung von der Anforderungsanalyse bis zur Veröffentlichung gemeinsam mit einer Software-Agentur abläuft. Damit sind Sie für Ihr nächstes Projekt bestens informiert!

Lesezeit
5 Minuten

Das Wichtigste zusammengefasst

Die Software-Entwicklung besteht aus 7 Schritten:

  • Aus der Anforderungsanalyse entsteht ein Lastenheft oder User-Stories.
  • Durch das UX & UI-Design entsteht ein klickbarer Design-Prototyp.
  • Die Architektur führt zu einem dokumentierten technischen Entwurf der Software.
  • Aus der Implementierung entsteht die funktionierende Software selbst.
  • Die Qualitätssicherung stellt sicher, dass Sie Software funktional und qualitativ ist.
  • Die Veröffentlichung macht die Software verfügbar und nutzbar.
  • Support & Wartung unterstützen dabei, dass die Software optimal funktioniert.

Welches Vorgehensmodell zur Softwareentwicklung ist am besten?

Es gibt verschiedene Herangehensweisen, Software wie Webanwendungen oder mobile Apps zu entwickeln. Grundlegend gibt es zwei verschiedene Lager, welche häufig diskutiert werden:

  • Plangetriebene Software-Entwicklung: Diese Methode basiert auf einem Plan, der die Anforderungen bereits vor Entwicklungsbeginn festlegt. Durch das Festsetzen der Anforderungen können auch die Entwicklungskosten und das Fertigstellungsdatum der Software garantiert werden.
  • Agile Software-Entwicklung: Bei dieser Methode werden die Anforderungen nicht vor Entwicklungsbeginn, sondern in regelmäßigen und kurzen Abständen mit dem Kunden abgestimmt. Dadurch kann flexibel auf Änderungswünsche eingegangen werden, das Budget und die Zeit sind dabei variabel.

Bei der Auswahl des richtigen Vorgehensmodells wird meist geprüft, ob die dahinter stehende Aufgabe kompliziert oder komplex ist. Eine komplizierte Aufgabe kann mit Wissen planbar gelöst werden und eignet sich daher typischerweise für die plangetriebene Software-Entwicklung. Eine komplexe Aufgabe besteht aus vielen verschiedenen Zusammenhängen, die miteinander verbunden sind. Folglich ist die Aufgabe nicht gut planbar und eignet sich eher für die agile Software-Entwicklung.

Welches Vorgehensmodell jedoch am besten zu Ihrer Software-Entwicklung passt, lässt sich immer nur individuell entscheiden. Für den weiteren Verlauf des Beitrags werden wir die Prozessschritte beider Vorgehensmodelle aufgreifen, auch wenn dabei bedacht werden muss, dass diese in der plangetriebenen Entwicklung einmalig und in der agilen Entwicklung mehrmals durchgeführt werden. Der Ablauf ist etwas anders, das Ergebnis jedoch das gleiche, nämlich eine funktionierende Software.

Schritt 1: Anforderungsanalyse

Einer der ersten Aufgaben in Software-Projekten ist die Analyse der Anforderungen. Hierbei finden Sie, entweder selbst oder gemeinsam mit Ihrer Software-Agentur, heraus, welche Funktionalitäten Ihre Software bieten soll. Dabei werden zwei Arten von Anforderungstypen unterschieden:

  • Funktionale Anforderungen beschreiben, was die Software genau können muss. Ein Beispiel dafür könnte so aussehen: Die Anwendung soll die Möglichkeit bieten, alle Strompreise einer bestimmten Postleitzahl zu kalkulieren und darzustellen.
  • Nicht-funktionale Anforderungen beschreiben, wie schnell, sicher, zuverlässig, skalierbar oder erweiterbar die Software sein soll. Ein Beispiel dafür könnte so lauten: Die Ergebnisse des Strompreises sollen innerhalb von 1,5 Sekunden kalkuliert werden und müssen tagesaktuell sein.

Das Resultat der Anforderungsanalyse ist bei plangetriebenen Modellen das Lastenheft, welches eine Auflistung aller Anforderungen an Ihre Software ist. Bei agilen Modellen sind es User-Stories, die fortwährend erarbeitet und dokumentiert werden.

Schritt 2: UX & UI-Design

Im nächsten Schritt wird das Design erarbeitet. Jede Software hat andere Anforderungen an das Design. Eine mobile App, welche Ihren Kunden zur Verfügung gestellt wird, hat höhere Erwartungen an das Design, als eine interne Webanwendung, die ausschließlich von Ihren Mitarbeitern genutzt wird. Dementsprechend ist dieser Schritt mal größer und mal kleiner.

Grundlegend gibt es auch hier zwei Unterscheidungen:

  • Das UX-Design (= User Experience Design) hat das Ziel, dem Benutzer ein positives Nutzungserlebnis zu bieten.
  • Das UI-Design (= User Interface Design) stellt dafür die notwendige visuelle Gestaltung bereit.

Da die Gestaltung oftmals hohe Relevanz hat, werden Sie in dieser Phase regelmäßig mit einbezogen. Wichtig ist es, Änderungswünsche früh mit Ihrer Software-Agentur zu teilen, damit diese berücksichtigt werden können.

Das Resultat dieser Phase sind klickbare Design-Prototypen, die Ihnen einen Eindruck geben, wie die Webanwendung oder mobile App später einmal aussehen und sich anfühlen wird. Diese werden in der Regel in Design-Tools wie Figma oder Adobe XD bereitgestellt.

Schritt 3: Architektur

Bei diesem Schritt geht es darum, aus den Anforderungen eine modulare, skalierbare, erweiterbare und testbare Architektur zu entwerfen. All dies sind Eigenschaften, die dazu führen, dass Ihre Software später technisch erfolgreich ist und bleibt.

Die Architektur plant alle Module, Komponenten und Schnittstellen der Software. Aus individuell abgestimmten Anforderungen werden meist auch individuelle Software-Module. Oftmals gibt es für bereits bekannte Probleme sogenannte Entwurfsmuster, welche die Planung erleichtern.

Bei sich häufig wiederholenden Anforderungen wird gerne auch auf Standardsoftware zurückgegriffen. Dies ist zum Beispiel der Fall, wenn die Verwaltung von Inhalten gewünscht ist. Statt eine eigene Lösung zu entwickeln, greifen Agenturen dann auf ein Content-Management-System (CMS) zurück, um Kosten und Zeit zu sparen. Ähnliche Herangehensweisen finden sich in vielen Bereichen, unter anderem auch bei CRM- oder Bezahlsystemen.

Das Resultat dieses Schritts ist ein dokumentierter Entwurf der Software-Architektur. Auch wird an dieser Stelle die Entscheidung getroffen, ob die Software in der Cloud oder auf eigenen Servern betrieben wird.

Schritt 4: Implementierung

In diesem Schritt geht es auch endlich an den wesentlichen Teil, der Implementierung Ihrer Software. Hierbei werden die Anforderungen in Code umgewandelt. Die Entwicklung teilt sich in drei Bereiche auf:

  • Die Infrastruktur besteht aus Servern, Datenbanken und externen Diensten wie zum Beispiel E-Mail-Servern oder sonstigen Cloud-Diensten.
  • Das Backend ist für die Verarbeitung von Daten, der Geschäftslogik und der Kommunikation mit der Datenbank sowie allen weiteren Schnittstellen verantwortlich.
  • Das Frontend ist der visuelle Teil der Anwendung, der in Form einer Webanwendung oder einer mobilen App ausgespielt wird. Im Hintergrund, nutzt das Frontend die Schnittstellen des Backends.

Je nach Vorgehensmodell und Projektgröße gibt es hierbei ein- oder mehrere Feedbackschleifen. Das Resultat dieses Schritts ist eine funktionierende Software, die jedoch noch nicht veröffentlicht ist.

Schritt 5: Qualitätssicherung

Der Prozessschritt der Qualitätssicherung ist ebenfalls ein essenzieller Bestandteil der Software-Entwicklung. Dieser kann, je nach Vorgehensmodell, teilweise vollständig in die anderen Schritte integriert werden oder in einem separaten Schritt durchgeführt werden. Die Qualitätssicherung umfasst vor allem die folgenden Aufgaben:

  • Aufsetzen von automatisierten Software-Tests wie Unit-Tests, Integrationstests und End-to-End-Tests, um die Funktionalität der Software zu prüfen.
  • Durchführen von Performance-Tests wie Load-Tests und Stress-Tests, um die Skalierbarkeit der Software zu gewährleisten.
  • Prüfung und Dokumentation der Sicherheit, um den Sicherheitsstandards zu entsprechen und Sicherheitslücken zu vermeiden.
  • Erstellung einer Anwenderdokumentation, um die Bedienung der Software zu erleichtern.

Die Qualitätssicherung stellt sicher, dass die Software den funktionalen und nicht-funktionalen Anforderungen entspricht und demnach die notwendige Qualität aufweist.

Schritt 6: Veröffentlichung

Nun haben Sie eine fertige und auf Herz und Nieren geprüfte Software, welche nun veröffentlicht wird. Je nachdem, ob Sie die Infrastruktur selbst betreiben oder auf Cloud-Dienste zurückgreifen, muss das Backend dort bereitgestellt werden. Beim Frontend hingegeben gibt es zwei Unterscheidungen:

  • Eine mobile App wird in den jeweiligen Stores (App-Store, Play Store) veröffentlicht. Da die App von Apple oder Google geprüft wird, kann dieser Schritt innerhalb weniger Tage fertig sein, aber im schlimmsten Fall auch bis mal mehreren Wochen andauern.
  • Eine Webanwendung wird in der eigenen Infrastruktur bereitgestellt und benötigt keine Prüfung von Dritten. Im Regelfall benötigen Sie eine Domain, wenn Ihre Anwendung im Netz verfügbar sein soll. Diese wird über den Domain Name System (DNS) mit Ihrer Infrastruktur verbunden.

Letzte Prüfungen und Tests werden durchgeführt, um die Veröffentlichung abzurunden. Optional werden Anwender der Software geschult, um den Einstieg zu erleichtern.

Schritt 7: Support & Wartung

Selbst die ausgefeilteste Software wird nicht ohne den Schritt Support und Wartung auskommen. Dabei geht es darum, die Software optimal am Laufen zu halten und Probleme zu lösen.

Der Support hat die Aufgabe, bei Fragen oder Problemen im Zusammenhang mit der Software zu unterstützen.

Das Ziel der Wartung ist es, die Sicherheit und Performance durch Upgrades auf einem hohen Niveau zu halten. Außerdem ist ein weiteres Ziel, gemeldete Fehler zu identifizieren und Patches einzuspielen, um diese zu beseitigen.

Fragen? Fragen!

Haben Sie noch Fragen zum Beitrag? Oder fehlen Ihnen wichtige Informationen? Melden Sie sich gerne bei uns! Wir freuen uns immer auf Feedback und möchten unseren Beitrag so informativ wie möglich gestalten.

Wir sind Dakitec: eine junge, agile Software-Agentur, die maßgeschneiderte Webanwendungen und Apps entwickelt. Als Ihr technologischer Sparringspartner übersetzen wir Geschäftsprozesse in exzellente IT-Lösungen. Unser Versprechen: heute die Software für Ihre Geschäftsziele von morgen entwickeln.