Einleitung
Der Übersichtlichkeit halber beschreiben wir den Prozess an dieser Stelle als eine Reihe aufeinanderfolgender Schritte, auch wenn die agile Methodik vorsieht, dass diese Schritte im Entwicklungsprozess in mehreren Iterationen wiederholt werden und die Reihenfolge bei Bedarf geändert werden kann.
Letzteres kann sowohl das gesamte Projekt als auch einzelne Module oder Funktionen betreffen.
Üblicherweise – aber nicht notwendigerweise – erfolgen die Schritte in der nachfolgend aufgeführten Reihenfolge. Diese wird vom technischen Projektmanager, Softwarearchitekten oder Teamleiter festgelegt, der für die Ausarbeitung, Überwachung und effiziente Umsetzung der Projektentwicklungsphasen und der entsprechenden Geschäftsanforderungen verantwortlich ist.
1. Planung
In dieser Phase werden die geschäftlichen Voraussetzungen analysiert.
Durch Meetings mit Vorgesetzten, Partnern und Kunden werden beispielsweise die folgenden Voraussetzungen besprochen und festgelegt:
- Wer wird die Softwareanwendung nutzen?
- Auf welche Weise soll die Softwareanwendung genutzt werden?
- Welche Informationen wird die Software verarbeiten?
All diese generellen Fragen werden in dieser Phase beantwortet.
Anschließend werden die Anforderungen in einem Dokument festgehalten, das in der nächsten Phase als Richtschnur dient. Üblicherweise umfasst es die folgenden Elemente:
- Funktionale Anforderungen
- Unternehmensbedingte Anforderungen
- Kundenanforderungen
- Nutzeranforderungen
- Unternehmensdesigndokument(e)
- Geschäftsbedingungen und weitere Absprachen
2. Anforderungsanalyse
Die Anforderungsanalyse wird von den leitenden Mitgliedern des Softwareentwicklungsteams (Systemarchitekten und Analysten) gemeinsam mit Marketing- und Branchenexperten durchgeführt. In diesem kritischen Projektabschnitt müssen die Leiter des Entwicklungsteams die Grundzüge der zu entwickelnden Software, die Einzelheiten des Geschäftsszenarios und die potentielle Positionierung der Software gegenüber Konkurrenzprodukten (sofern vorhanden) überblicken.
An diesem Punkt werden auch mögliche Risiken bei der Entwicklung identifiziert und eine Baseline für die Qualitätssicherungsmethoden festgelegt.
Am Ende der Analysephase werden die technischen Lösungen festgelegt, die mit minimalem Risiko zum Erfolg des Projekts führen.
3. Design
Nach der Anforderungsanalyse notiert der Projektleiter die getroffenen Entscheidungen und entwirft das sogenannte Software Requirement Specification-Dokument (SRS). Das SRS dient den Softwarearchitekten als Leitfaden, um für die angedachte Software die höchste Qualität zu sichern.
Der Softwarearchitekt bzw. die Softwarearchitekten erarbeiten die System Design Specification (SDS), ein Dokument, das auch als Design Document Specification (DDS) bezeichnet wird. Idealerweise wird die SDS von allen wichtigen Stakeholdern des Projekts aus verschiedenen Perspektiven überprüft, beispielsweise mit Blick auf Risikobewertung, Robustheit des Produkts, Modularität des Designs, Budget und Zeitvorgaben. Anschließend wird das beste Designmodell für das Produkt besprochen und ausgewählt.
Mit dem Softwaredesign werden die architektonischen Module des Produkts sowie Datenfluss- und Kommunikationsdiagramme innerhalb des Produkts klar dargelegt, genau wie mögliche relevante Drittanbieterintegrationen.
4. Implementierung
In dieser Phase wird auf Basis der vorigen Schritte die Software entwickelt. Als Erstes werden grundlegende Funktionen implementiert. Die Analysten gehen immer wieder zu den Anforderungs- und Design-Phasen zurück, um den Ist-Stand mit weiteren Anforderungen und Analysen abzugleichen und anhand dieser in den folgenden Iterationen weniger wichtige Funktionen und allgemeine Verbesserungen zu implementieren.
Wie komplex diese Phase ist, hängt stark vom Ergebnis der beiden vorangegangenen Phasen ab. Je besser SRS und SDS sind, desto einfacher ist es für die Softwareentwickler, die erforderlichen Module zu entwickeln. Es ist kein Geheimnis, dass die Qualität der fertigen Software leiden kann, wenn für die Entwicklung der ersten Prototypen und Softwareversionen nicht genügend Zeit zur Verfügung steht, weil diese innerhalb eines kurzen Zeitraums benötigt werden. Gleichzeitig hängt die Qualität auch stark von den analytischen Fähigkeiten aller am Entwicklungsprozess Beteiligten ab, genau wie davon, ob SRS und SDS gut vorbereitet wurden.
Je mehr Erfahrung und Know-how die Analysten, Architekten und Entwickler haben, desto weniger Zeit und Dokumentation werden in der Designphase benötigt.
5. Tests und Integration
Die Bezeichnung „Testphase“ ist beinahe etwas irreführend, denn in der Testphase gefundene Fehler in der Software führen immer wieder in die Entwicklungsphase und dann zyklusweise in die Testphase zurück, bis die Software die erforderliche Qualität erreicht hat. In der Regel besteht die Testphase aus zwei Teilen:
- Automatisierte Modul- und Funktionstests
- Abnahmeprüfungen durch Softwaretester
6. Instandhaltung
In dieser Phase wird die Software als Alpha- oder Beta-Version oder als stabile Version veröffentlicht und erstes Feedback wird erhalten. Die Analyse dieses Feedbacks kann zu zweiten, dritten oder vierten Iterationen des Softwareentwicklungszyklus führen. Dies hat zur Folge, dass der Prozess erneut mit den Phasen 1 bis 5 durchgeführt wird, wobei alle in der veröffentlichten Software gefundenen Probleme ausgemerzt werden.
Der gesamte Softwareentwicklungsprozess kann auch über mehrere Iterationen geplant werden, besonders beim Einsatz agiler Methoden, die hauptsächlich darauf abzielen, so früh wie möglich ein funktionierendes Produkt zu veröffentlichen und zusätzliche Funktionen später zu implementieren.