Erfahrungswerte zeigen, dass sich mind. 30% eines Anforderungskatalogs während des Projektes ändert. Entweder fallen Anforderungen weg, neue kommen dazu und bestehende werden inhaltlich geändert. In den meisten Fällen können Software-Projekte nicht durchgeplant werden, da während des Projektes viele Unbekannte auftauchen oder sich die Umstände ändern.

Leitfaden Requirements Engineering

Die häufigsten, typischen Fehler

Personas oder Vision nicht vorhanden   

  • Fehler: Die Vision oder Persona der Anwendung ist nicht klar. 
  • Risiko: Die Anforderungen sind dadurch falsch oder unklar definiert. Dadurch wird falsch investiert. 
  • Best Practice: Vision, Persona & deren Bedürfnisse am Anfang des Projektes klar definieren und sich stets daran orientieren.
     

Zu hoher Detailierungsgrad der Anforderungen

  • Fehler: Anforderungen bis ins letzte Detail ausdetaillieren. 
  • Risiko: Informationen und Umstände während des Projektes ändern stetig. Somit kommen neue Informationen hinzu. Wenn man an den Detailanforderungen festhält, besteht die Gefahr an der Realität vorbei zu entwickeln. 
  • Best Practice: Die funktionalen Anforderungen werden in horizontaler (User Journey) und vertikaler Weise (einzelne, äusserst wichtige Funktionalitäen) aufgenommen. Details werden vorzu neu definiert. 

Fehlende Mitwirkung des Auftraggebers während des Projektes

  • Fehler: Auftraggeberin nimmt sich nur am Schluss des Projektes Zeit zum Testen. 
  • Risiko: So fällt erst am Schluss auf, was vergessen ging, was noch fehlt oder was für die Persona nicht passt. 
  • Best Practice: In Intervallen und in Absprache mit Auftraggeber entwickeln, testen und stetig anpassen gemäss dem höchsten Business Value. 

Begrifflichkeiten

Auftraggeberin

Ist die Partei, die den Auftrag der Entwicklung einer Applikation/Anwendung oder einer Website gibt. 

Auftragnehmerin

Ist die Partei, die im Auftrag die Applikation/Anwendung oder die Website entwickelt. 

End-Kunde/User/Anwender

Bezeichnet die Person, die die Applikation schliesslich nutzt.
 

Cross-funktionales Team:

Besteht aus Entwickler/innen, User Experience Spezialisten/innen, Designern, Projektleiter/in und weiteren Experten, die für das Projekt relevant sind. Sie kümmern sich direkt um das zu erarbeitende Produkt und arbeiten eng mit der Auftraggeberin zusammen. 
 

Persona

Archetypische Darstellung des Benutzers der Applikation oder Website

Epics

Grosse, grobe Themen einer Anwendung und damit auch Arbeitspakete
 

Funktionale Anforderungen (FA)

“Funktionale Anforderungen beschreiben gewünschte Funktionalitäten (was soll das System tun/können) eines Systems bzw. Produkts, dessen Daten oder Verhalten.Nichtfunktionale Anforderungen sind Anforderungen, an die "Qualität" in welcher die geforderte Funktionalität zu erbringen ist.” aus 

Nicht-funktionale Anforderungen (NFA)

“Die nicht-funktionalen Anforderungen beschreiben, wie gut das System die Leistung erbringen soll; sie werden vielfach als Randbedingungen und Qualitätseigenschaften verstanden. Ein Beispiel:
„Das Produkt soll dem Anwender innerhalb von einer Sekunde antworten.“

User Journey

“User Journeys sind alle Schritte, die ein Nutzer geht, um ein gewisses Ziel mit einem interaktiven System zu erreichen. Sie bestehen meist aus einer Anzahl von Website-Seiten und Entscheidungspunkten, die den Nutzer von einem Schritt zum nächsten bringen. User Journeys werden in User Journey Maps abgebildet, die diesen Weg mit allen Schritten und Erfahrungen detailliert zeigen.”

Quelle:

Proof of Concept
General Data Protection Regulation (GDPR, EU)
Defintion of Done

Einleitung

