Software Architektur
Bei der Entwicklung von Software legen wir sehr viel Wert darauf, dass allgemein gültige und bei Projektbeginn vom ganzen Team festgelegte Standards akzeptiert und während des gesamten Projektverlaufs eingehalten werden.
Zur Reduktion von Abhängigkeiten innerhalb der Software wird eine Schichtenarchitektur angestrebt (strict layering). Eine Trennung von Anliegen (separation of concerns) sowie die Einhaltung einer sehr hohen Codequalität ist schon bei Projektbeginn ein ständiges Ziel. Es wird nach den geltenden best practice guidelines programmiert. Die Sicherstellung, dass die Vorgaben auch tatsächlich eingehalten werden, kann durch den Einsatz geeigneter Werkzeuge erfolgen. Tools wie etwa Checkstyle überprüfen die Einhaltung gewisser Kriterien im Quellcode. Mittels automatisierter Tests können Anliegen bezüglich der Architektur überprüft werden. Die Abbildung der Softwarearchitektur in Form eines UML-Diagramms ermöglicht langfristige Transparenz und sichert das Verständnis über ihre Funktionsweise.
Die Wahl der am Besten geeigneten Architektur für ein zu entwickelndes Softwareprodukt orientiert sich in erster Linie an dem Lebenszyklus des Produktes auf der Produktionsumgebung. Weiter stehen während des gesamten Projektes auch Aspekte wie etwa Security Analyse und Security Audit sowie Code Reviews mit Schwerpunkt auf letztere im Vordergrund.
Sowohl die Entwicklung als auch Rollouts erfolgen bevorzugter Weise inkrementell und iterativ (also Teillieferungen des Endproduktes in vorher fest definierten Zeitabständen). Durch die Vermeidung von sog. Big Bangs fallen auch die damit verbundenen Risiken und Fehleranfälligkeiten weg.