Persona-driven User Stories

Die Persona-Methode ist im nutzerzentrierten Gestaltungsprozess durchaus bekannt. Stellvertretend für echte Anwender werden Produkte für diese Personas entwickelt und man fragt sich immer, wie passt das Produkt für diese Persona. Da sie für eine ganze Zielgruppe steht, deckt man also direkt eine größere Gruppe von echten Nutzern ab. Der Vorteil der Personas ist, anstelle von „dem Anwender“ zu reden, fokussiert man sich auf einen Pseudo-Anwender. Die Schwierigkeit liegt schließlich darin, dass fehlende Eigenschaften dieses „Anwender“ in unseren Köpfen unterschiedliche gefüllt werden und so reden wir in einem Projekt nicht vom gleichen „Anwender“ sondern jeder von seinem ganz eigenen Bild eines möglichen Anwenders. Weiterlesen Persona-driven User Stories

Formulierung der UX-Ziele

Sich Ziele zu setzen kann helfen den richtigen Weg zu gehen und sich immer weiter zu verbessern. So oder so ähnlich ist in der Regel der Hintergedanke, wenn man sich Ziele setzt, auch wenn man wegen der Agilität eines modernen Softwareprojekts klar ist, dass man am Ende ganz wo anders ankommen kann. Gerade bei Softwareprodukten sind Ziele als Vorgaben gerne das Maß aller Dinge, besonders im Bereich der Auftragsentwicklung. Also werden funktionale und nicht-funktionale Eigenschaften des abzuliefernden Produkts vorher definiert und als Ziele festgehalten. In Bezug auf die User Experience des zu entwickelnden Produkts erscheint dies jedoch besonders schwierig. Wie können wir UX-Ziele, also Anforderungen an die resultierende User Experience festlegen ohne uns auf ein Bauchgefühl oder eine Meinung zu verlassen? Weiterlesen Formulierung der UX-Ziele

Folien zu meinem Vortrag beim WUD in Siegen

Hier sind die Folien zu meinem Vortrag “UX in der agilen Produktplanung” vom World Usability Day in Siegen. Mir ging es darum zu zeigen, wie man UX als summativen Effekt aus unzähligen Einzelfaktoren in den agilen Planungsprozess integrieren kann. So kann gezielt an Produkten mit positiver User Experience entwickelt werden, also ohne das reine Bauchgefühl bei der Priorisierung. Weiterlesen Folien zu meinem Vortrag beim WUD in Siegen

Folien zum Vortrag „Kanban und UX“

Die Folien zu unserem Vortrag „Kanban und UX“ sind nun online. Gemeinsam mit Eva-Maria SchönJan Uhlenbrok und Jörg Thomaschewski stellte ich Möglichkeiten zur Integration von nutzerzentrierten Arbeitsprozessen in Kanban vor. Des Weiteren haben wir Artefakte vorgeschlagen, die eingesetzt werden sollten, um die Nutzerzentrierung zu verbessern. Weiterlesen Folien zum Vortrag „Kanban und UX“

Folien zu „Intellektuelles Kapital im Dienste der UX“

Gestern habe ich einen Vortrag am Institut für Wirtschaftsinformatik der Jade HS zum Thema „Intellektuelles Kapital im Dienste der User Experience“ gehalten, dessen Folien ich soeben bei Slideshare hoch geladen habe.
Nachdem ich einiges an Fahrzeit angesammelt hatte (Köln und Wilhelmshaven sind suboptimal durch die Bahn verbunden), möchte ich mich an dieser Stelle noch einmal für die sehr nette Betreuung vor Ort bedanken! Ich hab mich sehr wohl gefühlt.

Vortrag an der Jade HS

