Kürzlich habe ich eine Anfrage eines Unternehmens bekommen. Es sollte ein Tool zur Benutzerführung entwickelt werden. Der Fachverantwortliche des Kunden soll dabei zu einem bestimmten Prozess die einzelnen Fragen und die möglichen Antworten definieren, sowie festlegen, in welcher Reihenfolge die Fragen anzuzeigen sind. Ebenso soll auch die gewählte Antwort einen Einfluss drauf haben, welche Frage dann als nächste angezeigt werden soll.
Die so zusammengestellte Benutzerführung oder besser gesagt interaktive Arbeitsanweisung soll dann einem Sachbearbeiter ermöglichen, einen ihm unbekannten Prozess mit Unterstützung durchlaufen zu können.
Das Unternehmen fragte an, was die Umsetzung kosten und wie es in etwa aussehen würde. Hier in diesem Beitrag stelle ich ein paar Überlegungen zur Umsetzung vor.
Die aus meiner Sicht schickste (aber auch teuerste und aufwändigste) Lösung wäre eine datenbankbasierte grafische Admin-Oberfläche, wo dann der Fachverantwortliche sich seine Fragen, die Antworten und die Fragenreinfolge zusammenklicken könnte, a la Qualtrix. Doch in der Praxis, wo das Budget fast immer eine wichtige Rolle spielt, muss oft von der Variante mit den sprichwörtlichen „goldenen Wassenhähnen“ zugunsten einer einfacheren Lösung abgewichen werden.
Aus diesem Grund habe ich mich für eine hemdsärmelige Lösung auf XML-Basis entschieden, die deutlich günstiger und einfacher im Aufbau und in Konfiguration ist. Nach einer entsprechenden Schulung ist es auf für einen Nicht-ITler problemlos möglich, die Anwendung um weitere Fragen zu erweitern oder deren Reihenfolge zu verändern.
Konfiguration als XML-Datei
Um dieses XML-basierte Fragebogentools verproben zu können, habe ich eine Beispielkonfigurationsdatei mit 3 Fragen erstellt. Wirft man einen Blick darauf, stellt man fest, dass der Aufbau selbsterklärend ist.
Der root-Knoten Fragebogen beinhaltet alle Fragen, die zum Fragebogen gehören.
Der Knoten Frage bündelt alle Informationen, die zu einer jeden Frage gehören. Jede Frage hat eine eindeutige Fragestellung (Knoten Fragestellung) und eine Auflistung von möglichen Antworten (Knoten Antworten). Darüber hinaus ist jede Frage mit einer eindeutigen Nummer (Attrubut id) gekennzeichnet. Dadurch ist es möglich, auf eine konkrete Frage bezug zu nehmen. Dies geschieht, indem man die id der zu referenzierenden Frage ins Attribut folgefrage-id aufnimmt.
So erkennt man beispielsweise an der Frage mit der id 1, dass ihr die Frage mit der id 2 als nächste folgt. Es sei denn, es ist für eine bestimmte Antwort eine abweichende Folgefrage hinterlegt, wie es bei der letzten Antwortmöglichkeit der Frage 1 der Fall ist. Beantwortet also der Nutzer die Frage „Was ist die beste Programmiersprache?“ mit der Antwort „Es kommt immer auf den konkreten Anwendungsfall an“, dann wird in diesem Fall die Frage 3 als Folgefrage angezeigt. Mit Hilfe dieser einfachen Verknüpfungen ist es möglich, auch relativ komplexe Fragenverzweigungen zu erstellen.
Hat eine Frage kein Attribut folgefrage-id, weder auf der Frageebene (Knoten Frage), noch auf der Antwortebene (Knoten Antwort), dann handelt es sich um die letzte Frage, nach der der Fragebogen abgeschlossen ist.
<Fragebogen>
<Frage id="1" folgefrage-id="2">
<Fragestellung>Was ist die beste Programmiersprache?</Fragestellung>
<Antworten>
<Antwort>Java</Antwort>
<Antwort>C#</Antwort>
<Antwort folgefrage-id="3">Es kommt immer auf den konkreten Anwendungsfall an</Antwort>
</Antworten>
</Frage>
<Frage id="2" folgefrage-id="3">
<Fragestellung>Warum haben Sie sich gerade für diese Sprache entschieden?</Fragestellung>
<Antworten>
<Antwort>Ich kenne keine andere</Antwort>
<Antwort>Weil sie einfach die beste ist.</Antwort>
</Antworten>
</Frage>
<Frage id="3">
<Fragestellung>Seit wann sind Sie als Entwickler tätig?</Fragestellung>
<Antworten>
<Antwort>1-5 Jahre</Antwort>
<Antwort>6-10 Jahre</Antwort>
<Antwort>mehr als 10 Jahre</Antwort>
</Antworten>
</Frage>
</Fragebogen>
Programmlogik des Fragebogentools
- Das Fragebogengenerierungstool liest beim Start den Knoten mit der Frage-ID 1 und blendet die Fragestellung auf der Oberfläche ein und generiert für jede hinterlegte Antwort eine Optionbox.
- Wurde eine bestimmte Antwort ausgewählt und auf den Button „weiter“ gedrückt, ermittelt das Programm die nächste anzuzeigende Frage (entweder anhand der gewählten Antwort oder anhand der Frage).
- Anschließend wird der 1. Punkt mit der ermittelten Folgefrage-ID wiederholt.
- Ist das Programm bei der letzten Frage angekommen, wird ein Protokoll der gestellten Fragen und der gewählten Antworten angezeigt oder per Mail verschickt oder ausgedruckt.
Vorteile der XML-basierten Umsetzung
- Die Lösung ist relativ einfach und schnell umsetzbar und somit günstig
- Die Logik des Programms ist einfach, da die Konfiguration des Ablauf, der Fragen und der Antworten gänzlich in die XML-Datei verlagert wurde
- Soll eine neue Benutzerführung für einen anderen Prozess entwickelt werden, kann die bisherige XML-Datei einfach kopiert und so als Beispiel verwendet werden. Ebenso einfach ist es, die entwickelten XML-Dateien unter SourceControl zu stellen und so gut nachvollziehbar zu verwalten.
Nachteile der XML-basierten Umsetzung
- Der Fachverantwortliche des Kunden muss sich nicht nur um die Fachlichkeit, sondern um einige Aspekte technischer Natur kümmern, wie zum Beispiel um die Vergabe von Fragen-ID’s. Ist es zwar nicht weiter kompliziert, kann aber bei einem großen Fragenkatalog lästig werden. Natürlich wird dabei der Fachverantwortliche nicht komplett mit der Technik allein gelassen – mit Hilfe einer XSD Datei wird der Aufbau der XML-Datei auf die Plausibilität geprüft (unter Anderem, ob die Knoten korrekt verschachtelt sind, ob alle Pflichtattribute enthalten und ob alle ID’s eindeutig sind).
- Dadurch, dass die Beziehungen (Frage – Folgefrage) durch ID-Verknüpfungen gelöst sind, ist es bei einer großen Menge an Fragen nicht einfach, den Gesamtüberblick zu behalten. So kann es beispielsweise passieren, dass man aufgrund der fehlenden Gesamtübersicht unbewusst eine Endlosschleife produziert. Um dieses Problem beheben zu können und nicht korrekte Beziehungen zwischen Fragen gleich auf den ersten Blick erkennen zu können, wäre eine Visualisierung der fertigen XML-Datei sehr hilfreich und relativ einfach umsetzbar.
Fazit
Meine Einschätzung zu diesem Auftrag habe ich (verbunden mit einigen weiteren Fragen) an das Unternehmen weitergegeben. Mal sehen, ob sie das vorgestellte Konzept überzeugt und ich den Zuschlag erhalte. Nun heißt es, abwarten, Tee trinken und Weihnachten feiern.
In diesem Sinne allen Frohe Weihnachten und erfolgreiches neues Geschäftsjahr 2023!