Erfahrungswerte zeigen, dass sich mind. 30% eines Anforderungskatalogs während des Projektes ändert. Entweder fallen Anforderungen weg, neue kommen dazu und bestehende werden inhaltlich geändert. In den meisten Fällen können Software-Projekte nicht durchgeplant werden, da während des Projektes viele Unbekannte auftauchen oder sich die Umstände ändern.
Um ein Web-Projekt ausführen zu können, gibt es Komponenten, die vorab definiert werden müssen : 

  • Vision, inkl. Personas: durch diese entsteht das Verständnis zwischen Auftraggeberin und Auftragnehmerin zu den Zielen, zur User Experience und zum Design der Applikation. 
  • Funktionale Anforderungen (FA) - siehe Definition unter “Begrifflichkeiten”: Grobe Definition von Funktionalitäten, welche die Applikation enthalten muss.
  • Nicht-funktionale Anforderungen (NFA)  - siehe Definition unter “Begrifflichkeiten”: Dies sind Anforderungen, die sich übergreifend durch die ganze Applikation durchziehen und bei der Umsetzung von funktionalen Anforderungen als Massstäbe gelten. 
     
Vision

Es ist es wichtig zu verstehen, welche Vision die Applikation hat und was sie bewirken soll. Die Vision wird mit anhand der folgenden Ingredienzen definiert:

Personas: Welches sind die Benutzer der zu entstehenden Anwendung? Hier muss präzise in der Form von Personas formuliert werden. Siehe auch hier für Tipps. Zudem ist es gut, Personas zu priorisieren - welche ist uns am Wichtigsten?

Ziele: Was soll der Sinn der Anwendung sein? Was will man damit erreichen? Erfahrungsgemäss sind die Ziele meist zu ungenau definiert. Eine genaue Definition hilft jedoch, um einen hohen ROI zu erhalten. Wichtig zu fragen ist auch: Warum hat die Auftraggeberin dieses Ziel? Das Warum gibt oft sehr schnell Aufschluss darüber, welche Priorität ein Ziel hat. Dies hilft wiederum (s. letzter Punkt), das Budget richtig zu investieren.

Bedürfnisse der Personas: Welche Bedürfnisse haben die Personas.

Ausblick: der Auftraggeber  formuliert einen Ausblick auf die nächsten 3 - 5 Jahre.

USP: Auftraggeberin definiert, wie die Applikation wahrgenommen werden soll im Vergleich mit der Konkurrenz.

Umsysteme & Prozesse: Es wird erläutert, wie Prozesse im Hintergrund vernetzt werden sollen, um effizienter in den Geschäftsabläufen zu werden und welche Systeme Einfluss haben werden.

Priorisierung: Bestimmen, welches die Ziele mit höchster Priorität sind. 

Erwartungen: Es ist empfehlenswert, im Vorlauf zu klären, was die Auftraggeberin und den End-Nutzer begeistern oder enttäuschen würde.

Workshops: Meist ist es einfacher und schneller, die Vision nicht schriftlich zu formulieren, sondern diese mit der Auftragnehmerin und der Auftraggeberin in einem Workshop zu klären. So verstehen alle Beteiligten die Vision und können sich damit bei der Entwicklung identifizieren.

Funktionale Anforderungen

Damit die Auftragnehmerin das Vorhaben versteht und effizient arbeiten kann, ist sie darauf angewiesen, die “User Journey” zu kennen. Empfehlung ist, dass die funktionalen Anforderungen gemäss der “User Journey” beschrieben werden.

Horizontal und vertikal definieren
  • Horizontal: Auftragnehmerin und Auftraggeberin gemeinsam beschreiben ganz grob (nur in ca. 5 - 7 Punkten), welche Schritte die Benutzer in der Anwendung durchlaufen müssen. Dies könnte z.B. so aussehen: 
    Übersicht Home - Klick und Übersicht Job-Angebote - Suche mit Filtern - Übersicht Resultate - Klick und Detail-Information für Job - Klick und Bewerbung erstellen & abschicken.
    Es sind die ganz groben Brocken der Anforderungen an die Applikation (Epics).
     
  • Vertikal: Von nun an gehen Auftragnehmerin und Auftraggeberin gemeinsam ins Detail der einzelnen Epics und formulieren - aber nur dort, wo es wirklich geschäftsrelevant ist -, was genau für die Umsetzung der Epic benötigt wird. Zum Beispiel:
    • Übersicht Resultate
      • Die Resultate werden von einer Datenbank eines Dritt-Partners gezogen.
      • Es ist wichtig, dass das Branding jeder Firma mit einem Job-Angebot herausstechen kann.

