Requirements-Engineering
Bei der Entwicklung eines Produktes lautet die zentrale Frage:
Wie komme ich vom Kundenwunsch zum Produkt?
Vor allem will man gerne wissen:
- Haben wir alle Anforderungen erfasst?
- ... und haben wir die Anforderungen auch richtig verstanden?
Denn diese Punkte bestimmen maßgeblich, wie erfolgreich das Produkt wird. Wichtig ist für uns die Gewinnung einer gemeinsamen Sicht mit allen am Produkt beteiligten Stakeholdern. Das heißt man sollte:
- Herausfinden, wer alles am Produkt beteiligt ist. Also Nutzer, Kunden, Firmen, Gesetzgeber, usw.
Nutzung von Use Cases und anderen Möglichkeiten (Lastenhefte, Systemarchäologie...) zur möglichst vollständigen Erfassung aller Anforderungen.
Anmerkung: Ein paar Anforderungen werden immer übersehen. Vor allem die sehr wichtigen Basisfaktoren (nach Kano) werden oft nicht kommuniziert, weil der Kunde diese für selbstverständlich hält.- Analyse der gefundenen Anforderungen
- Herstellen eines gemeinsamen Verständnisses zu den Anforderungen
Ganz Wichtig ist das Schaffen mächtiger Requirements
Also:
- Natürlichsprachliche Formulierungen können unvollständig sein!
- Aktiv statt passiv
- Substantivierte Verben vermeiden um Prozesse zu beschreiben! Vollverben nutzen!
- Komparativ (und Superlativ) im Vergleich zu was
- Generalisierungen sind gefährlich! Meistens gibt es Ausnahmen...
- Spezifizieren, wer macht was oder was genau
- Definieren des Verhalten bei Fehlern!
- Required Constraints: Nötige Randbedingungen angeben!
- Und last, but not least: Klare Aussagen!
Unserer Ansicht nach lassen sich die Vorteile von erfolgreichem Requirements-Engineering wie folgt darstellen:
- Nachvollziehbarkeit der Entwicklung => Traceability
- Kleine Schritte in der Entwicklung => Hohe Sicherheit, hohe Qualität => niedrige Fehlerquote
- Modularisierung vom Konzept => Wiederverwendung von Requirements.
- Einfache Risikobewertung der Entwicklung
- Planbare Projektdauer/ Budget

