Äusserliche Aspekte der Software-Qualität

Äusserliche Aspekte der Software-Qualität

In diesem Teil es Blogs geht es um die von aussen sichtbaren oder wahrnehmbaren Aspekte von Software-Qualität. Im dann kommenden Teil betrachten wir die inneren Aspekte rund um den Software Code.

Je nach Stakeholder-Gruppe wird der Schwerpunkt von Software-Qualität auf andere Aspekte gelegt. Im Folgenden werden einige äusserliche Aspekte der Software-Qualität betrachtet. Die Auflistung ist nicht vollständig, gibt jedoch schon einen guten Überblick.

Funktionsumfang

Ein wichtiger Aspekt der Software-Qualität ist für viele Menschen der Funktionsumfang einer Software. Lange Zeit hat man darunter meist den maximal möglichen Funktionsumfang verstanden – dementsprechend waren auch die Auswahlverfahren durch Maximal-Listen geprägt.

Zwischenzeitlich hat sich mehr und mehr die Erkenntnis durchgesetzt, dass die “eierlegende Wollmilchsau” nie benötigt wird und ein unnötig hoher Funktionsumfang sich außerdem negativ auf weitere Aspekte der Software-Qualität (wie z.B. Usability, Performance und Wartbarkeit) auswirken kann.

Wesentlich sinnvoller ist es deshalb, auf der Grundlage von relevanten Anwendungsfällen die heute und in absehbarer Zukunft tatsächlich benötigten Funktionalitäten zu ermitteln und diese entsprechend ihrer jeweiligen Relevanz zu gewichten. Damit hat man eine gute Grundlage, um den Funktionsumfang einer Software konkret zu bewerten.

Performance als äusserlicher Aspekt der Software-Qualität

Fast schon selbstverständlich und dennoch wichtig zu erwähnen: Der Aspekt „Performance“. Niemand wartet gerne; insofern sollte die Software so performant sein, dass sie die üblichen Aufgaben schnell genug ausführt, um keine Wartezeiten zu erzeugen. Die Performance sollte sowohl beim aktuellen Mengengerüst als auch hinsichtlich eines möglichen Wachstumspfades betrachtet werden. Wichtig dabei ist, dass die gewünschte Performance mit vertretbaren Ressourcen realisiert werden kann und keinen (teuren) Ausbau der benötigten Hardware erfordert.

Jakob Nielsen sagte bereits 2010, dass Ladezeiten von Websites nicht länger als 1 Sekunde sein dürfen. Heutzutage dürfen wir erwarten, dass Programme innerhalb von 200ms oder weniger reagieren. Eine längere Reaktionszeit ist im wahrsten Sinne des Wortes uner-”wartet”.

Benutzerfreundlichkeit

Ein zunehmend wichtiger Aspekt der Software-Qualität ist die Benutzerfreundlichkeit einer Software – vor allem dann, wenn diese Software nicht nur von einigen wenigen Experten genutzt wird, sondern auch Gelegenheitsnutzern, die die Software nur selten oder auch nur für einen eingeschränkten Anwendungsfall benötigen.

UX Design Draft

Wenn die Software keine intuitive Nutzung ermöglicht, ist die Hürde für diesen Anwenderkreis häufig zu hoch. Um eine intuitive Nutzung zu ermöglichen, sollte es daher möglich sein, die Oberfläche an den jeweiligen Bedarf bzw. Anwendungsfall anzupassen, um keine unnötigen Funktionalitäten anzubieten.

Ausserdem ist es hilfreich, wenn bei der Gestaltung der Oberflächen allgemein übliche Usability-Kriterien zugrunde gelegt und keine “Experimente” gemacht werden. Damit entspricht die Software der Erwartung, die die Anwender aufgrund gängiger Design-Kriterien haben, und vermeidet somit unerwartetes Verhalten.

Portabilität

