Wie Sie beim Design einer neuen IT-Lösung am besten vorgehen: Definition des Funktionsumfangs, User-Interface, Architektur usw.
Wann braucht es ein IT-Lösungs-Design?
Immer dann, wenn Sie eine IT-Lösung erst entwickeln müssen, dann braucht es eine Design-Phase im IT-Projekt:
- Die Software bzw. IT-Lösung ist noch nicht am Markt vorhanden
- Die IT-Lösung wurde noch nirgendwo implementiert
Für bereits vorhandene IT-Lösungen wurde das Design bereits erledigt, womit nur die Details der Implementierung in Ihrem Unternehmen geklärt werden müssen. Das passiert in der Feinspezifikationsphase mit dem Lieferanten, welches ein Pflichtenheft als Ergebnis hat.
Wie läuft die Design-Phase ab?
Der Einsatz agiler Methoden hat sich für Entwicklungsprojekte bewährt, denn damit können Sie besser mit unkonkreten bzw. „beweglichen“ Zielen umgehen:
- Die Arbeit wird in Sprints (gleichbleibende Zeiträume von z.B. 2 Wochen) organisiert
- Nur für den jeweils nächsten Sprint werden Inhalt und Ziele konkretisiert
- Das Sprint-Team ist möglichst multidisziplinär zusammengesetzt (Product Owner, Anwender, Entwickler, Analytiker, Tester, Teamleader) und ist Vollzeit für das Entwicklungsprojekt tätig
- Jeder Sprint muss ein brauchbares Ergebnis abliefern, womit theoretisch die Arbeit nach jedem Sprint vom Auftraggeber abgebrochen werden könnte.
Die agilen Methoden Design Sprint und Scrum eignen sich für Entwicklungsprojekte bestens.
Vollständig agile Entwicklung
Bei vollständig agilen Projekten passiert Design und Entwicklung der Lösung durch das gleiche Team:
- In den ersten Sprints wird das grundlegende Design entwickelt und später parallel zur Programmierung weiterentwickelt
- Das Entwicklungsteam muss alle Disziplinen für Design und Programmierung abdecken
- Ggf. ist eine Aufteilung der IT-Lösung notwendig, um ein Entwicklungsteam nicht zu groß werden zu lassen (max. 9 Mitglieder, siehe Projekt-Team)
- Alle an der Entwicklung Beteiligen sind von Anfang bis Ende involviert, womit ein besseres Produkt entsteht
- Diese Vorgangsweise ist etwas weniger zeiteffizient, weil immer alle Teammitglieder eingebunden sind. Anderseits werden Fehler und Missverständnisse schneller entdeckt, was wiederum Zeit spart.
Hybride Vorgangsweise
Hier werden sequentielle und agile Vorgehensweise vermischt:
- Das Design und die Programmierung erfolgen durch verschiedene Teams und hintereinander in jeder Entwicklungsphase.
- Im Design-Team finden sich möglichst viele Vertreter des Auftraggebers (Anwender, IT, IT-Security- und Datenschutz-Beauftragte etc.) sowie zumindest eine Person, welche auch dem Programmier-Team angehört.
- Die Entwicklung/Programmierung kann an Softwareentwicklungsunternehmen und ggf. mehrere Entwicklungsteams vergeben werden.
- Möglichst das ganze Design-Team sollte bei den Ergebnisdemonstrationen der Programmier-Sprints teilnehmen, damit Missverständnisse aufgedeckt werden können.
- Diese Vorgangsweise ermöglicht kleinere Teams und reduziert den Zeitaufwand für die eingebundenen Personen.
- Nachteilig ist, dass Klärungen zum Design in der Programmierphase umständlicher sind, da das Design-Team involviert werden muss.
Agile Prinzipien
Folgende Prinzipien sind von Scrum abgeleitet und sollten in agilen und hybriden Projekten beherzigt werden:
- Teilprodukte schaffen: die komplette Lösung in Teilprodukte zerlegen
- Jedes Teilprodukt ist brauchbar: jede Iteration (jeder Sprint) liefert für die Anwender brauchbare Ergebnisse.
- Die Teilprodukte sind erweiterbar: passende Technologien einsetzen um die Teilprodukte mit wenig Overhead erweitert zu können.
- Kurze Entwicklungszyklen: Eine Iteration (ein Zyklus zur Erstellung eines Teilprodukts) sollte max. 1 Monat dauern.
- Veränderung begrüßen: Änderung und Feedback annehmen, die Realität akzeptieren.
- Disziplin: Genaue Planung der Iterationen, keine Änderungen des Planes während der Abarbeitung der Iteration
- Eigenverantwortung: Mitarbeiter suchen sich einen neuen Task aus dem aktuellen Iteration-Scope, wenn sie mit einem anderen fertig sind. Jeder Mitarbeiter hilft mit, das Ziel der Iteration zu erreichen.
- Direkte Zusammenarbeit und Kommunikation: Anwender sind direkt am Entwicklungsprozess beteiligt und Teil des Projekt-Teams. Entwickler sprechen direkt mit den Anwendern.
- Nachhaltiger Projektfortschritt: das Projekt-Team soll dauerhaft gute Ergebnisse liefern, womit Dauer-Überlastung vermieden werden muss.
- Einfachheit bevorzugen: einfache Lösungen bevorzugen, komplizierte Anforderungen hinterfragen.
- Selbstorganisation des Teams: Das Team soll alle notwendigen Entscheidungen selbst treffen können.
- Kontinuierliche Verbesserung: In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.
Was muss in der Design-Phase definiert werden?
In der Design-Phase werden die wesentlichen Eckpunkte der IT-Lösung definiert, z.B.:
- Ziele und Zielgruppe
- Was soll mit der IT-Lösung erreicht werden?
- Was ist der Nutzen?
- Wer sind die Anwender?
- Funktionalität und Eigenschaften
- Anwendungsfälle
- Use Cases
- Storyboards
- Welche Funktionen muss die IT-Lösung bieten?
- Welche Metriken muss die IT-Lösung erfüllen?
- Anzahl der Benutzer (gleichzeitig, absolut)
- Mindest-Verfügbarkeit der IT-Lösung (max. Ausfallzeit)
- Zu verwaltende Datenmenge, Datenwachstum über die Zeit
- Reaktionsgeschwindigkeit und Performance
- User-Interface: Wie präsentiert sich die IT-Lösung gegenüber dem Nutzer und wie kann diese bedient werden?
- Grundlegendes UI-Design (Optik, durchgängige Prinzipien der Bedienung)UI-Struktur der IT-Lösung (Menüs)
- Bildschirm-Masken (Mockups)
- Abdeckung spezieller Anforderungen (z.B. Sehbehinderung, Behinderung in der Bedienung der Tastatur oder des Touchscreens)
- Zu erfüllende Standards und Normen
- Anwendungsfälle
- Architektur und Technologie
- Wie sieht der technologische Unterbau aus?
- Plattform, grundlegende Architektur
- Programmiersprachen, Frameworks
- Genutzte Dienste
- Hardware-Anforderungen
- Redundanz, Verfügbarkeitskonzept
- Datenverwaltung und Schnittstellen
- Datenstruktur
- Schnittstellen zu anderen Systemen
- Welche Maßnahmen für IT-Sicherheit und Datenschutz sind zu erfüllen?
- Zugriffsschutz
- Datenschutz (Verschlüsselung)
- Berechtigungskonzept, Mandantentrennung
- Datensparsamkeit (DSGVO)
- Unterstützung für Berichte, Datenauskünfte und Löschungen für persönliche Daten
- Wie sieht der technologische Unterbau aus?
- Betrieb, Support, Dokumentation
- Wie erfolgt der Betrieb der IT-Lösung?
- Überwachung der IT-Lösung (Monitoring)
- Administration
- Support-Konzept (Helpdesk; Update-Entwicklung, Auslieferung und Installation)
- Welche Dokumentation muss für die IT-Lösung erstellt werden?
- User Manual
- Administration Manual
- Anforderungsdokumentation
- Testdokumentation
- Dokumentation zur Erfüllung geforderter Normen und Richtlinien
- Wie erfolgt der Betrieb der IT-Lösung?