Unsere Welt zu verstehen:



 Beitrag 0-74
 
 

 
Wie effektiv arbeiten Tester und Testwerkzeug?

 
 
Projekte, die eine Modernisierung unternehmenskritischer Software-Applikationen großer Unternehmen zum Ziel haben, werden größer und größer (und verursachen heute Kosten, die gar nicht so selten 3-stellige Millionenhöhe erreicht).
 
Einen ganz beträchtlichen Teil solcher Kosten verursacht der Test der neuen Lösungen: Typischerweise arbeitet daran ein großes Team (in den Fällen, die ich beobachten konnte, bis zu 50 Personen) über Jahre hinweg. Natürlich versucht der CIO des Auftraggebers dann hin und wieder, kostengünstigere Dientleister zu finden. Das gängige Verfahren: Eine neue Ausschreibung aufgesetzt mit dem Ziel, zu prüfen,
  • ob der gegenwärtige Dienstleister nicht zu teuer oder zu wenig kreativ geworden ist
     
  • oder ob es konkurrierende Anbieter gibt, die ihn zu unterbieten in der Lage sind.

Sehr oft steht am Ende einer solchen Ausschreibung der Austausch des Anbieters, d.h. der Austausch des gesamtem Teams von Testern und Testmanager.
Dies aber kann gefährlich sein, denn
  • erstens geht dabei eine große Menge von Knowhow verloren (die neuen Tester müssen sich ja erst wieder mit den zu testenden Applikationen bekannt machen)
     
  • und zweitens ist zunächst noch völlig offen, wie effektiv das neue Team denn nun wirklich arbeiten wird.

Mit anderen Worten: Die Wahrscheinlichkeit, dass der Befreiungsschlag gelingt, ist ebenso groß wie die Wahrscheinlichkeit, dass er misslingt. Rechnet man die Kosten der notwendigen Einarbeitung des neuen Teams hinzu — Kosten also, die gar nicht anfielen, wenn man beim alten Team geblieben wäre —, so ist die Wahrschein­lichkeit, dass solcher Wechsel unterm Strich eher Verlust denn Gewinn bedeutet, ziemlich hoch.
 
Andererseits:
 
Das Team über Jahre hinweg einfach arbeiten zu lassen, ohne zu versuchen, die Effektivität des Dienstleisters zu maximieren,
 
wäre ganz sicher auch nicht richtig.

 
Was also sollte man tun?
 
 
 
Die naheliegenste Lösung ist folgende:
 
Sobald ein Testteam über längere Zeit hinweg eine gewisse Größe haben muss, sollte man es aufteilen in zwei etwa gleich große Teams,
  • unter der Regie zueinander konkurrierender Dienstleister
     
  • u n a b h ä n g i g  voneinander  d i e s e l b e  Software testen.
     
  • Wenigstens eines dieser Teams sollte seine Testwerkzeuge selbst wählen dürfen.
Ihre Effektivität sollte einem strengen Monitoring durch den Auftraggeber unterliegen, so dass der z.B. alle 6 Monate beiden Teams mitteilen kann, wie effektiv jedes von ihnen im Vergleich zum jeweils anderen gearbeitet hat (Effektivität = Kosten dividiert durch die Summe der Gewichte vom Team aufgedeckter Fehler in den zu testenden Applikationen).
 
 
 
Vorteile dieser Lösung:
  • Keiner der beiden Auftragnehmer kann sich leisten, unerfahrende Leute einzusetzen oder ungeeignetes Werkzeug zu nutzen (denn täte er das, würde sofort erkennbar werden, wie seine Effektivität verglichen mit der seines Konkurrenten zurückgeht).
     
  • Sobald eines der beiden Teams deutlich weniger effizient arbeitet als das andere, sieht man, dass es höchste Zeit wird, es auszutauschen.
     
  • Kosten für den Neuaufbau von Knowhow werden so minimiert, und nie entsteht eine Situation, in der zu wenig gut eingearbeitete Tester verfügbar sind.
     
  • Schon im jeweils eigenen Interesse wird so jedes Team sich optimale Werkzeuge aussuchen und wird bestrebt sein, das eigene Vorgehen ständig zu überdenken und effektiver zu gestalten.
     
  • Diese Lösung ist kostenneutral.
     
  • Sie minimiert die Wahrscheinlichkeit, dass gelegentlicher Austausch des Dienstleisters zu einer gravierenden Fehlentscheidung wird.

 
Man bedenke: Da die Zahl beim Test gefundener Fehler nicht nur davon abhängt, wie geschickt die Tester vorgehen, sondern auch davon, wie gut die Entwickler gearbeitet haben, dürfte diese Lösung der einzige Weg sein, über den ein CIO erreichen kann, dass die Gelder, mit denen er den Test finanziert, optimal eingesetzt sind.