CMS-Einführung mit Livingdocs bei der Handelsblatt Media Group
Qualitätssicherung in der Softwareentwicklung
Was macht Softwarequalität aus? Und was genau ist gute Software? Wir geben Ihnen einen Überblick über das Thema Qualitätssicherung in Softwareentwicklungsprojekten. Dazu klären wir zunächst für Sie die wichtigsten Punkte, zeigen Ihnen Kriterien auf und geben einen Überblick über gelungene Methoden zur Planung individueller Qualitätssicherung.
Funktionale Anforderungen in der Qualitätssicherung der Softwareentwicklung
In der Softwareentwicklung stellt es eine Selbstverständlichkeit dar, dass alle spezifizierten Funktionen erfüllt sind. Wirklich? Moderne IT-Unternehmen wenden heute in der Regel agile Softwareentwicklungsmethoden an, bei denen zu Beginn der Entwicklung keine vollständige Spezifikation feststeht. Es kommt auch vor, dass aus Zeitgründen nicht alle spezifizierten Funktionen von Anfang an vollständig implementiert sein werden. Da es oft unterschiedliche Erwartungen zwischen Auftraggebenden und Auftragnehmenden gibt, ist es wichtig, dass die Erwartungen aller gut verstanden werden.
Agile Softwareentwicklung bedeutet nicht, auf eine sorgfältige Testplanung zu verzichten. Vielmehr muss die Testplanung eng mit dem agilen Entwicklungsprozess verzahnt sein. Wie sieht ein effektiver Testplan aus? Wie kann die Effizienz der Qualitätssicherung durch Testautomatisierung gesteigert werden? Und was, wenn das System nicht nur Software, sondern auch Hardware umfasst? Diese und weitere Fragen beantwortet jambitee Andreas Lemke in unserem umfassenden Whitepaper.
Nicht-funktionale Anforderungen in der Softwarequalität
Dass alle Erwartungen geklärt sein müssen, gilt umso mehr für nicht-funktionale Anforderungen – etwa an Performanz oder Wartbarkeit. Diese können in den verschiedenen Parteien auf unterschiedlich starkes Eigeninteresse treffen und manchmal auch versteckt sein: Während Benutzer*innen den größten Wert auf eine intuitive und ansprechende User Experience und die ihnen wichtigen Funktionen legen, werden die Bereitstellenden auch großen Wert auf Robustheit, Sicherheit, Erweiterbarkeit und Kosteneffizienz legen. Für Entwickler*innen spielen eher Eigenschaften wie gute Lesbarkeit, Wartbarkeit oder Testbarkeit des Quellcodes eine tragende Rolle.
Auch der geplante Einsatzbereich von Software erzeugt verschiedene Erwartungen an die Qualität. So hat beispielsweise eine Desktopapplikation für die ergonomische Anpassung des Arbeitsplatzes andere Anforderungen an die Ausfallsicherheit und das Erscheinungsbild als der Betrieb der Onlinepräsenz für die Frankfurter Allgemeinen Zeitung. Diese Aspekte tragen zur Softwarequalität bei – und damit auch zur Antwort auf die Frage nach guter Software: Die Qualität stimmt dann, wenn die funktionalen und nicht-funktionalen Anforderungen aller relevanten Parteien zu jedem Zeitpunkt bekannt sind und im vereinbarten Maß erfüllt werden. Um das sicher zu stellen, ergreifen wir bedarfsspezifisch verschiedene Maßnahmen zur Qualitätssicherung.
Aufwände im Qualitätsmanagement effizient planen: Das magische Dreieck
Der für die Softwareentwicklung nötige Aufwand entsteht sowohl aus den funktionalen als auch den nicht-funktionalen Anforderungen an die Software sowie aus den Maßnahmen zur Qualitätssicherung. Hierbei gilt, dass sich ein sehr hohes Maß an Qualität bereits mit geringen Aufwänden absichern lässt. Zudem können aber schnell signifikante Aufwände entstehen, die von Vornherein berücksichtigt sein müssen. Beispielsweise, wenn Qualitätsmanagement nötig ist oder bei ungewöhnlich hohen Anforderungen an die Testabdeckung. Maximaler Funktionsumfang, maximale Qualität und minimaler Aufwand können in jedem nichttrivialen Entwicklungsprojekt nicht zugleich erreicht werden. Sie bilden dementsprechend ein magisches Dreieck. Bei einem magischen Dreieck müssen zur Annäherung an einen Pol immer Abstriche bei den anderen gemacht werden. Anders formuliert: Es gibt keine eierlegende Wollmilchsau.
Mit geeigneten Maßnahmen und Werkzeugen der Qualitätssicherung ist es aber durchaus möglich, das magische Dreieck zu entschärfen, d. h. signifikant höhere Qualität ohne große Einbußen in Funktionalität oder wesentlich höhere Kosten zu erzielen. Um falsche Erwartungen zu vermeiden, ist es entsprechend empfehlenswert, die nichtfunktionalen Anforderungen – auch an die Softwarequalität – schon vor Projektstart zu klären und zu wissen, wo das Projekt im magischen Dreieck verortet ist. Ein positiver Nebeneffekt dabei ist, dass auf diese Art und Weise aufwandsintensive nachträgliche Änderungen am Entwicklungsprozess vermieden werden. Die Qualität ist dann bei gleichem Preis von vornherein schon höher, weil das benötigte Level der Qualitätssicherung vom ersten Tag ab realisiert und verfolgt wird und die Maßnahmen von Beginn an mit der Entwicklung verzahnt sind.
Bausteine der proaktiven Qualitätssicherung bei jambit
Unser Motto – 100 % Begeisterung – heißt für uns, dass Qualität im Zentrum unserer Arbeit steht, und das in einem sehr hohen Maß. Es heißt nicht, dass wir keine Fehler machen, sondern dass wir dazu stehen und Nutzen daraus ziehen. Wir lernen daraus und stärken damit die Qualität unserer Projekte und das Vertrauen unserer Kund*innen. Grundlage bildet unsere Top-of-Mind Kultur, die einen Rahmen mit fortschrittlichen Methoden und Arbeitsweisen schafft, und das sehr hohe Qualitätsniveau sichert. Damit spüren wir effizient Fehler auf und schaffen eine vertrauensbasierte und konstruktive Arbeitskultur.
Unsere Mitarbeitenden stehen im Zentrum der jambit-Kultur. So schaffen sie die Atmosphäre, in der reibungslose Softwareentwicklung möglich wird und in der die Wertschöpfung im Zentrum steht. Das motiviert! Und nur wer motiviert und glücklich ist, bringt das nötige intrinsische Interesse am Erfolg und die Leidenschaft für Ihre Projekte auf. Nur solche Mitarbeitenden denken über die bloße Implementierung von Anforderungen hinaus, machen sich die Projektvision zu eigen und führen das Projekt zum Erfolg. Wir bieten unseren jambitees eine Vielzahl von Weiterbildungs- und Entfaltungsmöglichkeiten. Eine kompetenzbasierte Einsatzplanung vereinbart Stärken und Interessen unserer Mitarbeitenden mit Bedarfen unserer Kund*innen.
Nicht zuletzt ist für Qualität aber auch die Verpflichtung unserer Kund*innen erforderlich – vom Bewusstwerden der Anforderungen bis zum ermöglichten Zugang zu Testgeräten und Spezifikationen. Insbesondere, wenn der Nachweis eines bestimmten Reifegrades nötig ist. Etwa im Kontext der funktionalen Sicherheit ist es beispielsweise essenziell, dass eine möglichst realistische Testumgebung bereitgestellt wird. Wir sind der Überzeugung, dass eine frühzeitige Investition in Qualität – proaktive Qualitätssicherung – sich immer auszahlt, weil so kostspieliges Nacharbeiten vermieden werden kann.
Was bedeutet proaktive Qualitätssicherung für uns jambitees?
Je nach Projekt setzen wir verschiedene Methoden, Werkzeuge oder Paradigmen ein, um die Qualität in der täglichen Arbeit vom ersten Tag an auf einem sehr hohen Niveau abzusichern – mit und ohne formalisiertem Qualitätsmanagement. Dazu gehören der Einsatz agiler Methoden unter Einhaltung der gängigen Best Practices wie Clean Code und Clean Architecture, das Befolgen der DevOps-Prinzipien oder ein stringentes Testmanagement. Die meisten davon sind mit keinem oder sehr geringem Mehraufwand anwendbar. Sie lassen sich mit leichten Abwandlungen meist sowohl in agilen Projekten als auch in Projekten mit Gewerkscharakter abbilden.
Jetzt Whitepaper herunterladen
Erfahren Sie mehr über proaktive Qualitätssicherung und die entscheidende Rolle von Testplanung in der agilen Softwareentwicklung. Laden Sie jetzt unser Whitepaper herunter und optimieren Sie Ihre Teststrategien!