Software Anforderungsanalyse mit Slicing

Inhaltsverzeichnis

Langfristig hohe Produktivität gibt es nur, wenn die Entwicklung Umwege vermeidet. Der Weg zum Ziel hochwertiger Software aus Kundensicht sollte möglichst geradlinig sein. Angesichts notorisch großer Unklarheit und Wankelmütigkeit des Kunden, ist das jedoch alles andere als einfach. Softwareentwicklung ist vielmehr ein komplexes Geschäft, bei dem sich Erfolg nur in Folge eines kleinschrittigen, experimentellen Vorgehens einstellt.

Wie aber sollten diese kleinen Schritte aussehen, so dass sie einerseits werthaltig für den Kunden und andererseits präzise formuliert für hochqualitative Produktion sind? Die herkömmlichen User Stories und Use Cases lassen hier leider zu viel Spielraum. Sie mögen für eine Kommunikation mit dem Kunden taugen – als Grundlage für die Programmierung taugen sie jedoch wenig. Der Input für die eigentliche Arbeit von Entwicklern hat deshalb oft schlechte Qualität und führt somit auch zu schlechter Qualität beim Output. Die Folge: Verschwendung durch unnötige Feedbackschleifen und Codestrukturen, die von Anfang an unter Nachbesserungen leiden.

Dem stellt die Anforderungsanalyse mit Slicing ein Zerlegungsschema für Anforderungen gegenüber, das anschlussfähig für Entwickler ist. Anforderungen werden damit für den nachgelagerten Entwurf so formuliert, dass es einen unzweideutigen Ausgangspunkt gibt und eine automatisierte Überprüfung der Umsetzungsreife von vornherei mitgedacht wird.

Agile, d.h. inkrementelle Softwareentwicklung spiegelt sich auf diese Weise auch in der Softwarestruktur wider. Strukturen in den Anforderungen sollten bei der Umsetzung nicht verschwinden, sondern erkennbar und nachvollziehbar sein.

Und eine solchermaßen entwicklerorientierte Vorgehensweise bei der Anforderungsanalyse hat natürlich Einfluss auf den gesamten Entwicklungsprozess: Verschwendungsarme Codeproduktion braucht eine Trennung von Wert- und Qualitätsproduktion.

Die allgemeine inkrementelle Entwicklungsschleife der Agilität ist auf Interaktion mit dem Kunden ausgelegt. Mit Slicing wird diese Schleife nun auch an die Programmierung angeschlossen, die “unter dem Radar der Agilität” eigene Ansprüche an ein inkrementelles Vorgehen hat, das hohe Qualität liefern soll.

Wollen Sie die Softwareentwicklung mit klareren Anforderungen starten und verlässlicher arbeiten lassen? 📧Dann lassen Sie uns über eine Clean Code Schulung Slicing für Sie sprechen...

Inhalte der Clean Code Schulung

  • Die Kernphasen einer systematischen Softwareentwicklung im Überblick: Analyse, Entwurf, Codierung
  • Die entwicklerorientierte Zerlegung funktionaler Anforderungen mit Slicing
  • Die Repräsentation grober nicht-funktionaler Anforderungen
  • Implikationen feingeschnittener funktionaler Anforderungen für die Architektur
  • Ein pull-basierter Entwicklungsprozess
  • Implikatonen der Trennung von Wert- und Qualitätsproduktion

Lernziele

  • Anforderungen aus der “Kundensprache” in entwicklerrelevante Strukturen übersetzen können.
  • Testbarkeit und Wandlungsfähigkeit als unverbrüchliche Aspekte hoher Softwarequalität schon bei der Anforderungsanalyse berücksichtigen.
  • Anforderungstriage: Qualitätskriterien für umsetzungswürdige Anforderungen kennen – und im Zweifelsfall schlechte Anforderungen ablehnen.
  • Die Grenzen herkömmlicher agiler Vorgehensweise kennenlernen – und überschreiten.
  • Verstehen, warum eine Prognose von Aufwänden mit Schätzungen nicht qualitätsförderlich ist – inkl. Ausblick auf einen alternativen Ansatz.

Schulungsformat

Das Training findet in 9 online Sitzungen von 60-90 Minuten in einem inverted classroom statt:

  • Die erste Sitzung dient der Orientierung und dem gegenseitigen Kennenlernen.
  • Die weiteren Sitzungen dienen dem Feedback, dem Q&A und der spontanen Vertiefung.

Zwischen den Sitzungen eignen sich die Trainingsteilnehmer den Lernstoff im Selbststudium an. Das bedeutet, Lernmaterialien zu lesen und Übungsaufgaben zu lösen. Die Ergebnisse werden in der folgenden online Sitzung präsentiert und besprochen. Für das Selbststudium sind pro Lektion 3 bis 5 Stunden zu veranschlagen; der Aufwand ist von der Lektion und den persönlichen Erfahrungen und der gewählten Entwicklungsplattform abhängig.

Für die Lösung der Übungsaufgaben hat sich klar im voraus terminierte Gruppenarbeit als sehr hilfreich erwiesen. Diese Termine sollten tendenziell zeitlich nah an der Sitzung liegen, in der Feedback gegeben wird.

In einem eigens für das Training eingerichteten privaten online Forum können die Teilnehmer mir jederzeit Fragen stellen und sich austauschen.

Technische Voraussetzungen

  • Als online Plattform findet Microsoft Teams Einsatz.
  • Jeder Teilnehmende sollte während der Sitzungen in ungestörter Umgebung allein mit Headset und funktionstüchtiger Webcam am Computer sitzen.

Wollen Sie die Softwareentwicklung mit klareren Anforderungen starten und verlässlicher arbeiten lassen? 📧Dann lassen Sie uns über eine Clean Code Schulung Slicing für Sie sprechen...

This article was updated on 05.02.2021