Navigation überspringen

Helfer im Hintergrund

Software entwickelt sich kontinuierlich weiter. Sie muss an die Bedürfnisse des jeweiligen Systems und der Nutzer angepasst werden. „Dabei werden Softwareentwickler allerdings oft durch manuelle Tätigkeiten ausgebremst. Wer mit Herzblut dabei ist, will aber programmieren und nicht organisieren“, sagt Christian Meißler, Teamleiter Architektur & Modernisierung bei ITGAIN. „Deshalb suchen wir nach Möglichkeiten, Programmierern manuelle und sich wiederholende Tätigkeiten abzunehmen. Wenn ITGAIN von einem Kunden angefragt wird, um bei der Softwareentwicklung effizienter zu werden, holen wir die Entwickler frühzeitig ins Boot und erarbeiten in Workshops gemeinsam maßgeschneiderte Lösungen“, sagt der 40-Jährige.

Ein Erfolg versprechender Ansatz dabei ist Software Configuration Management (SCM): Im Idealfall entlastet es die kreativen Köpfe während des gesamten Entwicklungsprozesses und verspricht mehr Effizienz, so dass sie sich auf das Erschöpfen des Programmcodes konzentrieren können.

Wer mit Herzblut programmiert, will vorankommen. Software-Entwickler werden jedoch oft ausgebremst durch manuelle und wiederkehrende Tätigkeiten. SCM bietet viele Möglichkeiten, um sie zu entlasten.“

CHRISTAN MEISSLER, TEAMLEITER ARCHITEKTUR & MODERNISIERUNG BEI ITGAIN

SCM bezeichnet kein einzelnes Werkzeug, sondern ist ein Sammelbegriff für eine Reihe von Prozessen und Tools, um Teilschritte in der Softwareentwicklung zu automatisieren und dadurch effektiver zu gestalten. Es wird zum Beispiel eingesetzt, um Fehler auf verschiedenen Ebenen zu identifizieren, unterschiedliche Versionen einer Software zu dokumentieren oder Unterstützung im Arbeitsablauf zu gewähren. So lassen sich Qualität und Durchsatz in der Software-Entwicklung erhöhen.

Vier Beispiele, wie unsere Kunden durch SCM profitieren:

Continous Integration:

Ein Entwickler behebt einen Fehler („Bug“) und liefert ihn im Versionsverwaltungssystem, wie zum Beispiel svn oder git ab. Damit sollte die Arbeit für ihn eigentlich abgeschlossen sein, ist sie aber häufig nicht. Denn oft checken zwei oder mehr Entwickler ins System ein und der eine beschädigt versehentlich die Arbeit des anderen. Durch ein automatisches Zusammenbauen des Gesamtsystems und die Ausführung von Testfällen werden solche Integrationsfehler erkannt. Dabei hilft ein Ticket-System dem Entwickler zusätzlich: Scheitert die Programmübersetzung oder funktioniert ein Testfall nicht, öffnet sich das Ticket wieder automatisch, weil es aus Sicht des Systems nicht fertig ist.

Statische Code-Analyse:

Bei komplexem und umfangreichem Quellcode stoßen Programmierer häufig an ihre Grenzen. Eine manuelle Inspektion ist extrem zeitaufwändig. Zudem werden Speicherlecks oder endlos laufende Schlaufen oft erst erkannt, wenn das Programm schon läuft. Zum Glück gibt es Tools wie SonarQube, die mittels Quellcode-Analyse vollautomatisch viele solcher Fehlerquellen in kurzer Zeit aufdecken können. Sie suchen nach bekannten Bugmustern beziehungsweise potentiellen Fehlern und markieren die betreffenden Stellen im Code, ähnlich der Rechtschreibprüfung in Word.

Artefakt-Speicher:

An den Kunden wurdeVersion 2.7 einer Software ausgeliefert, inzwischen gibt es aber schon Version 3.5. Der Entwickler bekommt eine Fehlermeldung („Ticket“), weil etwas an der Software des Kunden nicht funktioniert. Nach seiner Analyse stellt sich heraus, dass der Kunde das Update vergessen und noch Version 2.7 im Einsatz hat. Der Fehler ist aber in der aktuellen Version 3.5 und lässt sich daher nicht nachstellen. Ein Artefakt-Speicher bietet die Möglichkeit, alle Versionen aufzuheben und so auch historische Bugs zu prüfen.

Continuous Deployment:

Automatisierte Systeme und Tests sichern alle Software-Änderungen ab, bevor sie nach festen Kriterien in die aktuelle Software überführt werden. Wenn alle Tests grün melden, steht auch einer Produktionseinführung nichts im Wege. Neuerungen und Verbesserungen können so durch die Entwickler schneller umgesetzt und für Endkunden freigegeben werden. In der Endausbaustufe kann man dann mehrere untertägige Freigaben(„Release“) erreichen – statt der zwei bis vier Release pro Jahr in der Vergangenheit.

Unsere Unterstützung dabei ist: System- und Prozeßanalyse, Automatisierung, Aufbau und Erweiterung von Toolketten

Eingesetzte Technologien sind: Jenkins, Bamboo, SonarQube, Redmine, Jira, Testlink, HPQC, maven, gradle, ant, Docker, Kubernetes, Selenium

3 Quick-Wins lassen sich bei vielen IT-Projekten mit Hilfe von SCM mit kleinem Budget umsetzen, zum Beispiel:

- Integration von Ticketsystem und Versionsverwaltung

- Aufbau einer SonarQube-Installation zur kontinuierlichen Verbesserung der Codequalität

- Etablierung von automatisierten Testverfahren auf unterschiedlichen Ebenen