Die Portabilität einer Software bezieht sich auf ihre Fähigkeit, problemlos von einer Umgebung zur anderen zu wechseln. Eine portierbare Software kann reibungslos auf verschiedenen Systemen oder Plattformen laufen, sei es auf unterschiedlichen Betriebssystemen, Hardwarekonfigurationen oder Cloud-Diensten. Dieses Qualitätsmerkmal ermöglicht es, Kosten und Aufwand für Anpassungen an verschiedene Umgebungen zu reduzieren.

Eine gut portierbare Software ist flexibel und unabhängig von spezifischen technologischen Einschränkungen. Sie erleichtert eine reibungslose Einführung und Wartung, was die Agilität des Unternehmens steigert und die langfristige Anpassungsfähigkeit der Software gewährleistet.

Für den Fall, dass die Software auf verschiedenen Plattformen betrieben wird, ist sicherzustellen, dass sie sich auf keiner der Plattformen unerwartet, also anders als auf anderen, verhält.

Technologie Stack

Unter Umständen kann es sinnvoll sein, dass ein weit verbreiteter Technologie Stack zum Einsatz kommt; das hat zumindest den Vorteil, dass es eine grosse Zahl von Fachleuten gibt, die damit umgehen können, so dass man nicht von einigen wenigen abhängig ist.

Wenn ein Kunde darüber hinaus beabsichtigt, Anpassungen und/oder Erweiterungen der Software selbst vorzunehmen, wird er darüber hinaus auch Wert darauflegen, dass der Technologie Stack zum Know How der eigenen Fachleute passt.

Anpassbarkeit

Für die Auswahl und den Einsatz von Software ist ein massgeblicher Aspekt der Software-Qualität, wie gut, schnell, komfortabel und günstig sich diese Software an den eigenen Business-Case anpassen lässt. Noch wichtiger: Wie gut lässt sich die Software auch an die laufenden Veränderungen des eigenen Business-Cases anpassen? 

In der heutigen Zeit wird guter Kundenservice zum Wettbewerbsvorteil, weil die Kundenerwartungen entsprechend hoch sind. Wenn Unternehmen auf die Verbesserung des Kundenservices verzichten müssen, weil die Anpassung der dafür notwendigen Software zu aufwändig oder teuer ist, werden diese Unternehmen ins Hintertreffen geraten. Denn der Wettbewerb ist möglicherweise in der Lage, die kundenbezogenen Prozesse anzupassen und damit einen Wettbewerbsvorteil herauszuarbeiten.

In der heutigen VUCA[1]-Welt wird es überdies immer schwieriger, vorherzusehen, welche Massnahmen von den Anwendern der Software angenommen bzw. gefordert werden. Das bedeutet: Es braucht maximale Flexibilität und Einfachheit, um ohne grossen Aufwand Test-Applikationen zur Akzeptanzprüfung an die Zielgruppen ausgeben zu können.

Aus diesem Grund ist die Anpassung der Software notwendig, ohne dafür Spezial- oder Expertenwissen zu benötigen. Nur so kann eine angemessene Anzahl von Personen schnell und günstig Änderungen vornehmen. 

[1]  Volatility (Volatilität), Uncertainty (Unsicherheit), Complexity (Komplexität), Ambiguity (Mehrdeutigkeit)

Ausblick auf die nächste Folge

In der nächsten Folge beleuchten wir die verschiedenen Aspekte der Softwarequalität aus der Perspektive des Software-Codes.


Die Autoren

Jürgen Burger ist Gründer und Geschäftsführer von SIMIO.

Er verfügt über eine langjährige Beratungserfahrung und eine umfassende Kenntnis des Anbietermarktes im Kontext Produktkommunikation. In diesem Zusammenhang unterstützt er Unternehmen immer wieder auch bei der Auswahl von Software-Systemen.

Ralf Trapp ist Gründer der tronet GmbH und geschäftsführender Gesellschafter der procelo GmbH.

1992 hat Ralf während des Studiums seine erste Softwarefirma gegründet. Seitdem lässt Ihn die Verbesserung der Software-Entwicklung nicht mehr los und er ist leidenschaftlicher Evangelist für bessere Software.


© procelo GmbH 2024