Effizientes Anforderungsmanagement für Benutzeroberflächen mit Microsoft Visual Studio 2013 Sketchflow und Application Lifecycle Management(ALM)

Mittwoch, 02. Juli 2014

Wer nicht weiß, was man braucht, wird niemals die beste Lösung finden. Um IT-Projekte in Time und Budget durchzuführen, muss man wissen, wohin die Reise gehen soll. Daher gewinnt seit mehreren Jahren das Anforderungsmanagement in Softwareentwicklungsprojekten immer mehr an Bedeutung. Anforderungsmanager in Projekten haben die Aufgabe, unklare, widersprüchliche, unvollständige und missverständlich dokumentierte Anforderungen strukturiert aufzuarbeiten und zu dokumentieren. Das Anforderungsmanagement bildet somit auch das Fundament von guter Software, die in Time und Budget entwickelt werden soll.

In verschiedenen Studien wurden die Notwendigkeit des Anforderungsmanagements und die Folgen von mangelndem oder schlechtem Anforderungsmanagement dargestellt. Im Rahmen des CHAOS Reports 2009 von der Standish Group wurde unter anderem gezeigt, dass viele Projekte an mangelndem Anforderungsmanagement scheitern. Die folgende Liste aus dem CHAOS Report listet die Top 10 der Gründe auf, die ein Projekt scheitern lassen können.

  1. Lack of User Input 12.8%
  2. Incomplete Requirements & Specifications 12.3%
  3. Changing Requirements & Specifications 11.8%
  4. Lack of Executive Support 7.5%
  5. Technology Incompetence 7.0%
  6. Lack of Resources 6.4%
  7. Unrealistic Expectations 5.9%
  8. Unclear Objectives 5.3%
  9. Unrealistic Time Frames 4.3%
  10. New Technology 3.7%
  11. Other 23.0%

Insbesondere bei der Entwicklung von Anwendungssoftware stehen Anforderungsmanager vor großen Herausforderungen. Sehr häufig werden die Endbenutzer bei der Anforderungsermittlung erst gar nicht gefragt oder sie haben Schwierigkeiten, ihre Anforderungen strukturiert zu formulieren. Dies liegt daran, dass sich diese sehr schnell in Anforderungsdetails verlieren, was nicht selten in einem Wunschkonzert endet. Daher entscheiden viele Auftraggeber oder Projektverantwortliche, die Anforderungsermittlung ohne den Endbenutzer durchzuführen. Dies ist jedoch ein großer Fehler, da die Projektverantwortlichen sehr häufig gar nicht die Prozessdetails kennen. Der Anforderungsmanager kann das vom Auftraggeber befürchtete Wunschkonzert verhindern, indem er die Anforderungen des Endbenutzers durch verschiedene Techniken strukturiert ermittelt und den Prozess der Anforderungsermittlung moderiert und dokumentiert. So hilft es zum Beispiel vielen Endbenutzern, ein „Bild vor Augen“ zu haben, mit dem sie unter anderem die Anforderungen für eine Benutzeroberfläche am jeweiligen Arbeitsprozess besprechen können.

Die ALM Funktionen von Microsoft bieten für dieses Problem zwei mögliche Lösungsansätze. Ein Weg zur Dokumentation der Kundenanforderungen für Benutzeroberflächen ist die Erstellung von Sketchflow Anwendungen mit VS. Die Storyboard-Funktionen mit Microsoft PowerPoint 2013 ermöglichen dies ebenfalls, jedoch auf eine andere Art und Weise. Dieser Artikel konzentriert sich im weiteren Verlauf auf die Arbeitsweise mit den Sketchflow-Funktionen in Visual Studio 2013 (VS).

Weitere Informationen zum Storyboarding mit PowerPoint 2013 werden auf den Webseiten von Microsoft und in verschiedenen Blogs beschrieben.

Abbildung 2: Sicherstellung des Anforderungsmanagements durch ALM mit TFS und VS
Abbildung 2: Sicherstellung des Anforderungsmanagements durch ALM mit TFS und VS

Kundenanforderungen ermitteln und abstimmen

