Umstellung auf Continuous Build System

Bauer+Kirch entwickelt up to date

Continuous Build

Was uns antreibt: Der Wille zur Effizienz!

Eine Software-Lösung muss sich nicht nur kompilieren lassen. Um diese sinnvoll an den Kunden zu übergeben, muss mindestens ein Setup erstellt werden. Hinzu kommen interne Tests, eine Dokumentation und eventuell gewünschte zusätzliche Werkzeuge. Im Zuge der steigenden Anzahl und Komplexität der Projekte, die wir entwickeln und betreuen, wurde es immer schwerer, den Überblick über alle für den Übergabeprozess notwendigen Vorgänge zu behalten. Insbesondere im Hinblick darauf, jede Programmentwicklung täglich verfügbar machen zu können, musste eine zentrale Lösung gefunden werden.

Was uns auszeichnet: Qualität ohne Kompromisse!

Ein maßgeschneiderter Workflow und strukturierte Entwicklungsprozesse sind die Qualitätsmaßstäbe, an denen wir unsere Arbeit messen. Deshalb haben wir uns für die Implementierung eines zentralen Entwicklungsportals entschieden, das jederzeit den vollständigen Überblick über die Details bietet, die zu den integralen Bestandsteilen der kontinuierlichen Qualitätssicherung gehören. Das schließt das Zusammenführen aller Testresultate ein -  von der Überprüfung der Einhaltung unserer Code-Conventions, über die Compiler-Meldungen bis hin zur Ausgabe der Modultest-Programme.

Compiler-Meldungen

Die dem Quelltext am nähesten stehenden Aussagen über Zuverlässigkeit oder Fehleranfälligkeit kann nach wie vor der Compiler selbst treffen. Ein Build darf nur dann erfolgreich sein, wenn der Compiler keinerlei Meldungen erzeugt. Um nichts dem Zufall zu überlassen, ist diese Anforderung fest in unser System integriert.

Jeder Entwickler hat seinen eigenen Stil. Doch niemand entwickelt nur für sich. Um die optimale Nutzung der Teamworksynergien zu gewährleisten, ist es unvermeidlich, dass sich jedes Teammitglied an bestimmte Vereinbarungen hält. Ein Quelltext ist eben keine Computersprache, sondern äußerst menschlich. Unsere Code-Conventions helfen dabei, dass sich jeder Entwickler in den Quelltexten seiner Kollegen schnell zurechtfindet. Das vermeidet unnötige Rückfragen und erhöht die Produktivität. Die Einhaltung der gemeinsamen Konventionen wird automatisch von unserem Entwicklungsportal überprüft. Dank der zusätzlichen Integration in die von uns verwendete Entwicklungsumgebung sind eventuell notwendige Anpassungen schnell und unkompliziert möglich.

Modultests

Nichts dokumentiert einen Quelltext besser als ein Programm, das nur die eine Aufgabe hat, diesen Quelltext zu verwenden. Nichts überprüft die Funktionalität eines Quelltextes besser, als eben dieses Programm. Diese Modultests sind für uns obligatorisch. Doch nutzen sie wenig, wenn mit ihnen nicht jede Änderung oder Erweiterung unserer Quelltexte sofort getestet wird. Auch diese Aufgabe nimmt unser System den Entwicklern ab. Wann immer ein Projekt kompiliert wird, wird auch das nun erweiterte Testprogramm erstellt und ausgeführt. Schlägt es fehl, werden die Entwickler sofort per E-Mail benachrichtigt und können nachbessern. Unerwünschte Seiteneffekte sind so ausgeschlossen.

Codeabdeckung

Die Modultests entfalten nur dann ihre volle Wirksamkeit, wenn sie möglichst viele Stellen des Quelltextes abdecken. Das liegt nahe, doch ist es nicht immer offensichtlich, wie das erreicht werden kann. Selten genügt es, eine Funktion einfach aufzurufen. Manuell wäre es sehr aufwendig, wenn nicht sogar unmöglich, zu ermitteln, ob wirklich alle Verzweigungen, die es innerhalb des Programmcodes gibt, einmal getestet worden sind.

