Die Entwicklungsstraße
Ein wichtiges Werkzeug
Entwicklungsstraßen sind essentielle Werkzeuge für die Entwicklung von Softwareprodukten, sowohl im proprietären als auch im quelloffenen Bereich. Sie stellen Services zur Verfügung, die Entwickler*innen und Projektmanager*innen bei der Abwicklung und dem Betrieb von Softwareprojekten unterstützen.
Funktionalitäten, die von Entwicklungsstraßen zur Verfügung gestellt werden, enthalten häufig Tools, die unter dem Überbegriff "Continuous Integration" und/oder "Continuous Deployment" laufend Prozesse, die aktuelle Änderungen in bestehenden Quellcode integrieren, automatisiert durchführen. Dadurch passieren Änderungen in kleinen, einfacher nachvollziehbaren Einheiten, und können leichter verwaltet werden.
Auch das sogenannte "Deployment", das Transportieren der gewünschten Version des Softwareprodukts hin zu der entsprechenden Server-Infrastruktur, zählt oft zu den Kernfunktionalitäten einer Entwicklungsstraße. Die Nutzung von semi- oder vollständig automatisierten Deployment-Systemen in allen Phasen der klassischen Softwareentwicklung (Entwicklungssysteme, Testsysteme, Produktivsysteme) ermöglicht die Verwendung substantieller Synergieeffekte, die sich vor allem in der Möglichkeit zeigen, agiler mit Änderungen umzugehen.
Unterstützend zu den bereits erwähnten Funktionalitäten, bieten Entwicklungsstraßen oftmals die Option, die in ihnen entwickelte Software Testprozessen zu unterziehen. Diese können von sogenannten "Unittests", die klar definierte und isolierte Teile des Programmcodes auf ihre Funktionalität überprüfen, bis hin zu komplexeren Testszenarien, die auch das Zusammenwirken von unterschiedlichen Softwarekomponenten überprüfen, reichen. Einige Entwicklungsstraßen bieten, teilweise in Verbindung mit zusätzlichen Werkzeugen, zusätzlich die Möglichkeit auch sogenannte "End-to-End" Tests durchzuführen. Diese Testkategorie ermöglicht das realitätsnahe, gesamtheitliche Überprüfen aller Komponenten eines Softwareprodukts. Dazu werden Benutzer*inneninteraktionen wie Mausklicks oder Tastatureingaben automatisiert eingebracht, und simulieren so die reale Verwendung der Applikation.
Die für die Umsetzung von umfassenden und längerfristigen Digitalisierungsprojekten notwendige Anzahl von simultan arbeitenden Entwickler*innen stellt signifikante Anforderungen an Prozesse und Systeme zur Erstellung der notwendigen Softwarekomponenten. Gerade die Definition und Verwendung gemeinsamer Arbeitsweisen ist dabei ein wichtiger Erfolgsfaktor. Entwicklungsstraßen können die Bewältigung dieser Herausforderungen mit Werkzeugen, die automatisiert und regelmäßig die Einhaltung der Vorgaben überprüfen, und bei Bedarf Korrekturvorschläge ausgeben, effizient unterstützen.
Die Summe dieser Faktoren macht Entwicklungsstraßen zu einem essentiellen Werkzeug für die kontinuierliche Sicherstellung von Qualität und Effizienz in digitalen Projekten, und stellt eine nachhaltige Grundlage für die verstärkte interuniversitäre Kooperation in der Digitalisierung dar.
Wir freuen uns über Ihren Besuch und Ihre Mitwirkung in unserer Entwicklungsstraße!
c Kirill Smyslov_istock
Background Check: Open Source
Open Source beschreibt ein Entwicklungsmodell für Software, das seit dem Entstehen der Idee in dem letzten Jahrzehnt des 20. Jahrhunderts als Basis für eine neue, zukunftsorientierte Form der Kooperation und Zusammenarbeit in diesem Feld dient. Die am weitesten verbreitete Definition von Open Source stammt von der "Open Source Initiative" und definiert eine Reihe von Kriterien, welche die Software und die Lizenz, unter der sie zur Verfügung steht, erfüllen muss, um als Open Source deklariert werden zu können.
Die unter der Webseite https://opensource.org/osd immer aktuell zu findenden Prinzipien lassen sich grob in Form folgender Grundsätze zusammenfassen:
- Open Source-Software liegt nicht nur in Binärform, sondern auch als Quelltext vor
- Open Source-Software darf kopiert, verbreitet und meist ohne Einschränkungen genutzt sowie von interessierten Entwickler*innen verändert und folgend weitergegeben werden
- Im Gegensatz zur sogenannten "Public Domain"-Software existieren in vielen Open Source-Lizenzen Einschränkungen, die sicherstellen sollen, dass dem ursprünglichem Willen des*r Urhebers*in, die Software kontinuierlich quelloffen zur Verfügung zu stellen, Rechnung getragen wird.
Open Source-Software bildet mittlerweile die Grundlage vieler essentieller und weitverbreiteter Systeme und hat die Technologielandschaft in den vergangenen Jahrzehnten maßgeblich beeinflusst. Mittlerweile als selbstverständlich gesehene Errungenschaften, wie das globale Internet oder moderne Smartphones, basieren in großen Teilen auf quelloffener Software. Auch große Technologiekonzerne wie Facebook oder Google setzen vermehrt auf diese Form der Softwareentwicklung- und verteilung.
Welchen Nutzen hat Open Source für Hochschulen?
Hochschulen sind als Einrichtungen, in deren Selbstverständnis wissenschaftliche, kollaborative Prozesse einen hohen Stellenwert haben, prädestiniert dafür, Methodiken nach dem "Open Source"-Modell in ihre Abläufe zu integrieren und so die Zusammenarbeit und das Teilen von Wissen auch in diesem für die Digitalisierung so wichtigen Bereich zu fördern.
Die Entwicklung von Tools, Modulen und Systemen nach Open Source-Methodiken und der damit verbundene Beitrag zur Verbesserung von öffentlich verfügbarer Software führt, zusammen mit der Reduktion der Abhängigkeit von proprietären Systemen und Datenformaten, inhärent zu einem gesellschaftlichen Mehrwert, und trägt damit auch zur Erfüllung einer der grundlegenden Verantwortungen einer Hochschule bei.
Systeme, die nach den Prinzipen freier Software entwickelt wurden, erlauben im Normalfall den Betrieb sowohl in Cloud-Umgebungen als auch lokal in Rechenzentren der Hochschule. So hat jede Hochschule die Möglichkeit eine maßgeschneiderte Lösung in Hinblick auf Datenhoheit, Datensicherheit und Datenschutz zu implementieren. Gerade in der sehr diversen österreichischen Hochschullandschaft ist mit dieser Möglichkeit ein nicht zu unterschätzender Nutzen bei dem Betrieb von IT-Systemen verbunden.
Sehr häufig geht die Entwicklung von quelloffener Software auch mit der möglichst breiten Verwendung von offenen Standards, Protokollen und Schnittstellen einher, die eine wichtige Basis für die verstärkte Kommunikation und Kooperation zwischen Hochschulen darstellen. Auch die Portabilität der Daten, sowohl zwischen Hochschulen als auch zwischen Systemen innerhalb einer Hochschule, wird durch die freie Verfügbarkeit des Quellcodes und der entsprechenden Spezifikationen sichergestellt. Föderierte Systeme, die auf dieser Grundlage offener Kommunikationsprotokolle aufbauen können, stellen in vielen Anwendungsgebieten einen vielversprechenden Ansatz im Spannungsfeld zwischen lokal und extern betriebenen Angeboten dar.
Durch den Einsatz von Software, die unter freien Lizenzen verfügbar ist, existiert die Möglichkeit, diese einfach an lokale Anforderungen hinsichtlich Design und Funktionalität anzupassen. Gerade hier besteht die Chance, durch den Aufbau auf eine solide, in einer weltweiten Community gewartete Lösung mit spezifischen, auf die Bedürfnisse von Hochschulen angepassten Erweiterungen einen deutlichen Mehrwert für Österreichs Hochschulen zu schaffen, der prinzipbedingt nur sehr schwer mit der alleinigen Zuhilfenahme von proprietären Angeboten großer Softwarehersteller repliziert werden kann.
Immer kürzer werdende Iterationszyklen der Technologielandschaft stellen klassische IT-Hochschulprozesse häufig vor große Herausforderungen. Quelloffene Software kann als Baustein auf dem Weg zu agilen Umsetzungsprozessen einen wertvollen Beitrag zur Antwort auf diese Herausforderungen liefern und essentielle Grundlagen, von Konzepten bis hin zum Aufbau, auf bereits bestehenden Softwaremodule zur Verfügung stellen. Auch der nachhaltige Betrieb wird durch die lose Koppelung des Lifecycles intern betriebener Systeme an die Roadmaps großer Softwarehersteller deutlich vereinfacht.
Open Source als Katalysator für Kooperation
Die bereits erfolgreich in vielen großen Projekten eingesetzten Methoden der Open Source Entwicklung stellen ein leistungsfähiges Werkzeug für die Unterstützung universitätsinterner Kooperation in der Softwareentwicklung dar. Die darin definierten Prozesse decken sowohl organisatorische Abläufe als auch die konkreten technischen Vorgehensweisen ab, und stellen eine skalierbare Basis für die Zusammenarbeit in der Projektabwicklung und auch in der daraufhin folgenden Stabilisierungs- und Betriebsphase dar.
Digitalisierungsprojekte, die nach Open-Source-Methodiker*innen durchgeführt werden, bringen sich inhärent in große internationalen Softwareprojekte und -initiativen ein, erweitern diese um innovative Funktionalitäten und stärken so das Profil der Österreichischen Hochschullandschaft als Innovations-Hub. Die entstehenden weltweiten Kontakte zur Entwickler*innen-Community ermöglichen den Austausch von Erfahrungen über Landesgrenzen hinweg und tragen dadurch dazu bei, die seit Beginn der Open Source-Bewegung immer stärker wachsende Gemeinschaft von Softwareexpert*innen nachhaltig zu erweitern.