... das Ihr einen Beitrag anfangt zu schreiben, ohne zu wissen, was am Ende eigentlich dabei rauskommen wird? Ihr wisst nur eines, ihr müsst Ihn schreiben. Nun ja, eigentlich weiss ich meistens schon, was ich gerade schreiben will, aber manchmal ist es eben doch anders und heute ist das auch so. Alles begann damit, dass ich in dieser Woche wieder an mehreren neuen Plugins für den DesignBlog programmiert habe und als ich das neueste Plugin online gestellt habe, sagte ich Bea, dass dies mein 72gstes Build gewesen ist, dass ich gerade auf Live gestellt habe. Und Bea meinte, dass man das ruhig mal irgendwie sagen könnte.
Bevor ich weiter erzähle, muss ich glaube vorab mal einige Begriffe erklären und einiges rund um die Arbeit an den DesignBlogs. Wie programmiert man an einer Software, die Live von vielen Usern genutzt wird. Also ich mache das so. Beim DesignBlog muss man zwei Dinge unterscheiden, das eine ist der Blog selbst, also das was am Ende von deinen Besuchern gesehen wird mit all seinen Funktionen. Und das andere ist der neue Admin, mit dem man seine Datenbanken mit Inhalten befüllen kann und Bilder in sein Web hochladen kann. Das Beides sind zwei völlig von einander getrennte Software Pakete. Für beide gibt es für mich eine Entwicklungsumgebung, dh. den DesignBlog selbst gibt es in zwei Versionen, die Aktuelle die von allen Usern benutzt wird und einige wenige Blogs, die die neueste Version also die Beta Version benutzen, wie meine Blogs zum Beispiel. Und auch für den Admin gibt es zwei völlig von einandere getrennte Versionen. Es gibt die Stage Version (Testumgebung) und die Live Version des Admins. Alles was ich programmiere, sehe und teste ich in der Stage Version. Und wenn ein größerer Abschnitt, wir nennen das gern auch Milestone fertig ist, dann kopieren wir den Stand der Stage-Umgebung auf die Live-Umgebung. Diesen Prozess nennen wir ein neues Build anlegen.
Viele kleine Änderungen und Bugfixes werden einfach so in die Live-Umgebung eingespielt. Nur wenn wieder ein oder mehrere Feature komplett fertig sind, dann stellt man diesen Stand komplett auf die Live-Umgebung. Zusätzlich benutze ich ein sogenanntes Versionierungstool (in diesem Fall ein SVN), jeder dieser Builds wird dort einmalig getaggt und einzeln abgespeichert, so das ich auf alle diese verschiedenen Stände zurückgreifen kann. Sollte solch ein Build wirklich mal daneben gehen, dann liegt daneben immer noch das alte und ich kann jederzeit auf diesen Stand zurückschalten.
Durch das SVN Tool kann ich auch gut feststellen, wann ich wo welchen Stand hatte und so schaute ich also an jenem Tag einfach nochmal ganz nach hinten und schaute, wann ich den neuen Admin denn erstmals Live gestellt hatte. Die allererste Liveversion war vom 27.01.2013 - ich weiss noch, dass ich an Weihnachten damit begonnen hatte einen völlig neuen Admin von Grund auf neu zu programmieren. Ende Januar war es dann soweit, dass ein erster Stand auf die Live-Umgebung gestellt wurde. Etwas später konnten dann erste Beta -Tester den neuen Admin schon mal benutzen, während ihr alter aber noch funktionierte. Es dauerte dann noch bis zum Februar 2015 als wir dann die alten Admins endlich löschten und alle User auf den neuen Admin umgestellt hatten.
Es brauchte weitere 45 Milestones seit dem ersten Build bis zu diesem Zeitpunkt. Nach dem alle Nutzer jetzt auf dem neuen Stand waren, konnte ich mich endlich ganz neuen Features widmen, was vorher einfach nicht ging, weil viele der Funktionen einfach nicht in der Mischumgebung Alte und Neue Admins funktioniert hätten. Mit Build 46 ging also im Februar die neue Zeitrechnung los, bis vorgestern hatte ich also 26 neue Milestones in den letzten 5 Monaten online gestellt. Nun für viele mag das nicht viel klingen ( in großen Projekten gehen die Builds in die 1000ende), aber man darf hier nicht vergessen, dass wir keine Open Source Software sind, an denen hunderte Entwickler arbeiten, sondern eben nur ich. Alles was hier funktioniert oder auch nicht, hab ich alleine verbrochen :) und das ganze ist auch nicht mein Hauptberuf ;), viele Dinge passieren am Abend oder Nachts und am Wochenende.
Aktuell arbeite ich an zwei neuen Plugins und das dritte ist bereits spruchreif, wird aber noch dauern, denn alles was jetzt kommt, sind sehr komplexe Plugins mit extrem umfangreichen Funktionen. Ihr könnt also weiterhin gespannt bleiben.