Quality Engineering geht jeden etwas an

Thomas Karl
NEW IT Engineering
Published in
5 min readMar 28, 2022

--

QUALITÄT IN SOFTWARE ALS ZENTRALER TAKTGEBER UNSERER ZEIT

Software ist zu einem Bestandteil unseres Lebens geworden — und wird in Zukunft noch mehr an Bedeutung gewinnen. Egal ob Smartphone, Fitnessarmband, Navigationssystem, Auto, Fahrkartenautomat, die Kasse im Supermarkt, der Rechner am Arbeitsplatz oder andere alltägliche Dinge: All dies funktioniert nur dann wie gewünscht, wenn die zugehörige Software fehlerfrei arbeitet. Fehler werden nicht mehr einfach so verziehen — Qualität ist die zentrale Anforderung an Software geworden!

Qualität ist eine berechtigte und notwendige Anforderung an jede Art von Softwareapplikation, denn Software ist ein zentraler „Taktgeber“ in unserem täglichen Sein. „Quality Engineering“ ist die Disziplin, die im gesamten Entwicklungsvorgehen die Fäden zusammenhält, um ein effizientes Qualitäts-Setup zu etablieren. Der wirtschaftliche Nutzen des Quality Engineering ist somit sehr groß: Qualität muss stimmen, da ein Nutzer stets die Möglichkeit hat, bei der Konkurrenz ein vergleichbares Produkt zu finden. Softwarequalität bezieht sich dabei nicht nur auf die Funktionalität, sprich den fachlich korrekten Ablauf eines Programms. Es gilt auch die Qualitätsanforderungen hinsichtlich der Performance und Kompatibilität ebenso wie die der Wartbarkeit und Bedienbarkeit („Usability“) zu berücksichtigen. In der öffentlichen Diskussion ganz weit oben ist vor allem das Thema Sicherheit — sowohl der Anwendung als auch der erfassten Daten.

Wieso Quality Engineering?

Das Erreichen all dieser Qualitätsanforderungen muss daher über den gesamten Softwareentwicklungszyklus hinweg effizient sichergestellt werden. Gleichzeitig wollen und benötigen Nutzer immer schneller und öfter Updates ihrer Programme und Apps — und natürlich auch neue Software. Softwaretesten ist und bleibt also wichtig und richtig. Dreimonatige Testphasen, wie sie noch vor zehn Jahren in vielen Firmen gang und gäbe waren, sind aufgrund der gravierend geänderten Nutzeranforderungen allerdings längst nicht mehr umsetzbar. In der Realität werden dem Kunden die Softwareupdates mittlerweile häufig in sehr hoher Frequenz zur Verfügung gestellt. Daher benötigen wir bei der Softwarequalitätssicherung völlig neue Ideen, innovative Lösungen und vor allem schnelle Hilfe! Wir benötigen Qualitätsingenieure — „Quality Engineers“!

Tester vs. Quality Engineer

Tests in einem klar vorbestimmten Zeitrahmen nach endgültig definierten Anforderungen zu planen und auszuführen, entspricht nicht mehr der Realität im agilen Zeitalter. Vor der Agilität hat ein Tester nach Erreichung eines „Quality Gate“ zunächst die Anforderungen und später die fertig entwickelte Software erhalten. Erst dann wurde (vom Entwicklertest abgesehen) die Qualität der Software geprüft. Häufig war es ein Ergebnis dieses Vorgehens, dass Abweichungen von der Qualität spät entdeckt wurden. Die Folge: Die erforderliche Qualität wurde in Form von Fehlerbehebung nachträglich in die Software „hineinentwickelt“.

Modernes Quality Engineering versteht sich dagegen als integraler Bestandteil des Softwareentwicklungsprozesses (SDLC). Quality Engineers sind im gesamten Prozess präsent — von der Anforderungsdefinition über die Entwicklung und Test bis hin zur Produktivsetzung — und stellen in den einzelnen Phasen die passenden Qualitätssicherungsmaßnahmen bereit. In den schnellen, agilen Releasezyklen stellt das eine besondere Herausforderung dar, da nur wenige Tage zwischen der Definition der Anforderungen, der Entwicklung und der Implementierung der neuen Software liegen. Die Vorstellungen und Wünsche, welche die Software zu erfüllen hat, muss der Quality Engineer umfassend verstehen und zum richtigen Zeitpunkt, mit den richtigen Methoden, Werkzeugen und Maßnahmen die Umsetzung dieser Anforderungen sicherstellen.

