Qualitätssicherung
Es gibt sechs Grundbausteine (Versionskontrolle, kontinuierliche Integration, Fehlerverfolgung, Unit-Tests / Komponenten-Tests, Reviews / Überprüfung, Code-Analyse), die die Qualität der Software und damit des Produkts selbst sicherstellen. Verschiedene Synergien zwischen den einzelnen Teilen ermöglichen Transparenz und Wartbarkeit. Gleichzeitig dienen diese Bausteine als “Werkzeugkasten” für jeden einzelnen Softwareentwickler.
Durch den Einsatz einer Versionskontrolle wird jede Änderung des Codes nachvollziehbar dokumentiert und jede Version kann jederzeit wiederhergestellt werden. Dies verleiht der Entwicklung Flexibilität und ermöglicht eine genaue Analyse aller auftretenden Fehler der Software.
Der Einsatz eines CI-Systems (Continuous Integration) ermöglicht eine kontrollierte Kompilierung neuer Softwareversionen sowie ein kontinuierliches Reporting für die Entwickler über auftretende Fehler während der Kompilierung. Zusätzlich können automatisch ermittelte Kennzahlen generiert und gemeldet werden, die den Zustand des Produktes anzeigen. Features und Bugs sowie Meilensteine und Projektaufgaben werden über das Issue-Tracking-System (JIRA und / oder Confluence) verwaltet. Dies schafft eine nachvollziehbare und transparente Entwicklung von der Anforderungsanalyse bis hin zur Auslieferung und ermöglicht das Herstellen von Zusammenhängen zwischen einzelnen Aufgaben oder Features.
Das Zusammenspiel dieser drei Systeme (Versionskontrolle, CI, Issue- Tracker) sowie die Interaktion der Entwickler mit ihnen bringt zusätzliche Vorteile, die die Qualität der Produkte noch weiter steigern. Alle Änderungen müssen nur einmal dokumentiert werden, da die Systeme Versionskontrolle, Issue-Tracking und CI die Änderungen automatisch übertragen. Durch diese automatische Übergabe an das Issue-Tracking- System wird jede Änderung eindeutig einer Anforderung zugeordnet, was eine vollständige Nachvollziehbarkeit jeder Aktion ermöglicht. Der Entwickler erhält durch das CI-System schnelles Feedback, da jede Änderung im Code automatisch eine neue Software-Version erzeugt.
Die Verwendung von Unit-Tests und die Integration dieser Tests in das CI-System ermöglicht eine schnelle Identifikation und Behebung von Fehlern, noch während die Software in der Entwicklung ist.
Zusätzlich wird durch Reviews sichergestellt, dass mindestens zwei Personen den Code sichten und testen, bevor eine Komponente für weitere Tests freigegeben wird.