Um das trotzdem zu bewerkstelligen, haben wir ein Programm, das eben diese Aufgabe übernimmt, in unser System integriert. Es registriert für jeden Modultest, welche Zeilen im Quelltext angesprungen worden sind und welche nicht. Es wird eine übersichtliche Ausgabe erstellt, die schnell zu den ausgelassenen Stellen führt. Die Detailausgabe zeigt den Quelltext selbst. Die Zeilen sind je farblich markiert. Schon auf den ersten Blick wird klar, wo ein Test erweitert werden muss.

Buildcheck

Die bloße Tatsache, dass nach erfolgter Kompilierung eine Ausgabedatei existiert, bedeutet noch lange nicht, dass keine Fehler aufgetreten sind. Gerade in komplexen Prozessen, in denen ein Setup aus vielen Einzelkomponenten zusammengestellt wird, kann es passieren, dass etwa ein Bild fälschlich verändert wurde oder dass Passagen aus extern eingebundenen Texten fehlen oder hinzugekommen sind. Auch kann es sein, dass eine vom Prozess benötigte Datei schon existierte, aber aufgrund eines Fehler gar nicht neu hätte erstellt werden können.

Derartige Artefakte werden bei uns durch den in das System integrierten "Buildcheck" erkannt. Dieser überprüft die vom Prozess erstellten Dateien vollautomatisch auf Größe und Erstellungsdatum und erzeugt einen Fehler, wenn Abweichungen von der Erwartung festgestellt werden.

Nightly Build vs. kontinuierliche Integration

Die neu gewonnene Flexibilität erlaubt es für ein und dasselbe Projekt verschiedene Build-Vorgänge zu definieren. Während ein völlig blankes System und umfangreiche Tests ein guter Indikator für einen zuverlässig durchführbaren Build sind, können sie in der kontinuierlichen Integration sogar hinderlich sein. Um jede Änderung der Quelltexte durch einen unserer Entwickler sofort auf Verträglichkeit mit unserer Prozesskette zu überprüfen, ist es erforderlich, dass der entsprechende Build nur eine kurze Zeitspanne einnimmt. Idealerweise sollte er beendet sein, bevor die nächste Änderung eingereicht wird.

Dennoch darf aus diesem Grund auf keinen Test verzichtet werden müssen. Daher werden für das Erstellen der Setups, die ausgeliefert werden, eigene Builds konfiguriert. Diese nehmen sehr viel mehr Zeit in Anspruch, als die Leichtgewichte aus der kontinuierlichen Integration. Deshalb werden diese Builds regelmäßig nachts durchgeführt, wo sie den Arbeitsablauf nicht behindern.

Minimale Time-to-Market

Vordefinierte und standardisierte Abläufe reduzieren die Vorlaufzeit für neue Versionen auf ein Minimum. Nach der Umsetzung der angeforderten Features wird die neue Version buchstäblich auf Knopfdruck erzeugt und ist sofort bereit zur Auslieferung. Das verringert nicht nur die Produkteinführungszeit, sondern erhöht zugleich die Kosteneffizienz unserer Arbeit - bei gleichbleibend hoher Qualität.

Direkter Kontakt

Schreiben Sie uns!

Nötige Kontaktdaten
Optionale Angaben
Für den Versand und die Bearbeitung Ihrer Kontaktanfrage müssen Sie Ihr Einverständnis zur Speicherung Ihrer Daten geben. Ihre Daten werden ausschließlich zum Zwecke der Kontaktaufnahme gespeichert und durch uns vertraulich behandelt. Weitere Informationen zu unserem Datenschutz finden Sie in der Datenschutzerklärung. *
* = Pflichtfeld

Sprechen Sie mich an!

  • Ansprechpartner Stefan Kirch
    Stefan Kirch

    Dipl.-Inform., Geschäftsführer

    Projektentwicklung und Entwicklungsmethodik

    » Details

© 2018 Bauer + Kirch GmbH

Verwendung von Cookies

Um die Webseite optimal gestalten und fortlaufend verbessern zu können, verwendet www.bauer-kirch.de Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu.

Weitere Informationen erhalten Sie in der Datenschutzerklärung
OK, verstanden