Abb. 1: Quality Engineering in der traditionellen und agilen Softwareentwicklung

Holistische Strategien entwickeln

Von Beginn des Entwicklungsprozesses an ist es die Aufgabe des Qualitätsmanagers oder Quality-Engineering-Coaches, eine holistische Strategie zu entwickeln, mit der dann die Qualitätsziele des Unternehmens in der Produktentwicklung beschrieben werden können, und wie der Weg aussieht, auf dem diese erreicht werden können. Hierzu wird definiert, zu welchen Zeitpunkten des Entwicklungszyklus welche Maßnahmen zur Qualitätssicherung (QA) eingesetzt werden — und wie diese Maßnahmen durch die Unterstützung geeigneter Werkzeuge, etwa zur Testautomatisierung oder für das Testdatenmanagement, sinnvoll umgesetzt werden können.

Weiterhin beschreibt der Quality Engineer, mit welchen Methoden Tests von Anforderungen abgeleitet werden und wie Testdaten und Umgebungen für die Tests bereitgestellt werden. Als Automatisierungsexperte kümmert er sich dann sowohl um die fachliche als auch um die technische Einführung der Qualitätsstrategie. Als Architekt verantwortet er die Inbetriebnahme, Wartung und Ablösung der Werkzeuge, die zur Unterstützung der Maßnahmen benötigt werden.

Schließlich ist der Quality Engineer verantwortlich für die Ausführung der vorgesehnen Methoden und Maßnahmen, wobei er kontinuierlich an der Verbesserung der Prozesse beteiligt ist. Er agiert dabei als Vermittler im Team, kommuniziert auf Augenhöhe mit Entwicklern, Fachexperten und Kunden, und hinterfragt Entscheidungen frühzeitig. Das Verständnis der Quality Engineers vom Produkt sowie das schnelle Feedback sind kritisch, damit die Qualität des Produkts und die Release Deadline nicht gefährdet werden. Das Erfolgsgeheimnis liegt dabei in der engen Zusammenarbeit aller Kollegen im Team.

Unterschiedliche Karrierepfade im Quality Engineering

In einem Quality-Engineering-Team sind Kollegen mit technischen Skills und Fachexpertise sowie Kollegen, die organisatorisches Talent und ein Auge fürs Detail mitbringen, gleich geschätzt (siehe Abbildung 2).

Abb 2: Quality Engineering: Fachkenntnisse und berufliche Ausrichtungen

Das Streben nach Qualität ist die Motivation, die alle Quality Engineers antreibt. Ihre Fähigkeiten sind dabei sehr divers. Die technisch Versierteren können einen großen Beitrag in der Testautomatisierung leisten. Die methodisch Orientierten finden sich besser im Testdesign, der Testplanung sowie der Teststrategie zurecht.

Auf jeden Fall werden im Qualitätsmanagement Mitarbeiter mit ausgeprägter Führungsstärke gebraucht. Ein Quality Engineer mag auf die Testautomatisierung spezialisiert sein, wird aber immer wieder mit Testvorgehensweisen und Qualitätsmanagement konfrontiert sein. Somit lernen Kollegen mit unterschiedlichen Stärken voneinander, entwickeln ihre Fähigkeiten gemeinsam weiter und unterstützen sich gegenseitig, um Software in bester Qualität zu liefern. Sie unterstützen das ganze Team mit Schulungen und Beratung zur Qualität.

Die Tätigkeit eines Quality Engineers kann also sehr unterschiedlich sein. Was Mitarbeiter bei Accenture daran spannend finden, machen die vier ganz unterschiedlichen Beispiele in den Infokästen deutlich. Letztlichbedeutet Quality Engineering: umdenken, anpassen und neu erfinden. Organisiert in einer Community, gestalten heute bei Accenture über 400 Quality Engineers im deutschsprachigen Raum die Zukunft von Quality Engineering mit. Über Länder- und Hierarchiegrenzen hinweg werden Informationen und Ideen ausgetauscht, um gemeinsam die Zukunft der Softwareentwicklungsbranche und letztlich unseres Alltags mitzugestalten. Dabei sind Quality Engineers stets am Puls der Zeit und treten jeder Herausforderung zuversichtlich entgegen.

Autoren: Thomas Karl, Nico Liedl, Bettina Hillringhaus, Teodora Petrova

--

--

Thomas Karl
NEW IT Engineering

Author, Innovator, Public Speaker & Executive Advisor @AccentureDACH. I help organizations drive their digital transformation. Find me https://www.linkedin.com/