In grösseren Unternehmen ist die erfolgreiche Qualitätssicherung in der Softwareentwicklung eine bekannte Herausforderung. Mit viel Elan werden die Entwicklerteams zu kleinen interdisziplinären Produkt- oder Delivery-Teams gruppiert mit dem Ziel, die volle Verantwortung von der Anforderungserhebung bis zur Qualitätssicherung zu übernehmen. Trotzdem bleiben häufig grosse Testorganisationen ausserhalb der Entwicklungsteams bestehen.
Im agilen Manifest wird funktionierende Software als eines der vier Prinzipien aufgeführt. Somit ist anzunehmen, dass die agilen Teams alles daransetzen, Dysfunktionalitäten der Software zu verhindern. Dazu stehen verschiedene Methoden und Vorgehensweisen zur Verfügung; wie z.B. Reviews mit den Stakeholdern, statische Codeanalyse, automatisierte Tests oder blue/green Deployments können dazu beitragen die Qualität zu sichern. Meine bisherigen Erfahrungen zeigen, dass der Umgang mit dem Thema Qualitätssicherung von Team zu Team unterschiedlich ist.
Hindernisse der frühen Qualitätssicherung
In den letzten Jahrzenten wurde die Softwareentwicklung und das Testing meist voneinander getrennt durchgeführt. Dies hat dazu geführt, dass sich Mitarbeitende oft auf ihre eigene Disziplin konzentrieren und nicht das Produkt als Ganzes betrachten. Teams mit einer Mehrheit solcher Mitarbeitenden lassen sich oftmals schwer von der agilen und veränderten Denkweise einer frühen, in den Teams verankerten Qualitätssicherung überzeugen. Ein weiteres Hindernis bilden monolithische und auf älteren Technologien basierende Systeme. Der Aufbau von Testframeworks und effizienten Buildprozessen mit schnellen Feedbackzyklen oder auch eine durchgängig automatisierte CI/CD-Pipeline, erfordern in der Regel hohe Aufwände und einen starken Willen diesen Schritt vollziehen zu wollen. Genau dieser Wille und damit verbunden die Vision einer modernen Softwareentwicklung, sind zentrale Hindernisse der frühen Qualitätssicherung.
Möglichkeiten Hindernisse abzubauen
Es ist zentral zu verstehen, wieso eine veränderte Arbeitsweise notwendig ist. Dazu müssen die Gründe einer agilen Transformation nachvollziehbar vermittelt werden. Zusätzlich benötigen die Entwicklungsteams Wegweiser in Form einer Vision oder von Zielen, welche aufzeigen wie die Methodik und die Prozesse in einer agilen Umgebung zusammenspielen. Zur weiteren Vertiefung können Schulungen angeboten werden, welche die Vision und die daraus entstehenden Vorteile praktisch erlebbar machen.
Bei manchen Teams lässt sich feststellen, dass sie zwar gerne in die Zielrichtung gehen würden, sie aber aus verschiedenen Gründen wie zum Beispiel Budget, Lieferdruck oder fehlendem Know-how daran gehindert werden. Hier braucht es Enabler-Teams, welche die betroffenen Entwicklungsteams, unter Berücksichtigung der jeweiligen Besonderheiten, aktiv in der Umsetzung unterstützen.
Greifen die oben aufgeführten Massnahmen nicht, sollte die Teamkonstellation näher betrachtet werden. Dabei kann es helfen auch jüngere Mitarbeitende im Team zu integrieren. Diese sind sich meist besser gewohnt, die Qualität ihrer eigenen Arbeit zu sichern und können so mit konkreten Lösungsansätzen unterstützen oder auch die Haltung im Team bezüglich der Qualitätssicherung positiv beeinflussen. Dabei sollte das Team nicht mit Einzelpersonen, sondern mindestens paarweise verstärkt werden, um dem Thema genügend Kraft zu verleihen.