Urlaubsverwaltung – Die Geschichte eines Open Source Projekts

Nach fast 6 Jahren hat das Open Source Projekt, die synyx Urlaubsverwaltung

  • 70 offene Issues
  • 194 gelöste Issues
  • 2207 Commits
  • 99 Releases

Stand heute, 26. April 2017
…und eine kleine Geschichte, die durchaus erzählenswert ist und auch ein bisschen meine eigene Geschichte spiegelt.

Die Geburtsstunde der Urlaubsverwaltung

Alles begann damit, dass ich mein Studium der Biowissenschaften schmiss und bei synyx einstieg. Quasi ohne jegliche Vorkenntnisse in Programmierung begann ich im August 2011 mit einer Ausbildung zur Fachinformatikerin für Anwendungsentwicklung – was im Nachhinein betrachtet von beiden Seiten irgendwie ziemlich mutig war 😀 In allerlei Übungsprojekten eignete ich mir Wissen in objektorientierter Programmierung im Allgemeinen und Java im Speziellen an.
Im Oktober 2011 wurde es dann an der Zeit für ein “richtiges” Projekt. Zum damaligen Zeitpunkt wurde Urlaub bei synyx noch ganz altmodisch in Papierform beantragt und genehmigt. Dieser Prozess sollte in Software abgebildet werden, um uns allen das Beantragen von Urlaub zu vereinfachen.
Am 20. Oktober 2011 erfolgte der erste Commit – dies war die Geburtsstunde der Urlaubsverwaltung.

Das erste Krabbeln

Am 5. März 2012 ging die erste Version der Urlaubsverwaltung live. Diese erste Version beinhaltete die grundlegenden Anforderungen ohne viel Schnickschnack. Benutzer (Mitarbeiter) konnten Urlaub beantragen und Benutzer mit Sonderrechten (Chefs) konnten ihn genehmigen bzw. ablehnen.
Durch den relativ schnellen Live-Gang mit den grundlegenden Features konnten Bugs früh behoben (“Oh, an den Fall hab ich ja beim Testen und Durchklicken gar nicht gedacht”) und die Benutzbarkeit der Features zügig optimiert werden (“Stimmt, das ist eigentlich ganz schön umständlich und unübersichtlich”)

Ein Projekt lernt laufen

In kurzer Zeit hatten wir eine benutzbare Software, die den Prozess in Papierform abgelöst hatte. Anfangs erfolgte die Urlaubsbeantragung sowohl analog als auch digital, d.h. man beantragte Urlaub über die Urlaubsverwaltung und passte anschließend noch den Chef mit Papier und Kugelschreiber ab. Im Juni 2012 trauten wir uns dann endgültig, den Papierkrieg aufzugeben und die Urlaubsbeantragung nur noch über die Software durchzuführen.

Ein Projekt zieht in die Welt hinaus

Aufgrund eines Blog-Posts kamen im Juni 2013 relativ zeitgleich die ersten Anfragen zur Urlaubsverwaltung. Es gab also noch mehr Unternehmen, die dasselbe Problem zu lösen hatten.
Wir entschlossen uns das Projekt als Open Source zur freien Nutzung zur Verfügung zu stellen. Es wurden noch einige kleine Anpassungen vorgenommen und schließlich die Urlaubsverwaltung am 18. Juli 2013 auf GitHub veröffentlicht.
Relativ zeitgleich zog auch ich in die Welt hinaus und durfte in den ersten Kundenprojekten arbeiten. Dadurch reduzierte sich die Weiterentwicklung an der Urlaubsverwaltung vorerst. Natürlich gab es immer wieder neue Anforderungen zu lösen, um unseren Prozess noch weiter zu optimieren, aber es handelte sich meist nur um kleinere Features. Viel Feinschliff machte ich in meiner 20%-Weiterbildungszeit oder probierte (für mich) neue Technologien einfach in der Urlaubsverwaltung aus (z.B. Spring Scheduled oder JMX)

Umstyling – von außen und von innen

Im Oktober 2014 stand für synyx der Umzug ins neue Büro an. Die Woche, die ich aufgrunddessen im Home Office verbrachte, nutzte ich für zahlreiche Umgestaltungsarbeiten an der Urlaubsverwaltung. Ich glaube, aus dieser Zeit stammen meine meisten nächtlichen Commits 😀 Während sich synyx ein neues Gewand in Form eines neuen Büros anzog, tat es auch die Urlaubsverwaltung in Form einer verbesserten Oberfläche. Nun war es möglich, Urlaub auf einem Smartphone Browser zu beantragen, ohne die Krise zu kriegen.
Da wir immer wieder E-Mails mit Fragen bzgl. Installation und Konfiguration erhielten, entschlossen wir uns im Oktober 2015, die Urlaubsverwaltung auf Spring Boot umzustellen. Dies brachte einige Vereinfachungen in der Konfiguration und erleichterte interessierten Unternehmen die Nutzung der Urlaubsverwaltung.