Insgesamt entsteht somit ein Anforderungskatalog, der einerseits horizontal - die Reise des End-Users in Schritten von links nach rechts durch die Applikation - und vertikal - wie gehen die Benutzer in die Tiefe pro Schritt. Dadurch entsteht quasi eine Karte der Applikation, die es der Auftragnehmerin erlaubt, die Gedankengänge und Wünsche der Auftraggeberin zu verstehen.

Es ist sehr wichtig, dass der Auftragnehmerin alle möglichen Informationen von der Auftraggeberin übermittelt werden. Dabei darf man nicht arbeitsscheu sein, denn es schadet sonst der Qualität der zu entstehenden Applikation.


Unklare Aussagen

Achtung bei  Aussagen wie unterstrichen: Solche Aussagen bergen ein hohes Risiko in der Entwicklung und sind meist vom Aufwand her nicht einschätzbar. Sie können das Projekt also gefährden.

Es empfiehlt sich also:

  • einen transparenten Zugang zu den Informationen möglich zu machen
  • Budget einplanen für Spikes oder Proof-of-Concept - siehe Definitionen unter “Begrifflichkeiten” oben.

Hier sparen ist riskant. Böse Überraschungen später im Projekt kommen teuer zu stehen.

Geräte - NFA

Welche Geräte werden vom End-Kunden genutzt - Mobile (native? web-app? responsive?), Tablet, Desktop? Damit wird bestimmt, auf welche Arten die Applikation designt und programmiert wird.

Browser-Matrix - NFA

Die Aufraggeberin sollte definieren,

  1. in welchen Browsern die Applikation laufen sollte (inkl. Mobile Anforderungen)
  2. Auf welchen Browser-Versionen sie laufen sollte (älteste, noch gewollte Version angeben)
  3. Auf welchen Browser-Versionen eine perfekte Programmierung ausgewiesen werden soll (jeder Fehler muss pixel-perfekt korrigiert werden); auf welchen Browser-Versionen eine optimale Programmierung ausgewiesen werden soll (man lässt gewisse Ungereimtheiten zu)
Hosting - NFA

Die meisten Web-Entwicklungsfirmen bieten heute kein Hosting mehr an, da dies eine hohe Expertise verlangt - auch in Bezug auf die Sicherheit und Laufzeiten. Trotzdem kann die Auftraggeberin Auskunft geben über:

  • Hoster, denen sie vertraut
  • Passendes Dienstleistungspaket beim Hoster gemäss Anforderungen der Anwendung
  • Ideale Entwicklungsumgebungen, so dass die Entwicklung auf verschiedenen Ebenen optimal zusammenspielt und auch in der Abnahme durch die Auftraggeberin oder beim Go-Live keine Probleme entstehen.
  • Cloud ja / nein
Daten-Sicherheit / Datenschutz - NFA

Der Grad an Sicherheit, der von der Auftraggeberin definiert wird, hängt extrem stark vom Ziel der Applikation ab. Je nach dem ist auch die Vernetzung der Systeme, die sich hinter der vom Nutzer bedienten Applikation verbirgt, die sicherheitstechnisch relevante Frage (so oft der Fall bei Corporate Seiten mit einem Login auf andere Services).

Achtung: Ab Mai 2018 tritt GDPR (General Data Protection Regulation) der EU in Kraft und gilt auch für die Schweiz. Siehe dazu den Wikipedia Artikel GDPR.

Web-Accessibility / Barrierefreiheit - NFA

Barrierefreiheit ist eine Chance, denn eine Applikation, die barrierefrei ist, hat per se eine bessere Benutzererfahrung (User Experience) und ist damit eine bessere Applikation für alle Benutzer.

Mehr zum Thema im Wikipedia-Artikel zu barrierefreiem Internet und konkrete Standards und Informationen auf der Webseite für barrierefreie Technologienutzung.

Die Auftraggeberin hat sich also zu entscheiden, ob er Standard A, AA oder AAA will (bei öffentlichen Institutionen ist AA obligatorisch). 

