Diese Webseite verwendet Cookies. Wenn Sie diese Webseite nutzen, akzeptieren Sie die Verwendung von Cookies. Zur Datenschutzerklärung
Ein neues Softwareprojekt aufzusetzen dauert gerne seine Zeit. Bei Cap3 nutzen wir separate Tools für Projektmanagement, Zeiterfassung, Versionsverwaltung des Quellcodes und das automatisierte Bauen der Software. Es können schon ein paar Stunden vergehen, bis alles eingerichtet ist.
Bei den allermeisten Projekten wird außerdem noch eine Testumgebung sowohl für die Entwickler als auch für den Kunden benötigt. Dazu müssen zusätzlich Datenbanken und Webserver entsprechend eingerichtet und dokumentiert werden, was schnell einen Tag oder mehr kosten kann.
Weil wir hier Potenzial sehen, unsere Prozesse effizienter zu gestalten, aber auch unter dem Aspekt des Wissenstransfers bei Cap3 (mit welchen Systemen, Frameworks und Libaries arbeiten wir?) waren Marc, Bettual, Jan und ich sofort sehr angetan von Pauls Idee für das CodeCamp, den initialen Projektsetup für eine neue Softwareentwicklung zu automatisieren. Das erwünschte Ergebnis sollte sein, dass mithilfe einer simplen Eingabemaske für den Projektnamen und den Projekttyp eine automatische Einrichtung der gesamten Infrastruktur stattfindet, so dass ein Entwickler direkt mit seiner eigentlichen Arbeit beginnen kann.
Neben der Einrichtung der Dienste soll auch ein zentraler Ort für Dokumentation geschaffen werden, wo Links zu den entsprechenden Diensten wie Projektmanagement, Zeiterfassung etc. aufgelistet werden, aber auch z. B. Login-Daten für die verwendeten Datenbanken stehen. Manch einer träumt sogar schon von einem Dashboard, welches uns direkt die Informationen der Dienste darstellen kann, wobei man z. B. an Work-Items, git commits, build results und Serverstatus denken kann.
Erklärtes Ziel fürs CodeCamp 2016 war für uns also eine Webseite zu entwickeln, über die die Einstellungen vorgenommen werden können. Im Hintergrund verwendet das Tool dann die vorhandenen APIs der Anwendungen, mit denen wir bei Cap3 arbeiten. Um die Komplexität des Vorhabens, in Anbetracht der kurzen Zeit, in einem machbarem Rahmen zu halten, konzentrierten wir uns zunächst auf das Anlegen eines Webprojekts mit Scala und die folgenden Dienste:
Die Entwicklung des Frontends selbst haben wir ebenfalls mit Scala umgesetzt. Bettual und Marc bekamen die Möglichkeit, die für sie neue Technologie unterstützt durch Paul und mich auszuprobieren. Jan, Cap3-Praktikant, kümmerte sich um die Weboberfläche.
Eine der inhaltlichen Herausforderungen war es, aus den zu Beginn nahezu unendlich vielen Ideen ein erreichbares Ziel abzustecken. Deshalb haben wir uns am Freitag erst einmal zusammengesetzt und alle Ideen gesammelt und nach Machbarkeit und unmittelbarem Nutzen priorisiert. Auch wenn diese Aufgabe nach trockener Arbeit klingt, hat es uns geholfen, den Fokus auf das Wesentliche nicht zu verlieren.
Technisch interessant war für uns die Notwendigkeit, die verschiedenen APIs asynchron anzusprechen und dem Nutzer kontinuierlich Feedback über den Status zu geben. Während das Einrichten der Projektverwaltung relativ zügig geschieht, dauert es bei der Quellcode-Verwaltung schon mal etwas länger, da wir hier einen Checkout vornehmen, um bereits initiale Dateien (.gitignore, Readme) hinzuzufügen. Mithilfe des Akka-Frameworks konnten wir API-spezifische Aktoren schreiben, welche die Arbeitsschritte im Hintergrund ausführen. Im Frontend halten wir den Benutzer mithilfe einer dynamischen Ajax-Ansicht auf dem Laufenden.
Wer in unserer Source-Code-Verwaltung, Continuous Integration Software, oder im Projektmanager einmal in Pauls Projektliste schaut, wird unschwer erkennen: Es funktioniert! Projekte wie "Testpaul1" bis" Testpaul23" bezeugen, dass wir die APIs von Gitlab, TeamCity und YouTrack inzwischen im Griff haben. Der Grundstein für die Weiterentwicklung ist also gelegt. In Zukunft wollen wir noch weitere Funktionen ergänzen und den Project Creator als Standard für neue Softwareprojekte bei Cap3 etablieren.
* Pflichtfeld