Mit den Sketchflow-Funktionen kann der Anforderungsmanager die Anforderungen und Wünsche des Endbenutzers aufnehmen und grafisch darstellen. Bei Sketchflow-Projekten werden die Anforderungen an die Benutzeroberfläche in einer „gemalten“ Form dargestellt. Diese Darstellung zeigt zum einen, dass es sich nicht um eine fertige Anwendung handelt, und zum anderen das Ergebnis der Anforderungsermittlung und -aufnahme.

Benutzeroberfläche in einer „gemalten“ Form

Der Anforderungsmanager kann nach der Kundenabstimmung den Sketchflow sowohl selbst als auch gemeinsam mit dem Kunden erstellen und anpassen. So kann nicht nur ein Bild der Oberfläche mit den Sketch Flow Funktionen erstellt werden, sondern auch ganze Prozesse, wie z.B. ein Bestell- oder Buchungsprozess. Auf diese Weise kann sichergestellt werden, dass für den Arbeitsprozess notwendige Informationen nicht vergessen werden.

In der Realität existiert dabei aber in den meisten Fällen folgende erschwerende Situation:

  • Anforderungen werden von mehreren Personen geliefert
  • Es wird von mehreren Personen Feedback an den Anforderungsmanager zurück geliefert
  • Aus zeitlichen Gründen kann der Anforderungsmanager das Feedback nicht persönlich einholen
  • Die Einarbeitung des Feedbacks muss u.U. auch an andere Projektmitarbeiter delegiert werden

Die Sketchflow-Anwendung kann mehreren Personen parallel zur Prüfung und Abstimmung der Anforderungen zur Verfügung gestellt werden (ohne eine Lizenz für VS zu besitzen). Es wird eine eigene Umgebung beim Kompilieren der Sketchflow-Anwendung bereitgestellt. In dieser Umgebung kann der Feedbackgeber seine Kommentare sowohl grafisch als auch in Schrift an den Anforderungsmanager über eine Exportfunktion zurückliefern. Dieses Feedback kann dann in die Sketchflow-Projektumgebung importiert werden.

Arbeitspakete auf Basis von Kundenanforderungen erstellen

Die abgestimmten Anforderungen und das Kundenfeedback aus der Sketchflow-Anwendung können anschließend im TFS gezielt an Projektmitarbeiter als „Work Items“ weiter verteilt werden. Dafür muss das Sketchflow_Projekt zuvor im TFS bekannt gemacht werden. Das hat folgende Vorteile:

  • Alle weiteren Anpassungen an dem Sketchflow-Projekt werden historisiert. Das ist sinnvoll, da die Anforderungsaufnahme und das Feedback häufig in mehreren Iterationen erfolgt und mehrere Projektmitarbeiter mit dem Sketchflow-Projekt arbeiten.
  • Es kann jederzeit der Prozess und Inhalt der Anforderungsaufnahme nachverfolgt und, wenn notwendig, rückgängig gemacht werden.
  • Zusätzlich können die Work Items durch berechtigte Projektmitarbeiter mit weiteren zusätzlichen Informationen wie Beschreibungen, Bearbeitungsstatus, Priorität, Anhänge, Termin usw. gepflegt und verfolgt werden.
Abbildung 3: Eingabemaske für ein neues Work Item/Task
Abbildung 3: Eingabemaske für ein neues Work Item/Task

Projektplanung und Steuerung

Mit den Work Items haben Projektleiter oder Teamleiter die Möglichkeit, grafische Ansichten mit der Diagramm-Funktion zu erzeugen. Auf Basis ausgewählter Abfragekriterien können Projektleiter oder Teamleiter einen schnellen Überblick mit verschiedenen Diagrammansichten zum aktuellen Projektstatus ermitteln: Kreisdiagramm, Balkendiagramm, Säulendiagramm, Pivotdiagramm. Unabhängig davon, in welcher Projektphase sich das Projekt befindet, ist die Erstellung dieser Diagramme zu jedem Zeitpunkt möglich. Bei Bedarf können die Diagramme dem gesamten Projektteam bereitgestellt werden.

Aber was bedeutet das im Projekt für die Anforderungsabstimmung und welche Folgen hat es?