Performance - NFA

Wie schnell eine Applikation ist, kann für den Geschäftserfolg grundlegend sein. Natürlich ist sich der Benutzer heutzutage an schnellere Systemantworten gewohnt also noch vor ein paar Jahren. Im Sinne des Ziels der Applikation sollte definiert werden, was Schnelligkeit der Systemantwort für das Geschäft bedeutet.

Die Architektur, die für die Applikation gewählt wird und deren angehängte Systeme, haben einen enormen Einfluss auf die Performanz der Applikation.

Search Engine Optimization (SEO) und Analytics - NFA

SEO und Analytics sind erfolgsrelevant und sollten von Anfang an in die Überlegungen miteinbezogen werden. Ein Workshop ist hilfreich, um Leitplanken und messbare Ziele zu setzen.

User Experience (UX) - NFA

Der heutige User ist an Applikationen wie airbnb, youtube, und andere ähnliche gewohnt. Sie alle haben eine einfache und intuitive Benutzerführung. Das setzt heute den Standard. Eine gut geplante und vor allem getestete Benutzerführung ist ein Muss. Sie beeinflusst nicht nur direkt den Erfolg der Applikation, sondern auch den Ruf der Marke.

Gute User Experience wird anhand Methoden definiert, die auch Benutzer-Recherche sowie Benutzer-Testing beinhalten.

Applikationen mit guter User Experience werden vor allem durch objektive Massstäbe (wie eben Recherchen, Testings, etc.) definiert. 

Visuelles Design - NFA

Die Frage bei der Entwicklung des Visual Designs lautet: “Was braucht meine Persona?” Potentielle Kundinnen für ein Luxusprodukt erwarten einen anderes visuelles Design als Lageristen, die eine Anwendung für Logistik-Informationen bedienen müssen. 

Code Qualität - NFA

Es ist empfehlenswert, Code Qualität und Wünsche zur Dokumentation zu besprechen und evtl. auch abzumachen (über eine “Definition of Done”). Wieso?

  • Evtl. möchte die Auftraggeberin die Weiterentwicklung einer Applikation an einen neuen Auftragnehmer vergeben.
  • Als Agentur betonen, dass es wichtig ist, dass sich die Entwickler Zeit nehmen, um sauber zu programmieren. Kosten für Fehlerbehebung und Wartung sind dadurch tiefer.

Wie wird eine gute Code Qualität sichergestellt?

Meist ist die Auftraggeberin selbst kein Entwickler und hat daher Schwierigkeiten, zu überprüfen, ob die Code Qualität stimmt. Anhand der folgenden Anforderungen kann sichergestellt werden, dass Prozesse, die zu einer guten Code Qualität führen, eingehalten werden.

  • Code Review durch einen anderen Entwickler. Dabei werden Fehler gefunden, die der Entwickler selbst während der Erarbeitung übersehen hat.
  • Automatisierte Tests. Der Auftraggeberin muss klargemacht werden, dass dies für die Nachhaltigkeit der Applikation und der Investition ein Muss ist.
  • Manuelle Tests jeder umgesetzten Anforderung durch die Auftragnehmerin und Auftragnehmerin kurz nach Entwicklung.
Team-Komposition - NFA

Wichtig ist die Durchmischung, das heisst:

  • gute Verteilung von Senior- und Junior-Kräften. Es ist wichtig, dass Senior-Kräfte mit im Team sind, um gemachte Erfahrungen wiederholen zu können. Oder eben auch nicht. Es ist aber ebenswo wichtig, dass Junior-Kräfte im Team sind. Denn sie bringen oft neuartige Ideen ein.
  • cross-funktionales Team (z.B. Entwickler, User Experience Spezialist, Projektleiter, Analytics-Spezialist, Visual Designer, etc.). Wenn verschiedene Experten zusammen arbeiten, wird eine vollumfassende Lösung der Applikation zur Folge sein.
  • Ein fixes Team, mindestens für die Dauer des Projektes. So geht kein Know How verloren während der Entwicklung. Zudem behält das Team den Fokus auf das Ziel der Applikation.
  • Diversität von Geschlecht, Nationalität, andere Kriterien. Z.B. bei einer barrierefreien Applikation mit Standard AAA ist es wichtig, dass ein Mitglied selbst diese Benachteiligung hat. Oder bei einerm Shop, der Frauenkleider verkauft, ist es wichtig beim Design und auch in der Entwicklung einen hohen Frauenanteil zu haben. Diverse Teams machen bessere Applikationen, weil sie als Team die Mini-Welt der Applikation repräsentieren.
