Nachhaltige Softwareentwicklung beginnt nicht erst beim Codieren, sondern bereits im Stadium des Software-Designs. Hierbei steht nicht die Gesamtlösung oder die Systemarchitektur im Fokus, sondern die Struktur des Quellcodes. Die Frage, wie man effizient von den Kundenanforderungen zum Code gelangt, sollte bereits im Team geklärt werden, noch bevor der erste Code geschrieben wird.
Flow Design als bewährte Technik:
Eine praktische Methode, um diesen Prozess zu gestalten, ist das Flow Design. Hierbei werden Anforderungen hierarchisch zerlegt, um primäre Funktionen, als Dialoge bezeichnet, zu identifizieren. Diese Dialoge bestehen aus Interaktionen, die wiederum in Datenflüsse zerlegt werden. Diese Flows werden grafisch dargestellt und bieten eine detaillierte Planung bis zur Klassendefinition. Die Vorteile sind eine ganzheitliche Betrachtung der Anforderungen, eine Teambeteiligung am Designprozess und eine ideale Basis für eine umfassende Testsuite.
Clean Code Development für langfristige Flexibilität:
Clean Code Development ist ein Wertesystem, das darauf abzielt, langfristig flexiblen Quellcode zu entwickeln. Es bildet ein Mindset für EntwicklerInnen und bietet Prinzipien sowie Praktiken für den Entwicklungsprozess. Die Integration von Flow Design ermöglicht bereits in der gemeinsamen Codegestaltung die Berücksichtigung von Clean Code Prinzipien. Zum Beispiel können Klassen so strukturiert werden, dass Abhängigkeiten vermieden werden und eine konsistente Testabdeckung geplant wird.
Bei der eigentlichen Programmierung unterstützen Clean Code Prinzipien die Lesbarkeit und Nachvollziehbarkeit des Codes und ermöglichen ein schnelles Erfassen von Code-Abschnitten. Im Vordergrund steht Effizienz, Schnelligkeit und ressourcenschonende Programmierung. Dies bildet die Basis für die Reduzierung von Inkonsistenzen und Beeinträchtigungen der Wandelbarkeit massgeblich.
Nachhaltige Softwareentwicklung erfordert eine ganzheitliche Betrachtung, nicht nur des Quellcodes. Requirements Engineering und User Experience Design müssen Hand in Hand mit der Programmierung gehen, um eine nachhaltige Lösung zu gewährleisten. Flow Design bietet einen nachhaltigen Weg von der Anforderung zum Code. Bei dem Weg zur Anforderung ist kontinuierliches Requirements Engineering notwendig, bei dem alle Stakeholder involviert sind und Anforderungen regelmässig validiert und angepasst werden.
Bei der Entwicklung komplexer Enterprise-Lösungen wird die Nutzerperspektive oft vernachlässigt. Die NutzerInnen müssen in den Entwicklungsprozess einbezogen werden, um eine nachhaltige Softwareentwicklung sicherzustellen. Die Entwicklung von nutzercharakteristischen Prototypen und Interaktionskonzepten ermöglicht eine nutzerzentrierte Entwicklung. Usability-Tests sind dabei ebenso wichtig wie im Quellcode-Design, um die User Experience kontinuierlich zu verbessern.