Am 18. April halte ich einen Vortrag am Institut für Wirtschaftsinformatik der Jade HS zum Thema „Intellektuelles Kapital im Dienste der User Experience“. In diesem Vortrag möchte ich mich der Frage stellen, wie Fähigkeiten und Wissen von Mitarbeitern und Beziehungen zu anderen Unternehmen genutzt werden können, um Produkte von besonderer Güte und einem herausragenden Nutzungserlebnis zu schaffen. Ebenso werde ich auf Prozesse und die daraus resultierenden Strukturen eingehen. Die Folien stelle ich anschließend natürlich wieder online. Ich freue mich auf den Norden und hoffe, dass das Wetter bis dahin nicht mehr so frostig ist.

IA Konferenz 2013

Am 3. und 4. Mai findet in der Berlin-Brandenburgischen Akademie der Wissenschaften in Berlin die diesjährige IA Konferenz statt. Dieses Jahr steht sie unter dem Motte „Prozess. Dialog. Qualität.“ und bezieht sich auch auf agile Prozesse und konkrete Erfahrungen des agilen Alltags. Aus diesem Grund halte ich einen Vortrag zum Thema UX in der agilen Produktplanung, in dem ich Erfahrungen und Vorgehensweisen vorstellen werde, die UX bereits in sehr frühen Planungsphasen berücksichtigen. Ich möchte die Fragen beantworten, wie kann man die User Experience trotz ihrer Komplexität in der agilen Planung berücksichtigen kann, obwohl man unter Umständen noch in der Ideenfindung ist, und wie Ideen in geeigneter Form aufbereitet werden, um ein Product Backlog für einen nach Scrum organisierten Entwicklungsprozess aufzubauen.

Das Hotel und die Konferenz sind gebucht und ich freue mich schon sehr auf die Konferenz. Da ich zum ersten Mal dort hin fahre, weiß ich nicht genau was mich erwartet. Die Referentenliste lässt aber viel Gutes erhoffen. Vielleicht sieht man sich ja dort?

 

Nicht-funktionale Anforderungen als User Stories

Werden in einem nach Scrum organisierten Entwicklungsprozess die Anforderungen in Form von User Stories beschrieben, stehen diese für einzelne Features bzw. Aufgabenpakete mit Mehrwert für den User. Betrachtet man jedoch die ganze Palette von Anforderungen, die ein Anwender an sein Softwareprodukt stellt, so fällt auf, dass die nicht-funktionalen Anforderungen nicht als User Stories formuliert werden. Wie kann man aber eben diese wichtigen Anforderungen, die nicht 1-zu-1 auf Features runter gebrochen werden können, in die Anforderungsdokumentation in Form von User Stories in Scrum verorten?

Damit nicht-funktionale Anforderungen messbar umgesetzt werden können, müssen diese vorher in quantifizierbare Einheiten zerlegt werden. Zum Beispiel gibt es die nicht-funktionale Anforderung „Die Anwendung soll performant sein“, welche ohne weiteres nie auf Erfüllung geprüft werden kann. Die Beurteilung würde dann nicht anhand objektiver Kriterien sonder subjektiv erfolgen. Damit aber eine objektive Bewertung erfolgen kann, muss die noch sehr abstrakte Anforderung in quantifizierbare Teilanforderungen zerlegt werden. Dem entsprechend könnten aus der oben genannten Anforderung folgende Teilanforderungen hervorgehen:

  • Die Antwortzeit bei einer Datenabfrage soll auf dem Referenzsystemen in weniger als 200 ms erfolgen.
  • Auf Aktionen des Nutzers soll innerhalb von 200 ms auf dem Referenzsystemen eine Reaktion angezeigt werden.
  • Der Start der Anwendung soll auf den Referenzsystemen nicht länger als drei Sekunden dauern.

