Ich arbeite seit vielen Jahren als Tester und stoße oft auf die Notwendigkeit, die Kosten des Testens zu rechtfertigen. Da die Durchführung einfacher automatischer oder manueller Tests zu einer Art Standard geworden ist, werden komplexere Tests und Aktivitäten aus wirtschaftlicher Sicht schwer zu rechtfertigen sein, so dass sie in Projekten zur Seite geschoben werden. Natürlich sage ich nicht, dass sich die Situation immer so darstellt; aber mit jahrelanger Erfahrung in vielen kleineren Projekten habe ich diese Art von “handwerklicher” Führungshaltung beobachtet.
Ein solches Management des Softwareentwicklungsprozesses basiert auf mehreren talentierten “Tester-Handwerkern”, von denen der gesamte Testprozess abhängt. Dies ist nicht eindeutig falsch; es bedeutet jedoch, dass alle Testaktivitäten von einer Gruppe von Testern durchgeführt werden, die manuelle, automatisierte, Sicherheits- oder Leistungstests durchführen und alle Tests verwalten. Die Hauptfrage ist – hat ein so kleines Team alle erforderlichen Kompetenzen? Vor allem, wenn man bedenkt, dass während des Projekts wahrscheinlich irgendwann einmal hochspezialisierte Leistungs- oder Sicherheitstester und andere Experten benötigt werden, aber sie dauerhaft bei uns zu beschäftigen, ist ineffizient in Bezug auf die Wirtschaftlichkeit.
Stillstände und “Berge” (Überschüsse) im Projekt
Ein weiteres Problem ist die Tatsache, dass Anzahl und Art der Aufgaben während der Projektentwicklungsphase schwanken können. Die Annahme, dass drei Mitarbeiter im Laufe des Projekts immer den gleichen Arbeitsaufwand haben werden, ist einfach falsch. Stillstände und Überschüsse in Projekten sind ein ganz natürliches Phänomen.
Im ersten Fall können wir davon ausgehen, dass Mitarbeiter, die nichts zu tun haben, andere Tätigkeiten übernehmen, für die sie während der Projektentwicklung keine Zeit haben, wie z.B. Ordnung schaffen. Auf den ersten Blick macht es Sinn – die einzige Frage ist, ob die zu diesem Zeitpunkt verbleibenden Aktivitäten wirklich notwendig sind. Es ist viel besser, bewährte Verfahren anzuwenden, die nicht zu Situationen führen, in denen solche Maßnahmen notwendig sind. Natürlich bleibt die Frage der Ausbildung und Selbstverbesserung bestehen, aber ich werde diesen Fall jedem Unternehmen überlassen, sich subjektiv damit zu befassen.
Viel schwerfälliger sind diese “Berge”: So sind beispielsweise bei drei Testern, die an einem Projekt arbeiten, unsere Ressourcen zwangsläufig begrenzt. Nehmen wir an, dass unser Testteam damit gerechnet hat, Aufgaben zu bewältigen, die zu erledigen waren. Das Team hat die notwendigen Vorbereitungen getroffen, ebenso wie alle anderen Aktivitäten. Leider lief die vorherige Phase des Projekts vor der Testphase lange, und es stellt sich heraus, dass die für zwei Wochen geplanten Tests innerhalb einer Woche durchgeführt werden sollten, und es ist absolut unmöglich, die Frist zurückzustellen. Deshalb müssen unsere drei Mitarbeiter die Arbeit von sechs Personen erledigen.
Was kann in dieser Situation getan werden? Wir können Tester nach Möglichkeit aus weniger dringenden Projekten heranziehen. Dass Menschen Überstunden machen, ist eine weitere Lösung. In diesem Fall wäre der Umfang der Überstunden jedoch sehr groß und würde weit über 50% der regulären Arbeitszeit liegen. Dies wird nicht nur die Kosten erhöhen, da Überstunden höhere Raten bedeuten, sondern auch dazu führen, dass die Tester überlastet werden. Dabei ist zu beachten, dass ein überlasteter Tester nicht so effizient arbeitet wie ein ruhender Mitarbeiter. Das bedeutet, dass selbst wenn unser Team versucht, alle Aufgaben termingerecht zu erledigen, dies keine Garantie für ein geeignetes Ergebnis gibt.
Industrieller, nicht handwerklicher Ansatz
Daher ist es notwendig, die Denkweise darüber, wie wir ein Testteam leiten, zu ändern und das Qualifikationsniveau der Mitarbeiter zu berücksichtigen. Ein Unternehmen, das das Handwerksmodell verwendet, benötigt den talentiertesten Tester, der über alle notwendigen Fähigkeiten verfügt, um auf dem richtigen Niveau zu arbeiten. In der Praxis ist es jedoch schwierig, ein solches Modell erfolgreich umzusetzen.
Wir müssen uns daran erinnern, dass ein Spezialist, der alle Kompetenzen aus allen Fachbereichen hat, wahrscheinlich nicht existiert. Selbst ein Tester mit langjähriger Erfahrung verfügt nur über die Kompetenzen und Fertigkeiten, die er aus Projekten gewonnen hat, an denen er mitgewirkt hat. Wenn ein Tester zum Beispiel 15 Jahre Erfahrung hat und vor 10 Jahren sehr gut im Testen war, aber seitdem keine Tests durchgeführt hat, hat er derzeit nicht wirklich ein gültiges Kompetenzniveau.
In einem traditionellen, handwerklichen Ansatz haben wir nur Zugang zu den spezifischen Fähigkeiten eines Testers oder einer Gruppe von Testern, und nicht immer, wenn wir sie brauchen.
Ein weiteres Problem ist, dass die Herausforderungen der Softwareentwicklung immer größer werden und der Anwendungsbereich immer größer wird. Es ist für Tester schwierig, ein Spezialist in jeder Fachrichtung zu sein. Ein Tester, der sich hervorragend mit Webtests auskennt, ist nicht unbedingt ein Spezialist für Big Data Tests. Natürlich sollte ein guter Tester mit Grundkenntnissen in der Lage sein, jedes Projekt zu bewältigen – aber wir müssen uns Fragen zur Effektivität seiner Arbeit stellen. Eine der Methoden zur Lösung dieser Art von Problemen ist das Testcenter of Excellence – spezialisierte Prüfabteilungen, die Tests als Dienstleistung für andere Abteilungen innerhalb des Unternehmens durchführen. Diese Lösung ist jedoch nur dann wirksam, wenn das gesamte Potenzial einer solchen Abteilung tatsächlich genutzt wird, z.B. wenn das Unternehmen über ein breites Portfolio von Projekten verfügt, die auf diese Weise unterstützt werden können. Andernfalls verursacht eine solche Abteilung Mehrkosten.
Kleinere Unternehmen oder solche, die nicht über eine ausreichende Anzahl von diversifizierten Softwareentwicklungsprojekten verfügen, können dieses Problem lösen, indem sie sich für Software Testing as a Service entscheiden.
Was ist TaaS?
Software Testing as a Service ist ein Outsourcing-Modell, bei dem bestimmte Aufgaben ausgelagert werden, anstatt bestimmte Spezialisten einzustellen. Das bedeutet, dass der Empfänger nicht von einem begrenzten Pool an Mitarbeiterkompetenzen Gebrauch macht, sondern von der Cloud seiner Qualifikationen profitiert. Auf diese Weise vermeiden wir eine Situation, in der ein älterer manueller Tester die automatischen Tests durchführt, die die Fähigkeiten eines jüngeren automatischen Testers erfordern, was unser manueller Tester leider nicht hat. Dies ist definitiv eine ineffiziente Nutzung des Potenzials des Mitarbeiters.
In diesem Modell werden die Tests nach Bedarf und wann immer erforderlich durchgeführt. Tests sollten jedoch skalierbar sein, ein hohes Maß an Unabhängigkeit aufweisen und den Kunden auch nicht mit Kosten für Tools, Hardware, Software, Mitarbeiterschulungen oder den Aufbau von Testumgebungen belasten. Auch der Einsatz von Cloud-basierten Tools bei der Arbeit ist gängige Praxis.
Dank Software Testing as a Service können wir alle Dienstleistungen rund um das Testen anbieten: von manuellen Tests über Automatisierung, Performance, Penetration oder sogar Verbesserung des Testprozesses bis hin zur Schulung der Mitarbeiter des Kunden.
TaaS – wie funktioniert es?
Die Form der Dienstleistung sollte für den Kunden so einfach wie möglich sein. Der Vertrag wird unterzeichnet, bevor die Details der Dienstleistung festgelegt werden. Anschließend sollte der Kunde alle Dokumente, Passwörter und andere Artefakte zur Verfügung stellen, die für die Durchführung des Testprozesses erforderlich sind. Theoretisch sollte seine Rolle an dieser Stelle enden. In der Praxis sieht es etwas anders aus, da Software Testing as a Service immer noch klassisches Testen ist, so dass der Service nicht ohne Kontakt zwischen dem Kunden und dem Dienstleister durchgeführt werden sollte. Effiziente Kommunikation und Wissensaustausch sind ein Muss, damit die erbrachte Dienstleistung von höchster Qualität ist. Der STaaS-Service wird durch die Präsentation der Ergebnisse in Form eines Berichts abgeschlossen.
Das obige Szenario ist ganz offensichtlich eine Vereinfachung, aber die Idee von Software Testing as a Service ist es, das Empfängerunternehmen zu entlasten, die Form der Zusammenarbeit bequemer und “störungsfrei” zu gestalten.
Zusammenfassung
Die IT-Umgebung verändert sich und das Testen muss sich mit ihr ändern. Es ist nicht möglich, dass das alte Modell mit einem einzigen “Handwerker”-Tester unsere Probleme löst. STaaS möchte flexibel, kostengünstig und mit den besten Lösungen für jedes Unternehmen, unabhängig von seiner Größe, arbeiten. Es ist eine große Herausforderung, aber der endgültige Effekt lohnt sich.