Performance, das Stiefkind der Softwareentwicklung

Nach welchen Kriterien treffen Sie Ihre Entscheidungen beim Softwarekauf?

Sind wir mal ehrlich: Zumeist unterscheiden sich unsere Verhaltensmuster hier nicht wirklich von jenen an der Fleischtheke. Auf den Preis kommt es an, den Look und die Menge. Im Vordergrund stehen also die Äußerlichkeiten. Das ist bei der Software ebenso wie beim Fleisch, mal ist es das Gewicht und mal die Menge der Funktionen. Wie es um die inneren Werte bestellt ist, reklamieren wir erst, wenn das Kind in den Brunnen gefallen ist, das Gericht nicht schmeckt oder auf den Magen schlägt, die Software nicht tut, was sie verspricht.

Wen wundert es, dass sich umsatzgetriebene Unternehmen an diesen Kundenpräferenzen orientieren. Das gilt für die Landwirtschaft ebenso wie für die Softwareindustrie . Und so passiert es, dass Softwarelösungen mit der Funktionsvielfalt beworben werden und Hersteller bei wachsendem Funktionsumfang von Release zur Release hetzen. Nur neue Funktionen lassen sich in Erträge wandeln!

Die meisten IT-Managern sehen eine ausreichende Lösungs-Performance als gegeben an. Diesem Aspekt Zeit und Aufwand zu widmen, wird zuerst als eine Verzögerung der Marktbereitstellung verstanden, dem Prinzip Hoffnung folgend, dass eventuell auftretende Schwierigkeiten durch Hardware und nachträgliche Optimierung beseitigt werden können. Die »inneren Werte« bleiben somit oft auf der Strecke.

Mangelhafte Software-Performance als unternehmenskritischer Faktor

Ihr Auto fährt nur 130 und nicht 190 km/h. Was soll’s, wenn es nicht immer mit Volldampf zur Sache geht? Eigentlich gar nicht so schlimm! So könnte man denken.

In vielen Fällen trifft dies auch für Softwaresysteme zu, leider aber nicht immer! Solange eine softwarebedingte Zwangspause nur nervt und mit Kaffe überbrückt werden kann, kein Problem! Werden die Geschäftsprozesse aber soweit verzögert, dass deren Ablauf grundsätzlich beeinträchtigt wird, gegebenenfalls ganze Systemfunktionen ausfallen, weil diese in ein Timeout laufen, dann wird es kritisch!

Aus unserer täglichen Praxis kennen wir Fälle, wo Lieferungen aus der Frist laufen, weil die zugehörigen Belege nicht rechtzeitig erstellt werden können, wo Chefs auf ihre Reports verzichten müssen, weil Datenbankabfragen nie zurückkehren und Kunden falsche Lieferaussagen erhalten, weil Bereitstellungstermine laufzeitbedingt nur einmal wöchentlich berechnet werden können. In all diesen Fällen ist die Software-Performance keine »Nice-to-have-Option« mehr, sondern ein unternehmenskritischer Faktor!

Lösungsansätze zum Performance-Management

Alle Bemühungen zur Sicherung der Applikations-Performance werden unter dem Begriff des »Software Performance Engineerings« zusammengefasst. Da alle Teile eines IT-Systems Einfluss auf dessen Gesamtleistungsfähigkeit haben, erzielt das Software Performance Engineering optimale Ergebnisse, wenn es dem vielgerühmten »ganzheitlichen Ansatz« folgt. In das Performance Engineering sind folglich sowohl Hard- wie auch Software mit all ihren Komponenten zu integrieren, den gesamten Lebenszyklus einer Lösung betrachtend, von der Planung über das Design, die Implementierung bis hin zum Betrieb.

Soweit die logisch konsistente Theorie. Wie so oft folgt die Praxis aber leider nicht der Logik. Dies gilt hier insbesondere unter der Hatz des »Time to Market«. So kommt es, dass von einem klassischen, vorausschauenden Performance Engineering in vielen Fällen nicht mehr die Rede sein kann, sondern nur noch von nachgelagerten Performance-getriebenen Nachbesserungen, dem Performance Tuning.

Software-Performance-Tuning

Einem aufmerksamen Beobachter der IT-Szene eröffnet sich schnell, dass die meisten Geschäftsanwendungen zumindest selektiv geschäftsrelevante Performance-Defizite aufweisen, oft in einer »Take-it-or-leave-it-Situation« für Anwender und Betreiber.

Gelangt Standardsoftware zum Einsatz, besteht in der Regel keine Einflussmöglichkeit auf das Software-Design. Aber auch bei der Verwendung eigenentwickelter Individuallösungen sehen sich die Anwender oft vor hohen Barrieren, wenn die technischen Dokumentationen lückenhaft und die technischen Erfahrungsträger nicht mehr zugreifbar sind.

Die Handlungsoptionen eines umfassenden Software Performance Engineerings stehen deshalb nicht mehr zur Verfügung. Zu Schadensbegrenzung verbleibt deshalb nur noch das Nachbessern in Form des Performance-Tunings. Im »Idealfall« sollte dies ohne die Notwendigkeit eines Zugriffs auf die Quelltexte im Black-Box-Prinzip geschehen.

In Anbetracht des breit angelegten Lösungsbedarfs ist es erstaunlich, dass am Markt kaum entsprechende Leistungsanbieter zu finden sind. OdiSys nimmt hier mit seinem Callidior-Framework zur Leistungsoptimierung von Business-Applikationen eine gewisse Sonderstellung ein.