Softwareentwurf mit Flow-Design
Langfristig hohe Produktivität kann nur erreicht werden, wenn die Softwareentwicklung sich nicht selbst ein Bein stellt. Das tut sie jedoch allzu oft durch vorzeitige Codierung. Vorzeitige Codierung ist eine Form der von Donald Knuth als fundamentales Übel identifizierten vorzeitigen Optimierung. Der Antrieb hinter der vorzeitigen Codierung ist natürlich so verständlich wie ehrenhaft: Es soll die Zeit von der Idee zum laufenden Code verkürzt werden. |
Doch auch wenn damit womöglich grundsätzlich funktionaler Code schnell produziert wird, ist das Gesamtergebnis suboptimal. Die Optimierung hat nur kurzzeitig wert – und erzeugt mittel- bis langfristig einen überproportionalen Mehraufwand. Der Grund sind Codestrukturen, die nicht oder nur schlecht automatisiert testbar sind, geringe Verständlichkeit aufweisen und vor allem durch ad hoc Abhängigkeiten glänzen, die weiteren Veränderungen im Wege stehen.
Code, der die funktionalen und nicht-funktionalen Anforderungen des Kunden erfüllt, ist das Produkt der Softwareentwicklung. Um dem Kunden allerdings auch bei unklaren Anforderungen heute und großer Unsicherheit im Hinblick auf zukünftige Wünsche morgen dauerhaft hochqualitative Software liefern zu können, braucht es eine Planung der Codestrukturen; Wandelbarkeit “ergibt sich nicht”.
Diese Planung ist natürlich kein Selbstzweck, vielmehr dient sie einer nachfolgenden zügigen Codierung, die sich dann allerdings auf das Wesentliche konzentrieren kann: die Übersetzung der geplanten Strukturen mit programmiersprachlichen Mitteln und deren Füllung mit fehlerfreier Logik.
Das Training Softwareentwurf mit Flow-Design vermittelt einen pragmatischen, alltagstauglichen Ansatz, um solche Planung für jeden Entwickler zugänglich zu machen.
Flow-Design ist ein zweiphasiges Vorgehen, mit dem Anforderungen in eine codierbare Lösung transformiert werden. Das Ergebnis ist eine konzeptionelle Lösung in Form eines visuellen Modells als Vorlage für die Codierung.
Sich mit der Codierung zurückzuhalten und zunächst “nur” eine Lösungshypothese zu entwickeln, ist für viele Entwickler ungewohnt. Mit ein wenig Übung wird jedoch bald klar: Die Eingewöhnung bringt nicht nur für den Einzelnen Klarheit in die Softwareentwicklung, sondern ist extrem nützlich für die Erarbeitung von Lösungen im Team und unverzichtbar als Grundlage für eine produktivitätssteigernde Arbeitsteilung.
Wollen Sie den Code in Ihren Projekten weniger mit Refaktorisierungen belasten, die Arbeitsteilung verbessern und die Teamkommunikation fokussieren? 📧Dann lassen Sie uns über eine Clean Code Schulung Flow-Design für Sie sprechen...
Inhalte der Clean Code Schulung
- Die Kernphasen einer systematischen Softwareentwicklung im Überblick: Analyse, Entwurf, Codierung
- Lösungsansatz finden
- Lösungsansatz modellieren
- Verantwortlichkeiten im Code zusammenarbeiten lassen ohne funktionale Abhängigkeiten
- Modellierung mit Datenflüssen
- Die Modulhierarchie von der Klasse bis zum Service
- IODA Architektur: Ein Architekturmuster ohne funktionale Abhängigkeiten
Flow-Design bietet eine leichtgewichtige visuelle Notation als Ausgangspunkt für die eigenen Entwürfe. Sie ist nicht standardisiert, aber praxiserprobt. Mit ihr bekommen Softwareteams eine einheitliche, minimale Sprache, um Lösungen deklarativ zu formulieren. Und wo diese Notation nicht ausdrucksfähig sein sollte, sind Entwickler eingeladen, sie pragmatisch für ihre Zwecke in ihrem Kontext zu erweitern.
Lernziele
- Probleme ohne Einsatz von Code konzeptionell lösen können.
- Lösungsansätze abstrahiert von einer Codierungsplattform deklarativ und visuell beschreiben können.
- Struktur, Verhalten und Daten in Lösungen sauber trennen.
- Lösungen in unterschiedlicher Granularität formulieren können.
- Reflexion der mainstream Objektorientierung.
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.
- Ein iPad oder anderer Tablet Computer mit Stift ist für die Anfertigung visueller Entwürfe auf einem digitalen Whiteboard sehr von Vorteil! Im Training kommt miro.com zum Einsatz.
Wollen Sie den Code in Ihren Projekten weniger mit Refaktorisierungen belasten, die Arbeitsteilung verbessern und die Teamkommunikation fokussieren? 📧Dann lassen Sie uns über eine Clean Code Schulung Flow-Design für Sie sprechen...