Kommunikation - NFA

Es kann gar nicht genug betont werden, wie wichtig eine hürdenlose, präzise Kommunikation zwischen umsetzendem Team und Auftraggeberin ist. Eines vorab: Email Kommunikation reicht nicht. Web-Projekte brauchen Kommunikationsinstrumente, die auf die Bedürfnisse von solchen Projekten ausgerichtet sind und die von allen einfach und schnell bedient werden können. In solchen Instrumenten werden auch Entscheidungen dokumentiert, die für die Applikation erfolgsbestimmend sind und auch nach dem Projekt als Wissensbasis dienen. Daher reichen Email oder Telefon nicht aus. Die folgenden Instrumente sind empfohlen:

  • Atlassian Confluence: Damit werden Konzepte dokumentiert wie nicht-funktionale Anforderungen, Definition of Done, Projektorganisation, etc.
  • Atlassian Jira: Damit wird der ganze Katalog der Arbeiten dokumentiert. Beide, d.h. Auftragnehmer und Auftraggeber haben darauf Zugriff. Dort werden die einzelnen Teilaufgaben definiert, diskutiert, kommentiert und schliesslich auch abgenommen.
  • Slack oder ähnliches Chat-Tool: Es erlaubt einen sehr schnellen Austausch zwischen Auftragnehmerin und Auftraggeberin. Hier müssen ein paar Regeln gelten, die die Partner untereinander abmachen sollten, damit die Arbeiten nicht dauernd gestört werden.  Trotz dieses Risikos überwiegen die Vorteile.
  • Regelmässige Sitzungen, an denen wichtige Entscheide und nächste Projektschritte im persönlichen Austausch getroffen werden. (siehe dazu auch “Vorgehen”
Projektmethodik / Vorgehen - NFA

Prinzipiell gibt es zwei Methoden: Wasserfall oder Agil

Gemäss dem “Trends & Benchmarks Report 2016” von Swiss Q, sind die agilen Projekte zu 60% erfolgreich, bei der Wasserfallmethodik nur zu 45%.

Software-Entwicklung ist - in der grossen Mehrheit - eine komplexe und daher nicht im Voraus planbare Aufgabe. Die Wasserfall-Methode eignet sich für komplexe Vorhaben nicht.

Die agile Methode - auch wenn Sie sich zu Beginn etwas komisch anfühlt - verspricht einen höheren Projekterfolg, einen besseren Return on Investment, einen schnelleren Go-to-Market, bessere Code-Qualität sowie eine auf den Benutzer besser abgestimmte Applikation.

Wie gesagt: Die grosse Mehrheit der Software-Entwicklungsprojekte sind komplex, mit sehr vielen Unbekannten, und verlangen daher nach der agilen Methode.

Support und Wartung (SLA) - NFA

Beim Auswahlverfahren der Auftragnehmerin kann schon nach der Support- und Wartungsleistung verlangt werden. Daraus ist oft auch ersichtlich, wie die Applikation während der Entwicklung dokumentiert wird. Nur eine gut dokumentierte Applikation kann einwandfrei in den Support übergeben werden.  Je komplexer die Applikation ist, umso höher werden die Kosten der Wartung sein.

Wichtige Punkte im SLA sind:

  • Wie werden Updates der Versionen gehandhabt
  • Wie werden Einsatzzeiten gehandhabt (Pikett am Wochenende oder nur Bürozeiten)
  • Wie werden die Kriterien für den Support definiert (Kritikalität der Störungen)
  • Wie werden kleine oder grosse Erweiterungen der Applikation gehandhabt

Die Auftragnehmerin sollte der Auftraggeberin ein Muster vom Support und Wartungs-Vertrag schon in der Offertphase zeigen und eine grobe Kostenschätzung machen können. 

0 Kommentare

Ihr Browser ist veraltet!

Bitte aktualisieren Sie Ihren Browser, um diese Website korrekt darzustellen. Den Browser jetzt aktualisieren

×