Ein Projekt wird erwachsen

Ab 2015 bekamen wir vermehrt Anfragen zu Anpassungswünschen in der Urlaubsverwaltung. Es gab sogar Unternehmen, die bereit waren für die gewünschten Anpassungen zu bezahlen. Wir hatten mehrere kleine Aufträge zur Umsetzung von Features, von denen wir annahmen, dass auch andere Unternehmen davon profitieren würden.
Leider stellte sich nach einigen Aufträgen heraus, dass wir immer nur einen Kompromiss umsetzen konnten. Die Anfragen und erforderlichen Anpassungen waren meist sehr spezifisch auf einen Kunden zugeschnitten. Einen Mittelweg zu finden, der sowohl den eindeutigen Kundenwunsch, als auch die potenziellen Wünsche aller anderen Benutzer der Urlaubsverwaltung zufriedenstellt – und dazu noch in das vorhandene Budget passt, war einfach nicht möglich. Oft haben wir ein Auge zugedrückt und den Mehraufwand auf unsere Kappe genommen. Als reines Dienstleistungsunternehmen ist das auf lange Sicht natürlich nicht machbar.

Weniger ist manchmal mehr

Wir kamen zu dem Punkt, an dem wir uns die Frage stellen mussten: Wie soll es mit der Urlaubsverwaltung weitergehen? In einer Task Force von freiwilligen Interessierten besprachen wir die Möglichkeiten zur weiteren Strategie.

Sollen wir weiterhin als Dienstleister agieren und individuelle Wünsche umsetzen?

Wir waren uns einig, dass dies theoretisch möglich wäre, aber sinnvollerweise dann nur als Fork der Hauptversion geschehen sollte. Wir wollten künftig vermeiden, dass spezielle Sonderwünsche in die Hauptversion einfließen und deren Wart- und Erweiterbarkeit verschlechterten. Dies würde allerdings bedeuten, dass wir Support für unterschiedliche Versionen leisten müssten. Eine “Nebenbei-Entwicklung” der Urlaubsverwaltung, wie sie bisher zeitgleich zu unserem eigentlichen Kundengeschäft betrieben wurde, wäre dann realistisch betrachtet nicht mehr sinnvoll machbar.

Sollen wir die Urlaubsverwaltung als Produkt sehen und vermehrt Zeit in die Produktentwicklung stecken, eventuell als Cloudlösung?

Nach Evaluierung der Marktlage, was bereits verfügbare Lösungen, deren Preise und in Frage kommende Kundengruppen anbelangt, kamen wir zu dem Schluss, dass wir uns geschäftlich lieber anderweitig orientieren und die synyx Urlaubsverwaltung nur noch (wie ursprünglich) als Open Source Projekt betreiben wollen.

Ist das der Tod eines Projekts?

Die Geschichte der Urlaubsverwaltung endet hier sicherlich noch nicht. Aber das Projekt hat einen Status erreicht, in dem es (meistens) stabil läuft und viele typische Anforderungen erfüllt. Es wird sicherlich immer wieder das ein oder andere neue Feature geben, aber wir haben für uns beschlossen: back to the roots, weniger ist manchmal mehr.
Neue Anfragen leiten wir nun an einen von uns gebrieften freiberuflichen Softwareentwickler weiter. Er steht für entsprechende Support- und Anpassungsaufträge gerne zur Verfügung. Erscheinen die Anpassungen für alle Benutzer der Urlaubsverwaltung sinnvoll, können diese problemlos mittels eines Pull Requests in die Hauptversion einfließen
Denn das ist ja das Coole an unserer Open Source Urlaubsverwaltung: man kann sie nicht nur as it is kostenfrei nutzen, sondern sie auch für eigene Zwecke modifizieren und diese angepasste Version nutzen.

Und meine Geschichte?

Die endet hier sicherlich auch noch nicht. Aber ich bin erst einmal raus. Im Dezember 2016 bin ich Mutter geworden und habe seither ein neues Projekt 🙂
Seitdem ist Daniel Hammann der Hauptansprechpartner für die Urlaubsverwaltung als Open Source Projekt von synyx. Auf GitHub bin ich momentan ein eher stiller Beobachter.