Diese beispielhaften und sicherlich nicht vollständigen Teilanforderungen verhalten sich zu der eigentlichen Anforderung genauso wie User Stories zu Epics. Während der Kunde  hauptsächlich eine performante Software möchte („Als Anwender möchte ich eine performante Anwendung haben, damit ich schnell und ohne Wartezeit meine Arbeiten erledigen kann.“), gilt es diese für die vertragliche Basis in messbare Eigenschaften zu zerlegen. Diese zerlegten Teilanforderungen müssen letztlich irgendwie in die Formulierung von User Stories einfließen. In der Definition of Done können die quantifizierbaren Teilanforderungen, sofern sie verallgemeinerbar sind (z.B. „Alle Datenabfragen müssen unter 300 ms ausgeführt werden“, „Alle Inhalte müssen semantisch ausgezeichnet sein“, etc.), aufgeführt werden. Ein großer Vorteil der User Stories liegt jedoch in der Diskussion zwischen Entwicklerteam und Product Owner. Daher erscheint es sinnvoll, dass diese Teilanforderungen in ähnlicher Art verfasst werden. Dies ermöglicht des Weiteren ein besseres Verständnis für den Mehrwert der Anforderung auf Nutzerseite durch die Begründung („damit ich schnell und ohne Wartezeit meine Arbeiten erledigen kann“). Da in der Regel die Fachexpertise über das technisch Machbare beim Entwicklerteam liegt, der Product Owner aber für den wirtschaftlichen Erfolg des Projekts (oder Produkts) verantwortlich ist, hilft die Diskussion ein, im Spannungsfeld zwischen Aufwand und Nutzen, optimales Erzeugnis zu schaffen. Neben der Machbarkeit im Verhältnis zum Aufwand können auch weitere Punkte, wie beispielsweise die Behandlung von Grenzfällen, geklärt werden. Die Diskussion ermöglicht dadurch eine Vervollständigung der Teilanforderungen, zumindest wenn ein offener Dialog geführt wird.

Eine User Story zur Abstimmung einer nicht-funktionalen Anforderung könnte wie folgt aussehen:

User Story

Als Anwender möchte ich eine performante Anwendung haben, damit ich schnell und ohne Wartezeit meine Arbeiten erledigen kann.

Akzeptanzkriterien

  • Die Antwortzeit bei einer Datenabfrage soll auf dem Referenzsystemen in weniger als 200 ms erfolgen.
  • Auf Aktionen des Nutzers soll innerhalb von 200 ms auf dem Referenzsystemen eine Reaktion angezeigt werden.
  • Der Start der Anwendung soll auf den Referenzsystemen nicht länger als drei Sekunden dauern.

Da diese Anforderungen jedoch bei vielen einzelnen User Stories integriert sein werden, ist der Aufwand für die Realisierung nicht einfach zu schätzen. Die Schätzung in Form von Story Points scheint schlichtweg nicht möglich, da diese User Stories immer erfüllt werden müssen und in die Schätzungen der User Stories für funktionale Anforderungen einfließen. Sind die nicht-funktionalen Anforderungen jedoch in dieser Form aufgeführt und besprochen, können sie als Anhang oder durch ihre Akzeptanzkriterien direkt zur Definition of Done hinzugefügt werden. Wird die Anzahl der nicht-funktionalen Anforderungen übersichtlich gehalten, können die User Stories mitsamt der Definition of Done ausgehangen werden. Natürlich empfiehlt es sich dann auch, wie bei der Definition of Done üblich, diese von Zeit zu Zeit zu überprüfen und auf die veränderten Gegebenheiten eines Projekts oder Produktumfelds hin zu aktualisieren.

Abschließend ist ein großer Vorteil von separaten User Stories für nicht-funktionale Anforderungen, dass sich die Anforderungen nicht mehr in den normalen User Stories verstecken, sondern an einer zentralen Stelle definiert sind. Dadurch werden sie nicht übersehen, zumindest nicht, wenn die Definition of Done regelmässig geprüft wird. Daher ein klares Ja für nicht-funktionale Anforderungen als User Stories!

User Stories ohne User

