Gestern war es wieder mal so weit. Wir drehten mal wieder die Welt um, und arbeiteten in der Nacht. Weshalb wir das manchmal machen, keine Ahnung. Vielleicht, weil wir dann keine Störungen von aussen zu erwarten, und uns damit besser konzentrieren können. Vielleicht sind Programmierer aber eben wirklich Nachteulen.
Mir wurde früher immer vorgehalten, es gäbe keine Nachtmenschen. Das sei alles nur ein Hirngespinst von mir. Ok, ich kann heute auch gut am Tag arbeiten, wenn es so um Allgemeine Arbeiten geht. Wie E-Mail schreiben, Gespräche führen, organisieren, usw. Also all das was ich normalerweise so erledige.
Geht’s dann aber um anspruchsvollere Arbeiten wie programmieren oder so, verschiebe ich das lieber sehr an die Randstunden (frühen Morgen oder später Abend) oder eben gleich in die Nacht.
Doch was machen wir eigentlich. Wir bauen gerade unser internes Bürotool etwas um. Darunter wird auch am internen Zeittool gearbeitet, was etwas komplizierter wird. Da Ganze ist halt komplett selbst entwickelt, und am Anfang mussten wir einfach mal etwas haben wo mit wir einigermassen Arbeiten können.
Ein grosser Unterschied ist auch, dass wir jetzt endlich einen richtigen Entwickler Workflow eingebaut haben. Die ersten Versionen haben wir einfach Hot entwickelt. Sprich die Änderungen wurden direkt auf dem FTP Server vorgenommen. Das kann man natürlich machen, wenn man a) Alleine oder maximum zu zweit entwickelt und b) wenn das Tool noch nicht wirklich produktiv im Einsatz ist. Wenn man aber mehrere Leute zusammen entwickelt, kommt man um eine Versionskontrolle nicht herum.
Die verschiedenen Entwickler haben dann alle lokal einen Webserver auf ihrem Rechner und updaten die Version über die Versionskontrolle, in unserem Fall Git. Kompliziert wird das Ganze erst, wenn auch Änderung am Datenbank Design gemacht werden. Denn diese sind im Source nicht zu finden. Das funktioniert natürlich wenn sich die Entwickler untereinander Absprechen, nur muss das Ganze dann auch wieder auf den Webserver. Und das mit möglichst wenig Unterbrechungszeit. Deswegen bereitet man Migrationsscripte vor, die das ganze automatisieren. Dan muss das Ganze auch noch getestet werden. Denn auf dem Produktiven Server muss dann alles 100 Prozentig sitzen.
Klar, wir müssten das noch nicht so machen. Denn ausser uns läuft noch nicht viel auf unseren Servern. Wir nutzen das aber als Übung für spätere Versionen. Wenn man tausende von Leuten auf den Server hat, will man den Unterbruch so kurz wie möglich halten. Was nach aussen so einfach aussieht, ist in Wahrheit sehr aufwändig und eine echte Kunst. Ich finde es immer wieder krass, wie grosse Plattformen es schaffen, ihre Software zu updaten ohne dass man was mitbekommt.