Anfang des 20. Jahrhunderts bedeutete Qualitätssicherung noch das Aussortieren von nicht funktionierenden Bauteilen in einer Produktionsanlage. Gut hundert Jahre später und in Anbetracht der rasanten Entwicklungen und der grossen technischen Sprünge ist es erstaunlich, dass unter Qualitätssicherung nach wie vor dieses alte Verständnis vorherrscht: «Der Tester ist dazu da, am Ende eines Produktionszyklus die wichtigsten Funktionen abzuklopfen. Damit ist die Sicherung der Qualität abgeschlossen.»
Warum reicht das heutzutage bei Weitem nicht mehr aus? Wie funktioniert Qualitätssicherung in einem schnellen, agilen Umfeld wie der Softwareentwicklung? Was bedeutet «Shift-Left» und weshalb ist dieser Ansatz mittlerweile essenziell für den Erfolg eines Unternehmens in der digitalen Welt?
Qualitätssicherung von Anfang an
Die Art und Weise wie Software entwickelt wird, hat sich in den letzten Jahren und Jahrzehnten stetig weiterentwickelt und gewandelt. Agile Methoden sind dabei nicht wirklich neu, finden aber immer mehr Einzug in alle möglichen Bereiche der digitalen Welt. Das ist ein Segen für die Qualitätssicherung. Weshalb? Weil die Qualitätsverantwortlichen und das Entwicklungsteam nicht erst warten müssen, um auf neue Bedürfnisse reagieren zu können. Dass ein Produkt grundsätzlich funktioniert, ist schon längst kein Qualitätsmerkmal mehr, sondern eine Mindestanforderung. Nur noch die Mindestanforderungen zu erfüllen, können sich aber maximal Monopolisten noch leisten. Um erfolgreich am Markt zu bestehen, muss das Produkt den hohen Qualitätsanforderungen und -erwartungen seiner Kundinnen und Kunden gerecht werden oder sie gar übertreffen. Dies kann nur gelingen, wenn ein gewisses Qualitätsbewusstsein und das Verständnis für diese neuen Anforderungen durch die Shift-Left-Methodik in das Entwicklungsteam getragen wird.
Shift-Left
Was bedeutet das in der Praxis?
Natürlich gibt es gängige Methoden wie Behaviour Driven Development (BDD) oder Test Driven Development (TDD), die diesen Shift-Left-Ansatz fördern. Doch die beste Methode nützt nichts, wenn dieses Qualitätsverständnis nicht in den Köpfen ankommt. Dabei sind alle Rollen und Verantwortlichkeitsebenen abzuholen, vom Management bis zu den Praktikanten. Accessibility, Performance, Reliability oder Security müssen auf allen Ebenen berücksichtigt, nichtfunktionale Anforderungen genauso wie funktionale Anforderungen spezifiziert, durchdacht und bewusst in die Entwicklung einbezogen werden. Das kann jedoch nur passieren, wenn das Bewusstsein und das Verständnis dafür vorhanden sind. Nur so kann sichergestellt werden, dass das richtige Produkt in der geforderten Qualität auf den Markt gebracht wird.
Reaktives und proaktives Testing
Selbstverständlich muss nach wie vor eine Kontrolle der Qualität wie bis anhin stattfinden: Das klassische, reaktive Testing wird immer gebraucht werden. Durch eine sinnvolle Einführung und einen Aufbau der Testautomation können Qualitätsingenieurinnen und -ingenieure entlastet und die freigewordenen Ressourcen nach links verlagert werden. Denn die frühzeitige Berücksichtigung von Qualitätssicherungsmassnahmen im Entwicklungsprozess und eine gesunde Mischung aus manuellen und automatisierten Testprozessen führt zu einer hohen Testabdeckung, gesteigerter Qualitätssicherheit und damit einem geringeren Gesamtrisiko des Produktes.
Ergänzend zu diesem reaktiven Prozess sollte Qualitätskontrolle auch proaktiv wirken können. Durch statische Code-Analyse wie beispielsweise durch Reviews und durch KI-gestützte Tools, durch die Etablierung von kontinuierlicher Integration oder optimierter Kommunikation innerhalb des Entwicklungsteams durch verschiedene methodische Ansätze können potenzielle Risiken, Fehlerzustände und Qualitätsdefizite vermieden oder frühzeitig behoben werden.
Statische Code-Analyse
notwendig.
Innovation bedeutet Wandel
Die Einführung von neuen, innovativen Methoden und Technologien erfordern einen kulturellen Wandel innerhalb der Organisation. Developer und Tester müssen ihre Arbeitsweisen anpassen und enger zusammenarbeiten. Die Überwindung von Silos und die Schaffung einer Kultur der Zusammenarbeit und des kontinuierlichen Lernens sind entscheidende Faktoren für den Erfolg. Innovative Ideen im Bereich der Qualitätssicherung können nur entstehen, wenn der Raum dafür geschaffen wird.
Fazit
Nur wenn alle Rollen ein gewisses Grundverständnis von Qualität verinnerlichen, können erfolgreiche Produkte realisiert werden. Dafür braucht es Spezialistinnen und Spezialisten aus dem Bereich der Qualitätssicherung, die das nötige Wissen, ausreichend Erfahrung und den geeigneten Werkzeugkoffer in die Entwicklerteams hineintragen. Qualitätssicherung muss sowohl reaktiv als auch proaktiv sein. Vor allem aber muss sie früher im Prozess integriert sein und aktiv gelebt werden. Die frühzeitige Integration von Qualitätsaspekten, die enge Zusammenarbeit innerhalb der Entwicklerteams und die kontinuierliche Verbesserung von Testpraktiken und -technologien sind dabei elementar. Sie helfen, den Entwicklungsprozess zu beschleunigen, die Produktqualität zu erhöhen und den wachsenden Anforderungen des Marktes gerecht zu werden. Für Firmen lohnt sich die Implementation von Shift-Left und die Anerkennung und Förderung der Rolle von Qualitätsingenieurinnen und -ingenieuren in der Softwareentwicklung. Sie werden besser gerüstet sein, um wettbewerbsfähige Produkte zu entwickeln und sich in der zunehmend digitalen und vernetzten Welt zu behaupten. Diese ganzheitliche Betrachtung der Produktentwicklung und Qualitätssicherung wird letztendlich zu einer höheren Kundenzufriedenheit, einer verbesserten Marktposition und einem erfolgreichen und nachhaltigen Geschäftswachstum führen.