Damit eine Software nutzbringend in Unternehmen und Behörden eingesetzt werden kann, muss sie eine Reihe von Anforderungen erfüllen. Einerseits sind das die funktionalen Anforderungen, die die gewünschte Abbildung der eigentlichen Geschäftsprozesse im System sicherstellen. Genauso wichtig sind aber auch die nichtfunktionalen Anforderungen, die die Maßstäbe für die Qualität des Produkts definieren. Dazu gehören Dinge wie Benutzerfreundlichkeit, Antwortzeitverhalten oder die Möglichkeit des Exports der Daten, wenn nach Jahren der Nutzung das Produkt gewechselt werden soll.
Übersicht
Eine zu beschaffende Anwendung sollte nicht nur die vorgesehenen Geschäftsprozesse abbilden können. Sie sollte darüber hinaus auch stabil funktionieren, benutzerfreundlich sein, auf Eingaben schnell reagieren, sicher vor Hackern sein, Updates sollten sich leicht einspielen lassen usw. Solche Anforderungen werden als nichtfunktionale Anforderungen bzw. Qualitätsanforderungen bezeichnet.
Zur Strukturierung solcher Anforderungen gibt es Normen. In der Vergangenheit wurde häufig die ISO/IEC 9126 genutzt, heute ihr Nachfolger ISO/IEC 25010, an der sich auch die nachfolgenden Punkte orientieren.
Performance und Lastverhalten
Antwortzeitverhalten
Für ein sinnvolles Arbeiten sollte die Anwendung innerhalb einer bestimmten Zeit auf Benutzeraktionen reagieren, also beispielsweise eine Maske öffnen. Es kann aber immer einzelne Masken geben, die beispielsweise aufgrund einer komplexen Fachlichkeit länger benötigen. Das sollte bei den Anforderungen durch einen Anteil berücksichtigt werden. Beispiel: „In 90% der Fälle sollen sich Masken innerhalb von 2 bis 3 Sekunden öffnen.“
Das Verhalten muss auch dann gewährleistet sein, wenn mehr Benutzer gleichzeitig die Anwendung nutzen und wenn viele Daten vorhanden sind. Damit die Anbieter einen passenden Vorschlag zur Dimensionierung der Infrastruktur machen können, ist es deshalb wichtig, im Pflichtenheft bzw. in der Leistungsbeschreibung die Mengengerüste zu beschreiben, so die Zahl der Benutzer, die gleichzeitig mit dem System arbeiten können sollen und die zu erwartenden Datenmengen.
Kompatibilität
Vorhandene Infrastruktur vs. Systemvoraussetzungen
Wenn die Software in Ihrem eigenen Rechenzentrum installiert und betrieben werden soll (on-premise), so muss das Rechenzentrum die Systemvoraussetzungen der Software erfüllen können. Das sind beispielsweise Server, Laufzeitumgebungen und Datenbanken, die die Software zur Ausführung benötigt. In der Regel werden nur bestimmte Typen und Versionen unterstützt. Wenn die Software beispielsweise eine Datenbank vom Typ MS SQL Server voraussetzt, in Ihrem Rechenzentrum aber nur Oracle-Datenbanken möglich sind, dann wird es schwierig. Genauso bei einer Software, die auf Microsoft Sharepoint basiert, Sie aber kein Sharepoint im Einsatz haben.
Wenn eine Cloud-Lösung angepeilt wird (Software as a Service, SaaS), also über das Internet genutzt werden soll, gibt es keine Probleme mit Datenbanken usw. Es müssen jedoch die bei Ihnen verfügbaren Internet-Browser unterstützt werden, z.B, Mozilla Firefix, Google Chrome oder Microsoft Edge.
Schnittstellen
Eine Anwendung steht selten alleine da, sondern tauscht mit anderen Anwendungen Daten aus. Dafür sollte die Software entsprechende Schnittstellen-Konzepte und -Tools mitbringen.
Die erste Gruppe sind technische Schnittstellen, die keine fachliche Bedeutung haben, aber Betrieb und Nutzung der Anwendung ermöglichen oder erleichtern. Das ist beispielsweise die Anbindung an ein Verzeichnisdienst wie Active Directory, um die im Unternehmen zentral administrierten Benutzer in die Anwendung zu synchronisieren, so dass ein eigenes Benutzermanagement nicht notwendig ist. Ein weiteres Beispiel ist Single Sign-On (SSO): Ein Anwender muss sich nur einmal an seinem Arbeitsplatz anmelden und kann alle Applikationen ohne weitere Anmeldung nutzen.
Die zweite Gruppe sind fachlich getriebene Schnittstellen. Kostenstellen sollen nicht doppelt gepflegt werden, sondern aus den SAP-Stammdaten gelesen werden. IT-Infrastruktur soll aus einer Configuration Management Database (CMDB) gelesen werden. Und Rechnungsdaten sollen an das Finanzbuchhaltungssystem übertragen werden. Sofern solche Schnittstellen relevant sind, sollte der Anbieter ein allgemeines Konzept dafür mitbringen.
Nicht jede denkbare Schnittstelle ist jedoch auch automatisch sinnvoll. Schnittstellen müssen Systemgrenzen überwinden, dazu müssen Ports freigeschaltet werden, eventuell müssen Daten konvertiert werden usw. Da sich die beteiligten Systeme immer wieder verändern, müssen die Schnittstellen permanent überwacht und gepflegt werden. Das lohnt sich oft nur, wenn eine Schnittstelle regelmäßig genutzt wird. In anderen Fällen kann es ökonomischer sein, die Daten auf alternativen Wegen zu transferieren, z.B. durch einen manuellen Import oder in Einzelfällen sogar durch „abtippen“. Es muss also immer abgewogen werden, ob der Aufwand für Einrichtung und Betrieb einer Schnittstelle im Verhältnis zum erzielbaren Nutzen steht.
Benutzbarkeit
Erlernbarkeit
Wie einfach kann die Bedienung des Systems erlernt werden? Kriterien können dabei sein:
- Entsprechen die Konzepte in der Anwendung und die Benennungen an der Oberfläche den gängigen Standards und Normen?
- Sind Felder mit sinnvollen Standardwerten vorbelegt?
- Werden komplexe Abläufe durch Assistenten unterstützt, die den Anwender Schritt für Schritt führen?
- Gibt es ein kontextsensitives Hilfesystem?
Bedienbarkeit und Benutzerfreundlichkeit
Zunächst allgemein beschrieben: Um Bedienbarkeit und Benutzerfreundlichkeit einer Software zu evaluieren, werden üblicherweise Usability-Tests mit Versuchspersonen durchgeführt. Die Personen werden dabei beobachtet, wie sie bestimmte Aufgaben in der Anwendung lösen und es wird festgehalten und danach analysiert, wo es gut läuft, wo sie ins Stocken geraten usw.
Solche ausführlichen Tests sind im Rahmen eines Software-Auswahlprozesses in der Regel nicht möglich. Jedoch können die an der Auswahl beteiligten Personen sich bis zu einem gewissen Grad selbst beobachten und die gemachten Erfahrungen notieren, um zu einer Einschätzung der Bedienbarkeit zu kommen. Diese Einschätzung wird durch den Vergleich mit den Produkten der anderen Anbieter meist noch sicherer.
Voraussetzung ist die Möglichkeit eigener Tests während der Auswahlphase. Darauf sollte man jedoch ohnehin bestehen, denn ein Kauf nur auf Basis von Kriterienkatalogen oder Anbieter-Präsentationen birgt einige Risiken. Für einen solchen Test sollte man sich Anwendungsfälle definieren, wie sie später auftreten werden und sie in der Anwendung durchspielen. Alle so gemachten Erfahrungen sollte man sich sofort notieren. Kriterien sind beispielsweise:
- Unklare Bezeichnungen an der Oberfläche
- Welche Oberflächen-Elemente waren schwierig zu finden?
- Sind häufig genutzte Anwendungsfälle mit kurzen Mauswegen und wenigen Klicks durchführbar?
- Ist immer klar, wo man sich gerade befindet?
- Wo war unklar, wie man weitermachen muss?
Anmutung der Oberfläche
Für eine hohe Akzeptanz bei den Anwendern ist es wichtig, dass Optik und Verhalten der Anwendung ein positives Gefühl vermitteln. Das ist natürlich ein subjektives Kriterium und lässt sich nur schwer in eine formale Anforderung gießen. Jedoch sollte man den Anbietern mitteilen, dass die Anmutung bei der Auswahl der Software eine Rolle spielt und man sie bewerten wird.
Die Einschätzung sollten durch mehrere Personen erfolgen, z.B. nach Schulnoten, aus denen dann pro Produkt der Durchschnitt gebildet wird. Der Vergleich der Produkte verschiedener Anbieter oder auch mit ganz anderen Produkten trainiert die Wahrnehmung und verschafft ein tieferes Verständnis dafür, warum eine Anwendung als „moderner“ erscheint als eine andere.
Schutz vor Fehlern durch die Benutzer
Die Anwendung sollte für Eingaben Plausibilitätsprüfungen haben. Eine Rückgängig-Funktion wie in Office-Programmen wird es in der Regel für die Eingabewerte in einem Feld geben, jedoch gibt es sie selten für ganze Bearbeitungsschritte.
Barrierefreiheit
Für Menschen mit Behinderungen gibt es eine Vielzahl von unterstützenden Technologien, die es ihnen ermöglichen, Software zu nutzen. Dazu gehören Screenreader, Braillezeile, Vergrößerungssoftware, Kontrastverbesserer und Spracheingabe. Doch solche Technologien funktionieren nicht mit jeder Anwendung, oft müssen bestimmte technische Voraussetzungen gegeben sein, damit beispielsweise ein Screenreader die Inhalte der Oberfläche auslesen und vorlesen kann. Auch ist die vollständige Tastatur-Bedienbarkeit der Anwendung meistens Grundvoraussetzung für ein sinnvolles Arbeiten, da ein blinder Mensch allein mit der Maus keine Chance hat.
Sofern die Anforderung besteht, behinderten Menschen die Nutzung zu ermöglichen – was insbesondere bei Behörden und öffentlichen Stellen oft der Fall sein dürfte – , muss die Anwendung bestimmte Voraussetzungen erfüllen. Dafür gibt es Standards, in Deutschland wird oft die Barrierefreie-Informationstechnik-Verordnung (BITV 2.0) herangezogen, international die Web Content Accessibility Guidelines (WCAG) des W3C. Hierbei ist jedoch zu beachten, dass sich die Forderungen der BITV und der WCAG stark an Websites orientieren und damit für Geschäftsanwendungen, auch wenn sie browserbasiert sind, nur teilweise relevant sind. Dieser Umstand sollte sich dann in den Anforderungen an die Software niederschlagen: Es wäre unsinnig zu verlangen, dass eine Anwendung die Kriterien der BITV oder der WCAG komplett erfüllt. Vielmehr sollte die Anwendung die Kriterien erfüllen, die für eine Geschäftsanwendung relevant sind.
Wenn bereits konkrete unterstützende Technologien im Einsatz sind, sollte zusätzlich gefordert werden, dass die Anwendung mit diesen Technologien umgehen kann. Beispiel: Die Anwendung muss den Screenreader NVDA 2019.1.2 unterstützen.
Zuverlässigkeit
Hochverfügbarkeit
Sofern notwendig kann hier die Frage nach Lösungen für Hochverfügbarkeit stehen. Sie stellen sicher, dass das System auch dann noch nutzbar ist, wenn eine Komponente ausgefallen ist, z.B. die Datenbank oder ein Anwendungsserver. Das ist in der Regel jedoch mit deutlich höheren Kosten verbunden, so dass genau abgewogen werden sollte, ob es wirklich notwendig ist.
Wiederherstellung nach Systemausfällen
Lassen Sie sich die Konzepte zur Wiederherstellung nach einem Ausfall erläutern. Wie erfolgt die Sicherung der Daten? Wie groß ist der Zeitraum des Datenverlusts, wenn eine Sicherung eingespielt werden muss?
Sicherheit
Mandantenfähigkeit und Berechtigungskonzept
Abhängig von der Organisationsstruktur im Unternehmen und ggf. auch von rechtlichen Anforderungen her kann es notwendig sein, die Daten in unterschiedlichen Mandanten zu halten. Damit sind die Daten nur innerhalb der entsprechenden Organisationseinheit sichtbar, nicht jedoch für andere Organisationseinheiten. Lassen Sie sich deshalb das Mandantenkonzept erläutern, sofern benötigt.
Innerhalb eines Mandanten wird der Zugriff auf die Daten in der Regel über das Berechtigungssystem gesteuert. Hier werden Rollen mit bestimmten Rechten definiert, um Daten zu lesen und/oder zu schreiben und um Aktionen auszuführen. Lassen Sie sich das Berechtigungskonzept erläutern.
Umgang mit Sicherheitslücken
In praktisch jeder Anwendung lassen sich Sicherheitslücken finden, das ist der hohen Komplexität der heutigen Systeme geschuldet. Das alleine ist noch kein Makel. Entscheidend ist vielmehr, wie der Anbieter damit umgeht: Sucht er regelmäßig nach solchen Schwachstellen bzw. lässt er danach suchen? Werden entdeckte Schwachstellen bereinigt und publiziert? Lassen Sie sich vom Anbieter erläutern, wie er mit Sicherheitslücken umgeht.
Wartbarkeit
Update-Konzept
Lassen Sie sich vom Anbieter das Konzept erläutern, mit dem die Anwendung auf dem neuesten Stand gehalten wird. Gibt es Major und Minor Releases? Patches? In welchem Abstand werden sie herausgegeben? Wie ist der Aufwand, sie einzuspielen (on-premise).
Release-Sicherheit von Änderungen
Lassen Sie sich vom Anbieter erläutern, welche Änderungen am System releasesicher sind. Das heißt: Welche Änderungen können vorgenommen werden, ohne dass es bei den Updates zu Mehraufwänden kommt, um die Änderungen nachzuziehen?
Oft gilt: Werden viele Anpassungen vorgenommen, wird es schwieriger, auf aktuelle Versionen der Software zu wechseln. Reduzieren Sie daher Änderungen auf das absolut notwendige Minimum. Sofern sie in Ihren Anforderungen flexibel sind, orientieren Sie lieber Ihre Prozesse an den Vorgaben der ausgewählten Software als umgekehrt.
Portierbarkeit
Export der Daten bei Ende des Betriebs
Bei Ende des Betriebs sollte es möglich sein, die Daten aus der Anwendung zu exportieren, um sie weiterhin verfügbar zu haben oder um sie in ein Nachfolge-Produkt übernehmen zu können (eine solche Übernahme ist in der Regel nur nach einer aufwändigen Konvertierung möglich, die dann kundenindividuell durchzuführen ist)