Beispiel aus der Praxis
Ein Entwickler ignorierte im Rahmen einer Importroutine die Kopfzeile einer ASCII-Datei, in der die Feldnamen aufgelistet waren, indem er die Laderoutine die erste Zeile überlesen ließ. Irgendwann wurde die Reihenfolge der Datenfelder geändert, was sich in der Kopfzeile widerspiegelte. Die Routine las jedoch in der üblichen festen Reihenfolge und stürzte ab.
In einer Schnittstellenbeschreibung wurde ein boolscher Wert (ja/nein-Wert) als j und n codiert und so dokumentiert. Im Rahmen des Exports wurde lediglich ein String aus einer DB-Tabelle gelesen und in eine ASCII-File geschrieben, weitere Prüfungen fanden nicht statt. Beim Lesen fiel auf, dass das j und n auch manchmal groß geschrieben war, und dass auch leere Spalten geliefert wurden. Es stellte sich heraus, dass der Export-Vorgang korrekt war. Jedoch wurde im Rahmen der Verarbeitung im Vorfeld nicht beachtet, dass eine Vereinheitlichung der Schreibweise vor dem Speichern des Zeichens in der Datenbank notwendig war. Außerdem war nirgendwo dokumentiert, dass das Datenfeld, das aus einem Fragebogen erfasst wurde, gelegentlich nicht lesbar oder nicht ausgefüllt war, und daher frei gelassen wurde.
Beispiel aus der Praxis
Entgegen den Fachanforderungen, die einen Datenexport an ein konkretes Ereignis gebunden hatten, wurde eine Exportroutine zeitgesteuert implementiert. Die Routine lief um 3:00 morgens unter der Annahme, dass die für den Export relevanten Daten i.d.R. gegen 21:00 des Vortages bereitstehen sollten, und dass der Zeitpuffer von ca. sechs Stunden ausreicht. Zudem waren keinerlei Kontroll- oder Benachrichtigungsmechanismen für Folgeprozesse vorgesehen, für den Fall dass der Export scheitern sollte. Die Folgeprozesse verließen sich wiederum darauf, dass der Vorgängerprozess die Daten rechtzeitig und vollständig bereit gestellt hatte, eine Datenprüfung beim Import fand nur sehr rudimentär statt. Gelegentlich kam es nun vor, dass die Daten nicht eintrafen, worauf die Folgeprozesse abstürzten. Einmal startete der Export, als der Vorgängerprozess noch nicht vollständig abgeschlossen war. Der unvollständige Export ging als Import in den Folgeprozesses ein. Es war sehr viel Handarbeit notwendig, um die durch die unvollständigen Daten ausgelösten Fehler zu korrigieren.
Beispiel aus der Praxis
Eine zentrale Stelle war für die Verarbeitung von Daten für ein Bundesland zuständig. Die von einem Großrechner erzeugten Daten wurden auf etwa ein Dutzend Institutionen im Land verteilt. Manche der Ladeprozesse stürzten ab. Wie sich zeigte, konnten nicht alle Plattformen die Umlaute wie generiert verarbeiten. Aus diesem Grund wurde eine Datenkonvertierung eingeführt, die Umlaute und ß in gewöhnliche Buchstaben umsetzten. ä wurde aeaeae, ö oeoeoe usw. Beim nächsten Versuch stellte sich heraus, dass die expandierten Umlaute zu große Feldlängen zur Folge hatten, sodass das Stringformat ebenfalls angepasst werden musste.
Beispiel aus der PraxisBei größeren Webanwendungen werden zum Entwurf von optisch brauchbaren Oberflächen Webagenturen benutzt, sonst macht das der Applikationsdesigner oder Entwickler häufig nebenbei. Meistens ergibt sich ein Henne-Ei-Problem: Der Analytiker kann keine vollständigen Vorgaben machen, da die Fachanwender sich die Formulare und deren Bedienung und Abfolge nicht vorstellen können, wenn sie sie nicht sehen, oder, was sehr häufig der Fall ist, sich nicht die Zeit nehmen, die Eingaben und Ausgaben gründlich zu studieren. Die Kreativ-Agenturen wollen jedoch keine Entwürfe machen, wenn keine vollständigen und abgenommenen Vorgaben vorhanden sind. Somit wird der Schwarze Peter gerne im Kreise herum geschoben, wobei lediglich die Frage ist, wer sein Budget höher belastet. Diese Auseinandersetzung wird letztendlich zu Lasten des Projekts statt finden.
Eine Webagentur war in einem mittelgroßen Projekt zu Gange. Weder wurden die graphischen Entwürfe der Bildschirme versioniert, noch später die Templates, sodass der Projektleiter oder Entwickler die Entwürfe jedes mal selbst auf Änderungen prüfen musste. Nachdem die Webagentur schlichtweg vergessen hatte, Platzhalter für Fehlermeldungen vorzusehen, einigte man sich unter Zeitdruck darauf, lediglich ein einheitliches Fehlerformular einzuführen. Ein Template hierfür wurde niemals geliefert, einer der Entwickler erarbeitete selbst eine Lösung.
Beispiele aus der PraxisEs kann sinnvoll sein, dass ein Analytiker einen Screen-Designer bzw. Graphiker hinzu zieht, sobald er den Eindruck gewinnt, dass der Fachanwender sich nicht mehr auf abstrakten Niveau bewegen kann. Spätestens aber, wenn die Eingangs- und Ausgangsdaten der Prozesse einigermaßen stehen, sollte der Screen Designer konsultiert werden, und er muss hinzu gezogen werden, wenn ein Prototyp gebaut werden soll.
Ein zweistufiger Prozess, bei dem zunächst ein Datenobjekt in einer ersten komplexeren und vom Anwender zu parametrisierenden Suche auszuwählen war und das dann in einen Folgeprozess mit zusätzlichen neuen anwenderdefinierten Parametern einging, erschien einer Webagentur zu komplex. Man beharrte darauf, einen Mausklick und ein Formular einzusparen, was fachlich nicht möglich war. Der Business Analyst verlor über zwei Tage wegen vollkommen unnützer Diskussionen und verweigerte die Abnahme der Oberfläche, da sie den zugehörigen Prozess nicht mit den passenden Daten versorgen konnte. Die Webagentur ging ein Jahr später pleite.
Screenentwürfe für eine Webanwendung aus dem Finanzbereich enthielten für Edelmetalle und Währungen trotz mehrfacher Reklamationen in Reviews immer wieder eine Wertpapierkennnummer, obwohl diese Instrumente keine WKN haben. Als Grund wurde eine einheitliche Optik angegeben, man wollte alle Instrumente von der Aktie bis zum Edelmetall einheitlich darstellen.
Zu DOS-Zeiten konnten nur 24 Zeilen mit ja 80 Zeichen auf einem Monitor dargestellt werden. Ein Fachanwender hatte mehrere Screenentwürfe abgelehnt und verlangte, dass noch mehr Informationen auf einem Bildschirm dargestellt werden sollten. Der Analytiker rechnete ihm vor, dass die Menge der darzustellenden Zeichen größer als die 24 * 80 Zeichen waren. Der Fachanwender schlug daraufhin vor, doch größere Monitore zu kaufen.
Beispiele aus der Praxis
Eine Webanwendung reklamierte, dass "keine Zahl aus dem erlaubten Wertebereich" in einem Editfeld stehen würde, als vor oder hinter der Zahl versehentlich noch ein Leerzeichen stand. - Ein typischer Effekt, wenn man Werte mit copy and paste in die Editfelder einträgt. - Dieselbe Fehlermeldung kam, wenn gar nichts oder einfach nur Buchstaben eingetragen wurden.
Bei der Vergabe von Namen für bestimmte zu speichernde Datenobjekte wurden ausschließlich Leerzeichen ebenso ohne weiteres akzeptiert, wie Namen mit Leerzeichen vor oder nach dem eigentlichen Text. Bei der Anzeige ließen sich die Leerzeichen allerdings nicht mehr erkennen und die untrerschiedlichen Eingaben waren nicht zu unterscheiden.
Eine Testumgebung schnitt numerische Eingaben kurzerhand ab, wenn als Dezimalpunkt ein Komma benutzt worden war, sodass die Nachkommastellen verloren gingen. Nach einer Reklamation wurden nur noch syntaktisch korrekte Eingaben gespeichert, bei Syntaxfehlern beliebiger Art erfolgte jedoch keine Fehlermeldung, sondern es wurde ohne weiteren Kommentar 0 in die Datenbank geschrieben.
Beispiel aus der PraxisUm sicher zu stellen, dass der Prozess den Forderungen des Fachanwenders entspricht, muss der Fachanwender den spezifizierten Prozess nachvollziehen. Dies geschieht durch das Studium der Spezifikation, Walkthroughs mit dem Analytiker und das Durchspielen von Beispielen. Somit ist es hinsichtlich der Darstellung des Geschäftsprozesses in der Spezifikation nicht so sehr die Frage, wie man den Geschäftsprozess optimal im Sinne der IT darstellt, sondern dass man ihn in einer Form beschreibt, sodass ihn der Fachanwender auch versteht.
Ein Projektmanager reklamierte im Rahmen verschiedener interner Durchsichten die Interpretierbarkeit eines Anforderungsdokuments. Es stellte sich jedoch heraus, dass er nur das erste Drittel des Dokuments gelesen hatte (ca. 60 Seiten), hauptsächlich Tippfehler fand und auf den 60 Seiten lediglich zwei interpretierbare Stellen nachweisen konnte, die nicht zu fatalen Problemen geführt hätten; alle anderen Reklamationen konnten ihm erklärt werden. Dabei zeigte sich, dass er die im Projekt benutzte Fachsprache nicht verstand. Der Projektmanager hatte keine IT-Kompetenz und kannte sich auch im zu untersuchenden Fach nicht aus. Seine Stelle wurde wenige Monate später eingespart.
Beispiel aus der Praxis
Eine halbfertige Spezifikation wurde mit der Bitte um einen interne Durchsicht auf Korrektheit der bisher spezifizierten Anforderungen an den Auftraggeber geliefert. Der Analytiker rechnete mit einer Dauer von einer Woche und setzte dem Kunden einen Termin von zwei Wochen. Nach zehn Wochen kam endlich der Rücklauf, Fehler wurden nur wenige gefunden. In der Zwischenzeit wurde am Anforderungsdokument weiter gearbeitet und am Ende wurden die Ergebnisse abgeglichen. Der Liefertermin des Produkts wurde zunächst auf unbestimmte Zeit verschoben, da nicht abzusehen war, wie schnell die Fachanwender in Zukunft reagieren würden. Später im Projekt trat dennoch Zeitdruck auf. Das technische Team reklamierte etwa einen Fehler auf zwei Seiten, wovon zwei Drittel ohne Rückfrage beim Kunden ad hoc geklärt werden konnten, und einen fatalen Fehler auf 40 Seiten. Der Business Analyst war von dem Ergebnis ebenso positiv überrascht wie die Projektleitung.
Beispiel aus der PraxisFachanwender begrüßen häufig Prosa, da sie sie verstehen. Die Fallbeispiele zeigen aber recht klar, dass man einen sachlichen Fachanwender benötigt, um mit Prosa arbeiten zu können. Prosa hat den Nachteil, dass die fehlende feste Form dem Kunden erlaubt, alles mögliche zu ergänzen, ohne die Form zu verletzen.
Ein Business Analyst hatte nach mehreren Personenmonaten ein Analysedokument erstellt, das über 150 Seiten stark war. Er hatte zunächst Prosa und strukturiertes Deutsch und einige Programmablaufpläne als Form gewählt, von der er sicher war, dass die Fachanwender die Darstellung auch versteht. Im Laufe mehrerer Durchsichten des Dokuments hatte der Kunde Einträge vorgenommen, die in einer Spezifikation nichts zu tun hatten; er insistierte jedoch auf diese Einträge, um sie als Vertragsbestandteil unterzubringen. Alternativabläufe und Randbedingungen waren noch nicht strukturiert heraus gearbeitet und teilweise in Nebensätzen in der Prosa versteckt. Das Dokument wandelte sich von einer prozessgetriebenen Beschreibung in eine oberflächengetriebene Beschreibung, da die prozessgetriebene Beschreibung wegen inflationär wachsender alternativer Abläufe nicht mehr durchzuhalten war. Der Projektmanager setzte eine Woche für das Design an, wogegen der Analytiker meinte, dass alleine das erstmalige Lesen des Dokuments zwei Tage dauern würde.
In einem anderen Fall spezifizierte derselbe Analytiker ein kleineres Produkt im Laufe von eineinhalb Personenwochen. Der Fachanwender hatte selbst hohe IT-Kompetenz und arbeitete sehr zielorientiert, vollzog das Dokument in mehreren Durchläufen selbst vollständig nach und suchte bei Änderungen stets den Konsens mit dem Analytiker. Das Produkt wurde erst nach seinem Ausscheiden aus dem Unternehmen implementiert. Der Kunde bekam das, was er wollte.
5. Wenn der Kundenstammdatensatz nicht gefunden wird dannDiese Beschreibung ist noch nicht tauglich für einen Software-Entwickler (wie wird die Suchmaske ausgewählt, wo wird die Kundennummer eingetippt, wie wird die Suchfunktion ausgelöst?) und noch dazu unvollständig, reicht aber vorübergehend als Prozessbeschreibung aus hoher Sicht aus. In einem technischen Review würde sie auf jeden Fall durchfallen.
5.1 Ausgabe einer Fehlermeldung
5.2 Weiter bei Schritt 2 im Originalablauf