Einzelne Anforderungen mit dem Kunden sind noch nicht finalisiert, weil sie z.B. noch nicht in das Sketchflow-Projekt eingearbeitet wurden. Die Gründe dafür variieren von Krankheit bis hin zu Prioritätsverschiebungen. Die gesetzten Projektmeilensteine können im schlimmsten Fall nicht eingehalten werden, weil die Anforderungsabstimmung noch nicht abgeschlossen werden konnte. Somit muss der Projektmanager frühzeitig mit entsprechenden Maßnahmen reagieren. Bevor der Projekt- oder Teamleiter jeden Projektmitarbeiter einzeln befragt, kann er sich über die folgende Grafik einen ersten Überblick zum Status verschaffen und schon auf dieser Basis erste Entscheidungen treffen, z.B. durch die Verteilung von Aufgaben auf andere Mitarbeiter oder durch Terminverschiebungen.

Abbildung 4: Überblick zum Aufgabenstatus
Abbildung 4: Überblick zum Aufgabenstatus

Jede Bearbeitung an einer Aufgabe wird auch in den Diagrammen angezeigt. Insbesondere im Rahmen der Implementierungs- und Testphase eines Projektes ist eine Verschiebung von Aufgaben auf einen anderen Mitarbeiter oder Zeitpunkt nicht selten.

Hinweis: Sollten Aufgaben mit den Funktionen des Project Servers bearbeitet werden, so werden diese Änderungen auch in den TFS übernommen und bei den Diagrammen berücksichtigt.

Teamübergreifende transparente Softwareentwicklung und Monitoring

Für die Neu- oder Weiterentwicklung von Software werden nach Abschluss der Anforderungsabstimmung mit dem Kunden durch die Projektleitung Arbeitspakete erstellt. Die Arbeitspakete enthalten eine bis mehrere Aufgaben. Die einzelnen Aufgaben eines Arbeitspaketes werden verschiedenen Entwicklern im TFS zugeordnet.

Während des Entwicklungsprozesses kommt es auch zu einer Verschiebung der Prioritäten der zu bearbeitenden Aufgaben. Daher kann es passieren, dass der Entwickler eine Aufgabe nicht zu Ende bearbeiten kann. Durch solche Wechsel geht ein Teil seines gedanklichen Arbeitsfortschrittes verloren. Wenn er dann zu einem späteren Zeitpunkt die Bearbeitung der Aufgabe wieder aufnehmen möchte, fängt er häufig von vorne an, was zu zusätzlichem Aufwand führt. Mit den Suspend- und Resume-Funktionen ist das vermeidbar. Es können Arbeitsstände (Breakpoints), z.B. bei der Analyse eines fehlerhaften Programmcodes, an der Stelle wieder aufgenommen werden, an der man unterbrochen wurde.

Sehr häufig werden zur Sicherstellung der Softwarequalität auch Codereviews durchgeführt. Das ist oft notwendig, wenn eine Software z.B. ISO zertifiziert werden soll. Sobald der Entwickler seine Änderungen fertig gestellt hat, kann er von dem zuständigen Projektmitarbeiter das Review des bearbeiteten Programmcodes einfordern. Diese Review-Anfrage wird dann ebenfalls in der Team Explorer Übersicht des TFS angezeigt.

Vorteile:
  • Projektmonitoring durch Pflege der Arbeitsaufgaben im TFS
  • Speicherung von Arbeitsständen mit der Suspend und Resume Funktion
  • Konsequente Unterstützung bei Codereviews

TFS unterstützt den Entwicklungsprozess durch eine in VS integrierte Verwaltung der dabei erzeugten Code-Fragmente, um die abgenommenen Änderungen nachvollziehbar abzubilden, z.B. Merging von Sourcecode. Dadurch können Entwickler parallel an denselben Codedateien arbeiten und einzelne Entwicklungspfade zusammenführen.

Integriertes Testmanagement

Das Testen von Software ist eine der wichtigsten Aktivitäten bei der Softwareentwicklung. Um die Softwarequalität sicher zu stellen, muss daher entsprechend Zeit im Rahmen des Projektes investiert werden. Testen ist zeitaufwendig! Das wird in vielen Projekten unterschätzt. Aber auch mangelnde Planung und Transparenz in der Testphase haben zeitliche Engpässe zur Folge.

