Apple hat neulich mit dem iPhone 4S ein neues iPhone präsentiert, das von der Fachwelt zerrissen wurde. Im Gegensatz dazu ist das Smartphone jedoch von den Konsumenten sehr gut aufgenommen worden. Fragt sich, welche Rückschlüsse aus dieser Fehleinschätzung abgeleitet werden können.
Gerade heute war die übliche Frage mal wieder ein Thema, die da lautet „Was sollen Anforderungen, Spezifikationen, und Design-Dokumente leisten, und wer liefert sie?“. Heute will ich kurz auf die Rolle von Kundenwünschen, und auf die Rolle der Entwicklungsabteilung und damit auf das Thema „Spezifikationen“ eingehen.
Zum iPhone 4S-Launch habe ich im →Handelsblatt – MorningBriefing ein interessantes Zitat gefunden. Daraus geht hervor, daß letztendlich die Binsenweisheit doch gilt – die Kunden müssen ein Produkt mögen, und nicht die Analysten:
„Apple hat all seine Kritiker widerlegt. Der Konzern zeigt mit seinem iPhone 4S, das Sprache erkennt und selber spricht, worauf es wirklich ankommt: Die Kunden, nicht die Gemeinschaft der professionellen Technologie-Experten müssen ein Produkt mögen. Unsere Experten spüren in ihrer heutigen Geschichte dem Kundengeschmack nach – und dem eigenen Fehlurteil der vergangenen Wochen.“
In einem Entwicklungsprojekt spielen die sogenannten Requirements die Rolle der Kunden. Requirements beschreiben und quantifizieren die Marktprobleme, und stellen damit dar, welche Bedürfnisse die Kunden haben, und wie diese aussehen sollen. Im folgenden Kapitel geht es um die Frage wie Requirements umgesetzt werden, und wie daraus Spezifikationen entstehen.
Requirements alleine reichen nicht. Bevor eine Entwicklung stattfinden kann, ist es erforderlich die Requirements in eine funktionale Spezifikation umzusetzen. Diese Spezifikation hat die Aufgabe, genau zu beschreiben, wie die Anforderungen abgedeckt werden sollen. Sie behandelt damit das Lösungsdesign aus Kundensicht.
Um den Schritt gehen zu können, die Requirements in eine Spezifikation zu überführen, ist es oft erforderlich, die Anforderungen näher zu klären. Dies liegt daran, daß die befragten Kunden ja die Lösung bereits kennen müßten, während sie ihre Anforderungen formulieren.
In diesem Schritt ist es daher auch wichtig darauf zu achten, daß man Requirements auf Herz und Nieren prüft. Anforderungen sind erfahrungsgemäß oft inkomplett, und sie können auch Anforderungen beinhalten, die sich so wie gefordert nicht umsetzen lassen. Diese Probleme sollte man erkennen, bevor eine Entwicklung überhaupt beginnt.
Nachdem bekannt ist, was ein Produkt aus Kundensicht leisten soll, muss man dem die technische Ausführung gegenüberzustellen, um zum Produkt zu kommen. Eine technische Spezifikation (manchmal auch „Design“ genannt) behandelt die Frage, wie die funktionelle Spezifikation in eine konkrete Entwicklung umgesetzt wird, und in welcher Technologie. In diesem Schritt sollten die Kundenanforderungen bereits genau geprüft und verstanden worden sein. Daher stehen hier eher die Umsetzungsaspekte im Vordergrund der Betrachtung.
Requirements beschreiben, was der Markt genau will und erwartet. Fehlerhafte Requirements können demnach einen großen Einfluss auf die Projektkosten haben.
Im folgenden gehe ich auf einige Fehlerquellen ein.
Wenn man die Anforderungen kennt, kann man daraus Spezifikationen ableiten. Eine Spezifikation ist ein umfassender Katalog vertraglich vereinbarter Leistungen und Qualitäten, die die Software liefern muss. Da dieser Katalog alle an der Leistungserstellung beteiligten Faktoren behandeln muss, ist es wichtig, daß man besondere Sorgfalt bei der Erstellung walten läßt, und, daß man regelmäßig die Spezifikation mit den Anforderungen abgleicht, oder indem man Zwischenstände mit den Leuten bespricht von denen die Anforderungen stammen.
Normalerweise erstellt die Gruppe die Spezifikation, die am besten weiss, wie das Ergebnis aussehen soll. Ein Problem hierbei: Oft sind die gewünschte Ergebnisse grundsätzlich bekannt. Es herrscht jedoch manchmal Unklarheit über die Einzelheiten oder Spezialanforderungen lassen sich nicht zweifelhaft klären (unklare Requirements). Darum sind häufige und detaillierte Absprache teamintern, und mit dem Geschäftspartner unerlässlich. Wenn solche Zwischenreviews unterbleiben, sind oft Fehler die Folge.
Während Anforderungen den Nutzer im Blick haben, d.h klären, was erwartet wird, definiert man in der Spezifikation das „Wie“ in einer Tiefe, die die Umsetzung erlaubt. Dabei entstehen normalerweise mehrere Teilspezifikationen. Oft sitzen hier auch mehrere Fakultäten am Tisch (Entwicklung, Design, Projektmanagement, Architekten,…). Eine weiter Fehlerquelle ist, wenn sich hierbei Koordinierungsfehler einschleichen, oder wenn man vergisst, die Arbeitsergebnisse unabhängig zu überprüfen/ im Gesamtzusammenhang zu Reviewen.
Einerseits muss man die Funktionalität und den Aufbau des Produkts spezifizieren, auf der anderen Seite benötigt man eine Beschreibung des User Interface, oder auch ein Testkonzept. Oft entstehen Fehler dadurch, daß man hier zu theoretisch bleibt, oder Teile vergißt.
Eine Möglichkeit, die Theorielastigkeit zu vermeiden ist, daß man Mockups oder Wireframes benutzt, um so dann schneller zu verstehen, wie die Umsetzungsideen funktionieren. Solche Mockups kann man dann z.B. mit Nutzern testen, um so zu verstehen, ob man die Anforderungen richtig verstanden hat. Unterlassene Tests führen gerne zu Fehlern.
Dabei sollten UI Spezifikationen möglichst früh entstehen, bzw eine Fehlermöglichkeit ist, daß die Details bereits feststehen, bevor man richtig weiß, wie man zu einem einfachen UI kommt. Fehler entstehen gerne dadurch, daß nicht das UI die Architektur festlegt, sondern umgekehrt.
Neulich habe ich über das Thema „lebende Spezifikation“ geschrieben. Dieses Dokument wird zwischen den Schritten „Requirements“ und „Spezifikation“ verwendet.
Während eine Spezifikation normalerweise in Form eines Dokuments geschrieben wird, besteht eine lebende Spezifikation eher aus einer Art Datenbank, o.ä. in der konkrete Beispiele abgelegt werden, welche die Lösung behandeln.
Im Internet finden Sie weiterführende Artikel:
In meinen älteren Artikeln finden Sie weiterführende Informationen zum heutigen Thema:
Das Original dieses Artikels ist auf →Der Produktmanager erschienen (©Andreas Rudolph). Regelmäßige Artikel gibt es über die (→Mailingliste), oder indem Sie →mir auf Twitter folgen. In der Online Version finden Sie hier die versprochenen weiterführenden Links: