Die erfolgreiche Durchführung von Projekten beginnt mit der Kultur in der Organisation und mit den Personen, die an den Projekten mitwirken. Wir sind davon überzeugt, dass Geschwindigkeit und Qualität direkt davon abhängig sind, wie gut die beteiligten Teams, Werkzeuge und die Infrastruktur aufeinander abgestimmt sind.
COMsulting hat eine Kultur eingeführt, die an die Organisationsform “BizDevOps” angelehnt ist. Der Ansatz durchbricht die organisatorischen Grenzen zwischen Management, Entwicklung und Betrieb. Wir erreichen dies durch die unkomplizierte Zusammenarbeit selbstorganisierter Teams. BizDevOps beruht bei COMsulting auf folgenden Pfeilern:
Diese Anti-Silo-Kultur hilft, Missverständnisse zu vermeiden, und ist damit meist auch wirtschaftlicher. Darüber hinaus setzen wir stark auf Automatisierung, um die Zeit für den erhöhten Kommunikationsaufwand an anderer Stelle wieder einzusparen.
Es gibt feste Coding-Standards die uns dabei helfen, eine Codebasis zu schaffen, in der sich jeder unserer Entwickler zurechtfindet. Dadurch wird die Zusammenarbeit in wechselnden Teams erleichtert. Der Code ist gut strukturiert und einfach zu lesen.
Jede bei uns geschriebene Codezeile wurde von mindestens vier Augen gesehen. Das garantieren unsere systematischen Code Reviews. Hat ein Entwickler im Team eine Anforderung umgesetzt, bittet er einen anderen Entwickler, sich diesen Codeteil anzusehen. Das Ziel dieses Vorgehens ist es, Fehler und Mängel im Code zu finden und die Qualität des Codes (und damit des ganzen Softwareprodukts) zu verbessern. Wir verstehen die Code-Reviews außerdem als eine gute Gelegenheit für ein Mentoring und ganz allgemein für die Pflege unserer Kultur (siehe oben).
Die von uns entwickelten Softwareprodukte haben in der Regel eine lange Lebensdauer. Damit der Code trotzdem modern bleibt und die Integration von Änderungen und Erweiterungen auch später noch wirtschaftlich möglich ist, arbeiten wir beim Refactoring nach der Pfadfinderregel, den Platz sauberer zu hinterlassen, als man ihn vorgefunden hat. Die Code-Verbesserung in kleinen Schritten führt langfristig zu besser strukturiertem und lesbarerem Code.
Je größer das Projekt, desto schwieriger wird es, das Gesamtsoftwaresystem auf einmal zu überschauen. Manuelle Tests sind in einem solchen komplexen System ungeeignet zur Sicherstellung von Qualität. Bei größeren Projekten arbeiten wir deshalb mit automatisierten Tests, die nach dem Einspielen einer Änderung sicherstellt, dass sie keine unerwünschten Auswirkungen auf andere Funktionen hat.