Modellgetriebene Software Entwicklung

Requirements, Entwicklung mit Scrum

Gute und langjährige Erfahrungen mit der Erstellung von technischen Konzepten aus fachlichen Anforderungen zur Planung und Umsetzung der Software ermöglichen es die Software mit einem hohen Maß an Qualität zu erstellen.
Um die erforderlichen Aufwände schätzen zu können, muss einerseits klar sein was umgesetzt werden soll, das geht aus den Anforderungen hervor. Andererseits ist es Aufgabe eines Entwicklers aus dem Plan abschätzen zu können wieviel Zeit die Entwicklung eines Moduls mit einem Tool beansprucht. Am besten funktioniert das durch Definition einzelner Tasks die nicht länger als einen Tag zur Umsetzung mit Tests dauern dürfen. Dann ist klar wie hoch Aufwände für ein Projektteil insgesamt sind und es kann während der Scrum-basierten Entwicklung frühzeitig erkannt werden wenn einzelne Arbeitsschritte im Vorfeld falsch eingeschätzt wurden und korrigiert werden müssen. Oftmals hat das ganz einfache Gründe, etwa noch nicht fertig gestellte Schnittstellen aus anderen Teams. Dann kann der Task bis zur Klärung zurückgestellt werden und es ist formal ersichtlich dass wie im Beispiel Kommunikationsbedarf zwischen den Teams besteht.

Technologien

Der verwendete Software-Stack beschreibt vielleicht am besten in welcher Umgebung die Komponenten zusammenspielen.

spring cloudmicronaut
traefik edgerouterconsul
nginxapache httpd
postgresqlkafka

Software Entwicklung ist immer auch Software-Testing

Der modellgetriebene Ansatz wird durch Tests vervollständigt; Automatische Unit-Tests überprüfen nicht nur die angeforderte Funktionalität und testet Randbedingungen während der Entwicklung, sondern sind ein integraler Bestandteil moderner Programme. Sie stellen bei Erweiterung oder Modifikation automatisch sicher, dass bestehende Teile der Software in neuen Versionen weiter funktionieren. Deshalb wird darauf geachtet, dass Tests mit zu einem Modul entwickelt werden damit Wartbarkeit gewährleistet ist und spätere Anpassungen nicht zu erhöhten oder unabsehbaren Kosten führen. Auch automatische Benutzeroberflächentests mit Tools wie Selenium für den Browser sind nützlich, allerdings sollte beachtet werden dass der Pflegeaufwand solcher Tests etwas höher ist als bei Modul- oder Unit-Tests.

Wer Wert auf Tests legt, investiert in eine robuste zukunftsfähige Anwendung.