Von Mehraufwand zu Mehrwert: Wie Developer-Friendliness den Test- und Projektalltag verbessert
User-Friendliness ist eine klassische Anforderung, Software soll für Nutzer*innen möglichst einfach und intuitiv bedienbar sein. Aber was ist eigentlich mit Tester*innen und Entwickler*innen?
Wenn Anforderungen für Software diskutiert werden, wird meist auf das Endprodukt geschaut, aber nicht auf den Weg dahin. Doch Developer-Friendliness kann mittelfristig Zeit sparen und Test und Entwicklung beschleunigen. Eine nicht-produktive REST-Schnittstelle kann z.B. hilfreich sein, um während der Entwicklung einfacher manuell zu testen oder Fremdsysteme zu simulieren. Wir stellen Lessons Learned aus Projekten anhand praktischer Beispiele vor.
Zielpublikum: Tester*innen, Entwickler*innen, Projektverantwortliche
Voraussetzungen: Projekterfahrung, Grundkenntnisse in Software-Entwicklung und Testen
Schwierigkeitsgrad: Basic
Extended Abstract:
Bei der Planung und Durchführung von Software-Projekten wird zum einen darauf geachtet, wie viel Aufwand und wie viele Kosten entstehen. Zum anderen wird i.d.R. Wert darauf gelegt, dass das fertige Produkt von den Nutzer*innen einfach und intuitiv benutzbar und damit User-friendly ist. Dabei fällt aber häufig unter den Tisch, dass mit ein wenig Mehraufwand die Arbeit von Tester*innen und Entwickler*innen erheblich vereinfacht werden kann. Stattdessen muss möglichst schnell der nächste Meilenstein erreicht werden.
Developer-Friendliness - zusätzliche nicht-fachliche Maßnahmen, um den Arbeitsalltag von Tester*innen und Entwickler*innen zu vereinfachen - verursacht kurzfristig zwar Mehraufwand. Mittel- und langfristig kann dies aber zu höherer Produktivität und Beschleunigung von Test und Entwicklung führen - und damit auch zu glücklicheren Tester*innen und Entwickler*innen.
Maßnahmen für Developer-Friendliness sind dabei wie Inspektionserweiterungen in klassischer 'Hardware.' Große Kraftstofftanks besitzen z.B. Inspektionsluken, die die Überprüfung und Wartung vereinfachen und beschleunigen. Im Gegensatz zu klassischen Erweiterungen bietet Software aber sogar die Möglichkeit, diese 'Inspektionsluken' in Produktivsystemen einfach zu deaktivieren.
Beispielsweise könnte man bei Systemen mit Message Queues zusätzliche, nicht-produktive REST-Schnittstellen hinzufügen, deren einzige Aufgabe das Durchreichen der Requests an die Message Queue ist. Dadurch können vorgelagerte (Fremd-)Systeme simuliert werden. Entwickler*innen können bestimmte Teilsysteme damit einfacher während der Entwicklung manuell testen. Tools wie Postman oder Hilfsmittel wie Swagger UI senken darüber hinaus außerdem die Hürde für Nicht-Entwickler*innen beträchtlich.
Tester*innen können die Schnittstellen für manuelle und automatisierte Tests nutzen und für Product Owner und Kund*innen werden potenziell die Abnahmetests vereinfacht. Kurzum: Testen - und damit auch der Entwicklungsprozess - wird auf verschiedensten Ebenen beschleunigt und vereinfacht, was sowohl die Qualität des Endprodukts als auch die Zufriedenheit aller Beteiligten erheblich steigert.
Lars Luthmann promovierte 2020 an der TU Darmstadt über automatisierte Test-Suite-Generierung und Verifikation von Software-Produktlinien. In Projekten unterstützt er Kunden je nach Bedarf als Tester oder Fullstack-Entwickler - oder einer Mischung aus beidem. Den meisten Spaß hat er dabei im Bereich des Test-Engineerings.