Der Testmanager 2013 des TFS liefert mit seinen Funktionen ein integriertes Tool zur strukturierten Planung, Durchführung und Monitoring der Testphase. So können die Anforderungen der Benutzeroberfläche, die zusammen mit dem Kunden über die Sketchflow Anwendung abgestimmt wurden, gezielt getestet und verfolgt werden.

Planung mit dem Testmanager

Mit dem Testmanager wird zunächst ein „Testplan“ angelegt. Darin erzeugt man „UserStories“ und verknüpft sie mit „Test Cases“. In einem Test Case werden dann die einzelnen Testschritte beschrieben. Im Rahmen des Testplanes können u.a. auch zu testende Funktionen zugeordnet werden, die bereits getestet wurden und erneut mit den neuen Funktionen getestet werden müssen (Regressionstests). Die Tests können sowohl automatisch als auch manuell durchgeführt werden.

Transparenz mit dem Testmanager

Während der Testphase interessieren den verantwortlichen Projekttestmanager zunächst der Teststatus und die damit verbundenen Probleme. Es ist immer eine große Herausforderung, die Testergebnisse inklusive der Testdetails schnell und übersichtlich einsehen zu können, da im Rahmen von Softwaretests eine große Anzahl von Testfällen durchgeführt wird. Häufig werden die Statusinformationen durch regelmäßige Besprechungen erfragt. Die Besprechungszeiten können mit den Testmanager-Funktionen verringert werden, indem über das Reportergebnis schnell zu den ausgeführten Tests und Ihren Details verlinkt wird. Eine solche Analyse spiegelt die in Konzeption und Planung investierte Zeit in vollem Umfang wider.

Abbildung 5: Analyse der Testergebnisse mit TFS Testmanager 2013
Abbildung 5: Analyse der Testergebnisse mit TFS Testmanager 2013

Kundenabnahme

Wie sich eine Kundenabnahme gestaltet, hängt von dem definierten Vorgehen der Kundenabnahme ab. Wenn man davon ausgeht, dass im Rahmen des Projektes eine Abnahmeumgebung definiert wurde, unterstützt TFS mit seinen Release und Deployment Tools die automatisierte Bereitstellung der abzunehmenden Software auf ein oder mehrere definierte Abnahmeumgebungen.

Vor der Konfiguration des Deployments im TFS ist es sinnvoll, ein entsprechendes Konzept für das Projekt zu erarbeiten. In diesem Deploymentkonzept wird unter anderem festgelegt, auf welcher Programmcodebasis, in welche Umgebung und in welchen Abständen das Deployment erfolgen soll, z.B. in die Kundenabnahmeumgebung.

Für eine formale Kundenabnahme der Softwarelieferung müssen letztendlich mit dem Kunden Abnahmekriterien definiert werden. Die können sich sowohl an den dokumentierten Anforderungen des Sketchflows, als auch an definierten Testfällen aus dem Testmanager orientieren.

Fazit

Mit den Funktionen und Werkzeugen des Team Foundation Servers können Anforderungen aus Sketchflow durchgängig verwaltet werden.

Der TFS unterstützt das Application Lifecycle Management durchgängig. Anforderungen der Oberflächenentwicklung werden mit Sketchflow von ihrer Erzeugung bis zur Endabnahme verfolgt und verwaltet. Die Grenzen der Unterstützung werden lediglich durch die Motivation zur Pflege der relevanten Informationen durch die Mitarbeiter und Nutzer gesetzt.

Damit das funktioniert, müssen die Mitarbeiter die Daten auf der TFS Umgebung pflegen. Nur so werden die TFS und VS Funktionen einen positiven Projektnutzen erbringen.

Abbildung 6: Übersicht zu Visual Studio Team System
Abbildung 6: Übersicht zu Visual Studio Team System

Weitere Detailinformationen zu ALM mit TFS können sie auf folgenden Webseiten oder Blogs nachlesen:

Jana Paetzoldt

Jana Paetzoldt

Acando GmbH
MSDN Flash Newsletter abonnieren