Schon seid geraumer Zeit werden vieler Orts User Stories verwendet, um die Anforderungen an ein Produkt mit der Perspektive des Anwenders zu beschreiben. Sie dienen unter Anderem dazu bei den Projektbeteiligten wie Projektleiter, Designern oder Entwicklern mehr Aufmerksamkeit auf den Anwender und den konkreten Mehrwert für diesen zu legen. Daneben gibt es jedoch auch Aufgaben, die dem Nutzer keinen direkten Mehrwert geben oder für die es keine Motivation von Seiten des Nutzers gibt. Ein größeres Refactoring macht manchmal durchaus Sinn, damit die Wartbarkeit der Anwendung gesteigert wird. Dem Nutzer bringt sie jedoch keinen Mehrwert. User Stories in der Form von „Als Anwender möchte ich, dass die Softwarekomponente FileLoader refaktoriert wird, damit die Anwendung besser wartbar ist.“ sind schlichtweg gelogen. Der Anwender will das nicht, denn er kennt die Komponente nicht einmal. Auch die Bereitstellung von Funktionalitäten, die erst die Realisierung normaler User Stories ermöglichen, müssen möglich sein. Vielleicht ist die Refaktorierung notwendig um ein neues Feature überhaupt implementieren zu können. Wie aber kann man das Konzept der Story auch in diesen Situationen nutzen zu können?

Ein Hauptaspekt von User Stories ist, dass ein Mensch in einer Rolle eine Anforderung aus einer Motivation heraus mitbringt. Dies hat den Vorteil, dass, durch die zur User Story gehörende Diskussion, weitere Lösungen und Betrachtungsweisen gefunden werden können. Alle an der Diskussion Beteiligten können sich in die Rolle versetzen und versuchen den Mehrwert der Story nachzuvollziehen. Dies funktioniert auch, wenn es sich bei der Rolle nicht um einen User sondern um einen Entwickler handelt.

Beispiel 1: Als Entwickler möchte ich eine hohe Testabdeckung meines zu überarbeitenden Code haben, damit mir Fehler durch meine Weiterentwicklung früher auffallen.

In dem Beispiel 1 wird die Wartbarkeit gesteigert und damit ein strategischer Mehrwert der Anwendung erzeugt. Davon hat der Anwender nicht direkt etwas, auch wenn er langfristig eine stabilere Software bekommen dürfte.

Beispiel 2: Als Entwickler möchte ich die aktuelle Version von jQuery nutzen können, um von einer höheren Performance und wenigeren Bugs aus der alten Version profitieren zu können.

Bei Beispiel 2 wird eine Systemkomponente ausgetauscht, wodurch der technologische Stand aktualisiert wird. Dem Nutzer entspringt auch hier kein direkter Mehrwert, jedoch werden dadurch neue Entwicklungen möglich, von denen Nutzer anschließend Nutzen ziehen können.

Beispiel 3: Als Entwickler möchte ich auf eine Datenbankabstraktionsschicht zurückgreifen können, die die Datenbank soweit abstrahiert, dass ich mit verschiedenen Datenbanken arbeiten kann ohne mich um Anpassungen kümmern zu müssen.

Im letzten Beispiel wird vielleicht neben MySQL bald auch Oracle unterstützt; ein direkter Nutzen für den Anwender entsteht jedoch nicht unbedingt. Als Anwender einer Webanwendung würde ihm das wahrscheinlich nicht einmal auffallen.

Letztlich lassen sich die ganzen Rollen von Entwicklern zu Designer über Supporter bis hin zum Anwender zu der Menge der Stakeholder zusammen fassen. Dadurch sind alle vom Projekt oder Produkt Betroffenen abgedeckt. Es erscheint sinnvoll, das Konzept und Verständnis von User Stories zu Stakeholder Stories zu erweitern, wobei der Begriff Story wahrscheinlich schon ausreicht um genug Charakterisierung in diese Art der Anforderungsdokumentation zu bringen. Es geht also darum die Vorteile von User Stories auch für technische Aufgaben oder organisatorischen Aufwand zu verwenden.