Die Allgegenwärtigkeit von Softwarelösungen
Softwarelösungen begleiten uns heute in allen Bereichen des Lebens. Sei es bei Fitness-Apps im Sportbereich, bei Planern für die Freizeitgestaltung oder auch als Dispositionslösungen für die Logistikbranche im beruflichen Alltag. Es gibt gefühlt für alles eine App und ständig sind weitere in Entwicklung. Die Gaming-Branche zeigt, dass da keine Obergrenzen gesetzt sind. Ständig kommen neue Spiele dazu sowie Patches oder Updates zu bekannten Spielen. Ganze Horden an Entwicklungsteams bestreiten mit der Erstellung dieser Apps ihren Lebensunterhalt. Doch wozu das Ganze?
Die Rolle von Software im Alltag
Wenn man sich vorstellen würde, was man heute ohne eine Fitness App an Papierkram, Bücher, Schrittzähler etc. mitschleppen müsste, wird einem klar, dass eine einfache Fitness App mit Bewegungstracking und Ernährungsbibliothek viel praktischer ist.
Schnell kommen wir zu der Einsicht, dass Softwarelösungen das Leben vereinfachen, indem Unmengen an Informationen auf Klick abgerufen oder gespeichert werden können. Software ermöglicht es uns durch Automatisierung komplexe und routinemäßige Tätigkeiten effizient zu erledigen.
Die Beteiligten im Softwareentwicklungsprozess
Software entsteht nicht einfach so, große und kleine Teams sind verantwortlich, die Probleme des Alltags und die Digitalisierung von Geschäftsprozessen umzusetzen. Verschiedenen Berufsbilder haben sich in den letzten 30 Jahren im Kontext der Softwareentwicklung herausgebildet. Doch wer ist nun für das ganze System und dessen Funktionalität verantwortlich?
In der agilen Entwicklung hat sich die Einsicht durchgesetzt, dass das ganze Entwicklerteam für die Qualität der Software, der Apps und digitalisierten Prozesse verantwortlich ist.
Der Softwareentwickler, der den Code schreibt, der Tester, der durch Tests die Qualität des Produktes misst, als auch der Kunde und der Product Owner, die sich über die Anforderungen abstimmen.
Jeder, der am Entwicklungsprozess beteiligt ist, kann und soll zur Sicherung der Qualität beitragen, um zum Schluss ein Produkt zu erstellen, dass die Kunden gerne benutzen und dass ihre Probleme löst.
Die Vielfalt der Beteiligten und ihre Perspektiven
Alle Beteiligten haben unterschiedliche Perspektiven auf die Software und den Softwareentwicklungsprozess und können ihren Input zur Verbesserung des Produktes liefern.
Das Bedürfnis an einer Software oder einem Feature in einer Software geht dabei immer von einem Kunden aus. Nachdem der Kunde seine Anforderungen dem Product Owner mitteilt hat und sie sich über die Umsetzungsmöglichkeit beraten haben, wendet der Product Owner sich damit sich an sein Team.
Entwickler entwerfen aus den Anforderungen eine Architektur und setzen damit die gewünschten Features um
Während die Entwickler die Software entwickeln, refactoren und weiterentwickeln, bekommen sie zusätzlichen Input durch die Bug-Berichte der Tester. Diese Bug-Berichte entstehen aus den funktionalen und nicht funktionalen Tests, die Tester durchführen und die sich an die Entwicklertests anschließen. Damit dies Hand in Hand gehen kann, arbeiten alle Beteiligten von Anfang an aktiv in enger Abstimmung mit dem gemeinsamen Ziel, dass das Produkt möglichst fehlerfrei abgenommen werden kann. Dazu gehört der proaktive Informationsaustausch auch inklusive Verbesserungsvorschlägen mit dem Entwickler über den aktuellen Stand der Dinge.
Die Zusammenarbeit wird heute wiederum durch Tools wie Jira unterstützt, die uns die anstehenden Arbeiten transparent machen und alle Arbeitsschritte visualisieren.
Tester: raus aus der Komfortzone!
Als Tester dürfen wir uns nicht an eine (imaginäre) Komfortzone gewöhnen, in der uns die Product Owner eine umfassende Beschreibung eines Features zustellen und die Entwickler eine möglichst fehlerfreie Umsetzung mit vielen wichtigen und vor allem den richtigen Unit-Tests verwöhnen. Wir dürfen unsere Aktivitäten nicht nur auf die abschließenden Testaktivitäten eines Features beschränken, sondern müssen jedes Feature von Beginn an durch kritisches Hinterfragen begleiten. Dazu gehört auch, dass wir uns mit dem Kunden über die verschiedenen fachlichen Szenarien des Features austauschen und mit den Entwicklern einen gemeinsamen Testansatz entwickeln, der sich im Code sowie den abschließenden manuellen Tests wiederfindet.
Wenn wir uns vorstellen, dass ein Bug, der von einem Endnutzer gefunden wird, in der Entwicklung hätte gefunden werden können, wünschen wir, wir könnten die Zeit zurückdrehen.
Die Bedeutung agiler Teamarbeit
Für ein konstruktives Miteinander eignet sich am besten ein agiles Teamkonstrukt, in dem man sich in der Entwicklung offen über aktuelle Informationen rund um das Produkt austauscht. Wir fokussieren dabei außerdem die kontinuierliche und konstruktive Verbesserung des Entwicklungsprozesses. Dies ist wichtig, da ein effizienter und strukturierte Entwicklungsprozess uns hilft verlässlich eine gleichbleibende Qualität zu liefern.
Mein Selbstverständnis als Tester
Ich als Tester, der für die Qualität eines Produktes und somit für die Kundenzufriedenheit verantwortlich bin, muss die Grenzen manchmal überschreiten und mich ständig auch in die Lage der Entwickler oder der Anwender versetzen. Denn nur wer das Produkt gut kennt, kann dessen Qualität auch bestimmen und sicherstellen.
-
Lerninhalte
-
Dauer der Ausbildung
-
Voraussetzungen
- Identifizieren von aktuellen Fähigkeiten
- Spezifische Ziele setzen
- Fokussiertes Arbeiten
- Kontinuierliches Feedback und kontinuierlicher Fortschritt