Agile Entwicklung und regulierte Software – geht das zusammen?

Wie lassen sich die strengen Vorschriften zur Erstellung regulierter Software mit agilen Methoden der Softwareentwicklung in Einklang bringen? Ist das überhaupt möglich?
Agile Entwicklung

© MichaelJBerlin / Adobe Stock

Agile Entwicklung und regulierte Software – geht das zusammen?

Wie lassen sich die strengen Vorschriften zur Erstellung regulierter Software mit agilen Methoden der Softwareentwicklung in Einklang bringen? Ist das überhaupt möglich?

Agile Softwareentwicklung lebt im Wesentlichen von kürzeren Releasezyklen mit dem Ziel, Software schnell zu den Kunden zu bringen. Durch häufigere Updates wird die Time to Market verkürzt. Zudem sind Tests und die Qualitätssicherung weniger aufwändig, weil stets nur ein begrenztes Set an Features geprüft werden muss.

manage shift planning, timesheet and sta
Kostenlos anmelden
Papershift - Ihre Organisation in der Cloud
  • Dienstpläne erstellen
  • Arbeitszeiten erfassen
  • Urlaub planen
  • Lohnabrechnungen erstellen
  • Arbeitsdaten analysieren
Testen Sie Papershift 14 Tage kostenlos & unverbindlich
Jetzt 14 Tage kostenlos testen Live Demo vereinbaren

Regulierte Software kommt zum Beispiel im Bereich der Medizintechnik zum Einsatz. Anwendungsfälle  sind etwa Software für Herzschrittmacher und andere Geräte, die für Leben und Gesundheit entscheidend sein können.

Betrachtet man die Anforderungen, die es beim Entwickeln regulierter Software zu berücksichtigen gilt, ist dort vor allem die Pflicht zur umfassenden Dokumentation zu nennen. Diese bezieht sich auf den gesamten Entwicklungsprozess und schließt auch die Prüfung, die Freigabe sowie technische und architektonische Entwürfe mit ein. Hinzu kommen Erfordernisse wie eine Risikobewertung für die Endnutzer, welche die Software verwenden.

Neben der Dokumentationspflicht stellt regulierte Software zahlreiche weitere Anforderungen an den Entwicklungsprozess, die es mit einer agilen Vorgehensweise zu vereinbaren gilt. Das betrifft zum Beispiel das Einhalten bestimmter Qualitätsnormen.

Regulierte Software kann von agiler Softwareentwicklung profitieren

Doch genau bei diesen besonderen Anforderungen kann die agile Softwareentwicklung ihre Stärken zeigen, denn sie sorgt für eine hohe Qualität über den gesamten Entwicklungsprozess hinweg. Entscheidend ist dabei, dass Feedback frühzeitig in die Entwicklung einfließen kann. Anders als bei herkömmlichen Entwicklungsprojekten nach dem Wasserfallmodell, bei dem zu Beginn eine lange Planungs- und Konzeptionsphase steht, bevor es an die eigentliche Umsetzung geht, erfolgt die agile Entwicklung in kleineren, in sich geschlossenen Schritten, den sogenannten Inkrementen. Jedes Inkrement bringt eine ausführbare und testbare Software hervor. Auf diese Weise sind Fehler schneller und einfacher zu erkennen, als wenn erst ein großes Paket erstellt wird, welches zum Schluss der Entwicklung komplett getestet werden muss. Auch ist es in der agilen Entwicklung einfacher, Änderungen an der Software vorzunehmen.

Besonderheiten auch in der agilen Softwareentwicklung berücksichtigen

Allerdings sind bei der Entwicklung regulierter Software einige Besonderheiten zu berücksichtigen. So müssen zum Beispiel die angewandten Prozesse dokumentiert sein. Zudem bedarf es einer Schulung aller beteiligten Personen. Qualitätsmetriken müssen in einem Qualitätshandbuch beschrieben sein. Auch ist zu dokumentieren, wie die Qualitätsmetriken eingehalten werden können. Dazu dienen sogenannte Quality Assurance Plans (QAPs).

Standard-Arbeitsanweisungen, welche die Prozesse für die Entwicklung und Lieferung beschreiben, die sogenannten Standard Operation Procedures (SOPs), sind ebenfalls erforderlich.

Die umfangreiche Dokumentation soll sicherstellen, dass geänderte Anforderungen und Mängel nachverfolgbar sind. Auf diese Weise soll die Wahrung der erforderlichen Qualitätsstandards und -normen gewährleistet werden.

Wer im Team letztendlich für die zusätzlichen Aufgaben zuständig ist, die sich im Zusammenhang mit den bestehenden Regeln ergeben, kann je nach Zusammensetzung des Teams und seiner Rollen variieren. So könnte die Dokumentation zum Beispiel zum Aufgabenbereich des Product Owners zählen. In Frage kommen aber auch der Scrum Master, einer oder mehrere Entwickler oder eine Person, die eigens für diese Aufgabe eingeteilt wird.

Dokumentation und Entwicklung müssen Hand in Hand gehen

Insbesondere der Dokumentation des erstellten Codes kommt eine wichtige Bedeutung zu. Sie sollte integraler Bestandteil der Entwicklung sein. Hier ist der Ansatz „Documentation as a Code“ zu erwähnen. Das direkte Gegenüberstellen von Code und Dokumentation erleichtert deren Aktualisierung.

Die Dokumentation bringt weitere Vorteile: So lässt sich zum Beispiel einfacher überprüfen, ob alle Anwendungsfälle mit Tests versehen sind und ob es Testfälle gibt, die keinem Anwendungsfall zugeordnet sind.

Frühere Tests ermöglichen das vorzeitige Erkennen von Fehlern

Hinsichtlich der Tests ist der agile Ansatz vor allem deshalb vorteilhaft, weil durch ihn eine frühzeitige Qualitätssicherung möglich ist. So werden Fehler schneller entdeckt und können korrigiert werden. Mögliche Regressionen, also Auswirkungen durch Änderungen wie behobene Fehler auf andere Teile der Software, können so deutlich reduziert werden, was wiederum den Testaufwand senken kann.

Agile Entwicklung setzt agile Unternehmen voraus

Damit das Modell der agilen Entwicklung zum Erfolg führen kann, muss ein Unternehmen selbst agil sein. Das bedeutet vor allem: Es müssen die Möglichkeit und der Wille bestehen, aus Fehlern zu lernen. Oftmals ist dies ein längerer Prozess, der auch als agile Transformation beschrieben wird. Hilfreich bei diesem Übergang können unterstützende Online-Lösungen zur Unterstützung der Arbeitsabläufe sein wie zum Beispiel digitale Zeiterfassungssysteme.

Nur Unternehmen, bei denen es die entsprechenden Voraussetzungen für agile Entwicklung gibt und die damit ausreichende Erfahrungen sammeln können, werden dieses Modell auf die Erstellung von regulierter Software anwenden können.

Fazit

Agile Softwareentwicklung ist ein Ansatz, der sich auch und insbesondere für die Erstellung regulierter Software eignet. Durch die Möglichkeit, häufigere Releases zu erzeugen und früher zu testen, können Fehler rechtzeitig erkannt und behoben werden. Das senkt insgesamt den Testaufwand.

Besondere Anforderungen von regulierter Software wie zum Beispiel erweiterte Dokumentationspflichten lassen sich ohne Weiteres mit agiler Softwareentwicklung in Einklang bringen.



Verfasst von Christian Kunz

Christian verfügt über langjährige Erfahrung in den Bereichen Projektmanagement, Produktmanagement sowie agiler Projektentwicklung, die er in verschiedenen Unternehmen erworben hat.