Schulung gemeistert – zurück zum Alltag


Ich war eine Weile abgetaucht, bloggen hat fast nicht mehr stattgefunden. Der Grund dafür waren neben einer sehr hartnäckigen Gesamt-Familien-Grippe mit Brechdurchfall und allem Zubehör die Vorbereitungen zu einer 5-tägigen Smalltalk-Grundlagenschulung, die nun vergangene Woche erfolgreich über die Bühne gelaufen ist. Es war schon eine Weile her, dass ich Smalltalk-Trainings bzw. Coachings durchgeführt hatte, und so musste ein Großteil der vorhandenen Unterlagen überarbeitet und korrigiert werden.

Meine Opfer waren vier Neulinge, die bisher keine Erfahrungen  mit Objektorientierung oder Smalltalk gesammelt hatten, und so war es eine sehr harte Woche für die Teilnehmer.

Wir haben am ersten Tag die Grundlagen der Objektorientierung kennen gelernt und den Nachmittag für eine längere CRC-Karten-Session genutzt. Es ist wirklich erstaunlich, dass CRC-Karten so ein Schattendasein in der Praxis führen, denn mit ihrer Hilfe war es möglich, selbst völlige Neulinge an den Entwurf objektorientierter Systeme heranzuführen. Wir haben ohne jegliche Musterlösungen  gearbeitet, und die CRC-Karten waren dann tatsächlich die Vorlage für die Übung. Ziel war es, eine Online-Videothek zu modellieren undin VA Smalltalk umzusetzen. Vorlage dafür waren nur ein paar Folien mit “Interviewergebnissen” der Analytiker mit den Anwendern in der Online-Videothe. Der ganzen Übung lagen nur ein paar Szenarien zugrunde. Und dennoch haben wir ein Gesamtmodell entwerfen können, das die Anlage von Nutzern, die Verwaltung von Artikeln und die Ausleihe und Rückgabe von Artikeln erlaubt.

Dienstag und Mittwoch waren sehr stark von Theorie geprägt, und da wir nur eine Woche Zeit hatten, waren die Tage recht lang und arbeitsintensiv. Am Mittwoch begannen wir, unsere Beispielanwendung umzusetzen, zunächst ohen GUI, lediglich das Geschäftsmodell. Parallel zur Anwendung her entstand der Testcode für unseren Code in einem Workspace, mit dem wir unsere Erweiterungen stets sehr schnell testen konnten.Ich denke, die Vorteile dieses Vorgehens haben durchaus motivierend gewirkt, denn es bedeutet praktisch keinen Aufwand, das Programm einfach auszuführen. Das ging sogar so weit, dass drei Kollegen abends im Hotel noch an der Anwendung weiter gearbeitet haben. Das hat mich natürlich sehr gefreut, und mich auch darin bestätigt, keine Musterlösung anzubieten.

Am vierten Tag haben wir dann begonnen, das ganze mit einer Oberfläche zu versehen, und die Geschäftslogik mit einigermassen hübschen Dialogen zugänglich zu machen. Leider ist ein Tag natürlich nicht genug, um alle Möglichkeiten des Composition Editors einzuführen, aber mein Ziel war es, in erster Linie Anfangshürden zu nehmen, und das Wissen zu vermitteln, was man sich anschauen muss, um herauszufinden, wie etwas funktioniert.

Wir haben  häufig implementors gesucht, und versucht zu ergründen, nach welchem Prinzip Smalltalk an einigen Stellen tickt. Das ist m.E. wichtiger, als lange Listen von APIs durchzukauen.

Auch der Debugger kam zu Ehren und zumindest einem Teilnehmer gelang es sogar, eigenständig ein Problem im Debugger zu analysieren und zu lösen.

Ein sehr komplizierter Stolperstein für Neulinge ist Envy. Ich weiss noch, dass ich es vor zwölf Jahren erst nicht ganz kapiert habe, und dass es eine ganze Weile gedauert hat, bis mir die Sache mit den Versionen und Editionen und der Unterschied zwischen Versionieren und Releasen klar war. Ich bin mir hier auch nicht sicher, ob es mir da gelungen ist, Klarheit zu schaffen. Die Kollegen werden sich da wohl reinsuchen müssen…

Wir haben sehr viel über Versionen, Editions etc. diskutiert, und es gab immer wieder Rückfragen dazu. Zunächst hatte ich versucht, die Thematik der Rollen (Owner, Manager, Developer) auszusparen, um die Sache nicht zu kompliziert zu machen. Aber wir mussten es dann doch klären. Leider musste ich dazu ab und an einfach sagen: “Macht Euch keine Sorgen, wenn Ihr das noch nicht  versteht, es ist kompliziert und man muss es vielleicht auch nicht gleich verstanden haben, um zu arbeiten. Glaubt mir einfach, dass es mächtig und hilfreich ist.” Das ist natürlich unbefriedigend, für alle Seiten, aber man muss Prioritäten setzen…

Als sehr hilfreich wurde sehr schnell erkannt, dass man keine Angst zu haben braucht, etwas kaputt zu machen. DIe Tatsache, dass man jederzeit alle alten Versionen seines Codes zurück ins Image holen kann, und dass man jederzeit mit einem frischen Image starten kann, und den Code auf dem alten Stand wieder laden kann, konnte überzeugen. Denn auch dieses Thema war mir wichtig zu vermitteln.

Auch haben wir gelernt, wie man Code exportiert und importiert und dazu Übungen gemacht.

Am Freitag haben wir in erster Linie Fragen geklärt und noch ein paar Kniffe besprochen, dabei war auch das Thema #perform.

Ich denke also, die Teilnehmer haben schon eine ganze Menge gesehen und gelernt, und ich war beeidnruckt davon, wie weit wir mit unserer Online-Videothek kamen (nicht zuletzt auch durch die hohe Motivation der Teilnehmer, die am Praxistag erst abends nach acht verflog).

Über das Feedback der vier habe ich mich auch sehr gefreut: es sei eine harte Woche gewesen, aber es sei der Funke zur Objekttechnologie und für Smalltalk übergesprungen. Ich glaube, die Teilnehmer waren selbst überrascht, wie viel die Anwendung am Ende der Woche schon konnte. Letztlich fehlte nur das Szenario zur Rückgabe von Artikeln in der GUI-Anwendung…

Nun ist die Woche also geschafft, und obwohl sie mir großen Spaß gemacht  hat, war sie auch sehr anstrengend. Zu allem Überfluss sprang dann am Freitag mein Wagen nicht mehr an, sodass ich nach der Schulung noch eine kleine Weile an der Hotelbar verbringen durfte und auf den ADAC wartete. Aber es war nur eine entladene Batterie (Randnotiz: Der Zafira mag keine eingesteckten Navigationsgeräte wenn die Zündung aus ist) und der freundliche Techniker hatte das in wenigen Augenblicken im Griff.

So stehen jetzt noch einige Blog-Themen aus, die sich in den letzten Wochen angesammelt haben, und der Projektalltag will nun auch wieder bewältigt werden. Der erste Tag war gleich geprägt von einer bunten Auswahl netter Produktionsfehlern und hochpriorisierten Tickets, aber so langsam pendelt sich alles wieder ein. Selbst die perpetuum-mobile intra-familiäre Grippewelle scheint ihr Ende gefunden zu haben.

Zumindest hoffe ich es😉