07
Nov 13

Ein Tag im Leben des agilen Entwicklers Erwin L.

Vor langer Zeit, in einem Paralleluniversum. Eine völlig unrealistische Geschichte – Science-Fiction.

Jede Ähnlichkeit mit lebenden Personen oder Entwicklungsmethoden ist nicht nur nicht beabsichtigt sondern auch ausgeschlossen.

9:58 Uhr

Erwin Lindemann betritt kurz vor Beginn der Kernarbeitszeit leicht überhastet aber voller Elan das Büro. Wieder einmal war die Buslinie aufgrund einer Dauerbaustelle unpünktlich. Nach Ablage seines Jacke fährt er seine zwei Rechner hoch, um das Tagwerk zu beginnen. Merkwürdig, das Hochfahren seines MacOS Rechners mit diversen automatisch startenden Applikationen dauert doch ein ganzes Weilchen. Erwin Lindemann bespricht sich mit dem auch bereits anwesenden Kollegen Hugo B. und sie beschließen gemeinsam, durch Booten von einer Knoppix-DVD das Dateisystems des Macs einer genaueren Prüfung zu unterziehen. Knoppix prüft.

10:15 Uhr

Gerade als Erwin zur Kaffeemaschine strebt beginnt unglücklicherweise das Daily Scrum.

10:30 Uhr

Das Daily Scrum endet glücklicherweise pünktlich. Unglücklicherweise setzt der Productowner & Scrummaster in Personalunion (die Geschichte spielt sich bekanntermaßen in einem Paralleluniversum ab, in dem so etwas möglich ist und nicht mit dem Tode bestraft wird) unter völliger Überschreitung seiner Kompetenzen gleich noch eine Viertelstunde Backlogpflege-Workshop an. Erwin’s Koffeinspiegel sinkt lebensbedrohlich ab.

10:45 Uhr

Nach der gemeinsamen, harmonischen Backlogpflege – Kollege V. hat wieder einmal mit seinen “das braucht maximal 2 Storypoints” Schätzungen geglänzt – strebt Erwin mit stierem Block erneut der Kaffeemaschine zu, um seinen Koffeinspiegel auf ein halbwegs lebenserhaltendes Niveau zu bringen. Leider stürzt diese bei der Zubereitung des Heißgetränkes nach weniger Sekunden mit einer kryptischen Fehlermeldung ab – der Kaffee ist alle. Beim Nachfüllen bemerkt Erwin, daß die Kaffeevorräte insgesamt zur Neige gegangen sind. Er pilgert durch’s Büro, um den Kaffeeverantwortlichen zu finden und diesen auf diesen eklatanten Missstand aufmerksam zu machen. Hugo V., der Kaffeeexperte, berichtet gerade seinem Freund und Kollegen Karl Y., wie er es letzte Nacht im Online-Rollenspiel World of Witchcraft trotz erheblicher Widerstände eines als Mitspieler getarnten amerikanischen NSA-Analysten geschafft hat, auch die letzte Bastion der Unix-Elfen zu erstürmen. Da Erwin auch ein großer Freund von World of Witchcraft ist, klinkt er sich in das Gespräch ein und berichtet begeistert über das letzte Wochenende, als er World of Witchcraft bei einer LAN-Party des Karnevalsvereins in der örtlichen Mehrzweckhalle installierte. Alle Gesprächsteilnehmer sind sich nach eingehender Diskussion einig, daß aufgrund der Performance-Vorteile nur Ubuntu das Betriebssystem der Wahl sein könne, obwohl natürlich auch Gentoo wegen der aktuelleren Sicherheitsupdates in die engere Wahl gezogen werden müsse.

11:00 Uhr

Mit einer nun vollen Kaffeetasse bewaffnet kehrt Erwin voller Tatendrang an seinen Rechner zurück. Seine Story wurde beim Sprint Planning mit genügend Zeit beschätzt und er brennt darauf, die Story zu erledigen. Er läßt erst einmal einen svn update (die Geschichte spielt bekanntermaßen vor langer Zeit) und einen kompletten Build des gesamten Systems laufen, um auf den neuesten Stand des Quellcodes zu kommen. Sicher ist sicher. Eine solide Basis für den Tag.

Der Build dauert ein paar Sekunden und Erwin wirft einen Blick auf seinen Mac – Knoppix meldet keine Beschädigungen auf der Bootplatte. Nochmal den ausgewiesenen Experten Hugo B. kontaktiert. Dieser kratzt sich ausgiebig am Kopf und wirft die Frage auf, ob Erwin nicht mit einer SSD als Bootplatte besser bedient wäre. Eine gute Idee, denkt Erwin, und schaut gleich mal bei arlt.de nach den aktuellen Preisen. Arlt.de bietet eine Sandvox GTI 3000 für 129€ oder eine Alligator Vertex 2 für 149€ an, beide erscheinen ihm als geeignete Kandidaten. Erwin ist sich allerdings ob der angegeben Firmwareversionen unsicher und prüft auf dem bekannten Forum technik-freaks.de, ob bereits Erfahrungswerte mit dieser Firmware vorliegen. Siehe da, diverse Forumsmitglieder widersprechen dem detaillierten Testbericht der Alligator Vertex 2 und berichten von enormen Performance-Einbußen im Nanosekundenbereich bei Schreiboperationen für große Mengen von Dateien mit weniger als 0.5KB Größe. Der Experte Hugo B. ist sich nicht sicher, ob das Formusmitglied nicht “Nano” mit “Mikro” verwechselt hat und empfiehlt, nochmals beim konkurrierenden Forum hardware-für-dummies.de vorbeizuschauen. Aber die dort zahlreich vorgetragenen Argumente überzeugen Erwin nicht. Er entscheidet sich nach reiflicher Überlegung dafür, bei nächster Gelegenheit eine Sandvox GTI 3000 vorzuschlagen.

12:00 Uhr

Ein Blick in seinen Mailer offenbart Erwin, daß die Builds mal wieder nicht durchgelaufen sind. Naja, einer muß sich ja zuständig fühlen. Eine genauere Analyse zeigt, daß die periodisch erscheinenden Updatemeldungen des Betriebssystems das Buildscript zum Abbrechen bewogen haben. Gründlich wie er ist, installiert Erwin die neuesten Patches auf allen 4 Buildrechnern und startet die Builds erneut. Leider bricht der Build nun sofort mit kryptischen Fehlermeldungen ab. Eine Befragen von google.de und das Durchforsten diverser Foren ergibt, daß die im Buildsystem verwendete Version der Scriptsprache nicht mehr mit dem letzten Betriebssystem-Patch kompatibel ist. Erwin lädt seufzend die aktuellen Sourcen und übersetzt die Laufzeitumgebung der Scriptsprache neu. Endlich, die Buildscripts starten wieder. Daumen drücken.

13:00 Uhr

Mailer schließen und kurz in die Entwicklungsumgebung geschaut. Das am Vormittag gestartete svn update & der komplette Build brauchten wohl keine 5 Minuten. Ein Glück, daß Erwin bevorzugt auf einem Windows-Rechner arbeitet, auf dem solche kurzen Turnaround-Zeiten die Regel sind.

Leider ist das Frühstück heute morgen ausgefallen, es meldet sich ein Hungergefühl. Erwin bereitet sich in der Küche ein Mittagessen zu. Gerade die Kombination von Rohkost mit Quark ist wegen der fettlöslichen Vitamine für ein effizientes Arbeiten unerlässlich. Während er sein verdientes Mittagessen vor seinem Rechner zu sich nimmt, informiert Erwin sich auf heise.de über die neuesten Nachrichten aus dem IT-Sektor. Unglaublich, Roland Profalla von der CDU fordert eine Internetsperre für alle über 18-jährigen, damit der aktuellen Abhöraffäre um das Handy seiner Scheffin wirkungsvoll begegnet werden könne. Noch unglaublicher, was für inkompetente Kommentare andere Leser zu diesem Artikel abgeben. Erwin beschließt, diesen Internet-Trollen mit einem wohlformulierten Forumseintrag ein für alle Mal zu zeigen, wo der Hammer hängt.

13:30 Uhr

Erwin räumt sein Geschirr vorschriftsmässig in die Küche. Die Nahrungsaufnahme und der Anblick der Toilettentüre haben Erwin’s Verdauung in die Gänge gebracht. Er verschwindet auf der Toilette und liest den zufälligerweise in der neuesten c’t enthaltenen mehrseitigen Testbericht zu SSDs, der ihm allerdings auch bei genauestem Studium keine neuen Erkenntnisse bringt.

13:50 Uhr

Tatendurstig erscheint Erwin wieder aus den Niederungen seiner Verrichtung. Als er am Scrum-Raum vorbeikommt, sieht Erwin, wie der leicht gestresste Scrum-Master das Board umorganisiert. Hilfsbereit wie er ist, unterstützt Erwin den Scrum-Master, druckt die 100 neuen Kärtchen aus und heftet diese zusammen mit dem Scrum-Master an die Wand. Der Scrum-Master ist wieder entspannt.

14:15 Uhr

Zurück vor seinem Rechner will Erwin gerade tatendurstig mit der Bearbeitung seiner Story starten, als sich zwischen zwei Kollegen eine technische Diskussion um die Implementierung eines anderen Tasks entspinnt. Da die beiden Kollegen nicht wirklich weiterkommen, abgesehen sowieso eine gewisse Planlosigkeit bei generischer Programmierung offenbaren und zuguterletzt auch Erwin tangential betroffen ist, schaltet er sich in die Diskussion ein. Diese driftet kurz darauf in theoretische Spekulationen über mögliche Performance-Implikationen völlig unbekannter und nie geahnter Implementierungsvarianten ab. Da es schon 14:50 Uhr ist, entscheidet die Runde auf den Scheff zu warten, der jede Minute eintrudeln sollte, um diesem eine Entscheidung abzuringen.

15:00 Uhr

Der Scheff betritt gehetzt das Büro und wird von der immer noch beieinander sitzenden Runde sofort kassiert.

15:10 Uhr

Der Scheff hat wie nicht anders zu erwarten auch keinen Plan (auch in Paralleluniversen vor langer Zeit ein weitverbreitetes Phänomen) und flüchtet sich in Allgemeinplätze wie “Da ist was falsch” oder “Das müßt Ihr anders machen”. Nach kurzem Nachdenken trumpft er dann mit einem “Was sagt denn eigentlich der Debugger? Schon mal reingeschaut?” auf. Verdammt – daran hatte natürlich niemand gedacht. Die Runde entscheidet sich, das Thema erst genauer am Rechner zu analysieren bevor man weiterdiskutiert. Als ausgewiesener ÖPNV-Jünger macht Erwin L. den Scheff noch dankenswerterweise darauf aufmerksam, daß die aktuelle Webcam für die Umgehungsstraße einen Bautrupp zeigt, der seit 11:00 Uhr gerade beide Fahrbahnen aufreißt und offensichtlich seit 2h nicht in die Pötte kommt, weil die Biervorräte zur Neige gegangen sind. Ein Ende wäre nicht abzusehen, da der örtliche Bioladen aufgrund eines Lieferengpasses aus Oberbayern kurzfristig auch keine Starkbiervarianten mehr anbieten könne. Der Scheff möge bei der späteren Heimfahrt vorsichtig sein.

15:15 Uhr

Erwin wendet sich wieder seinem Rechner zu. Wo war er stehen geblieben? Ah, seine Story. Genau. Noch schnell ein svn update – man ist ja paranoid – und Erwin beginnt mit der Bearbeitung. Erstaunlich – ein Kollege, der vor ihm am fraglichen Teilsystem arbeitete, hat bereits Tests für die fragliche Klasse entwickelt, obwohl aufgrund der externen Abhängigkeiten zu einer SQL-Datenbank sowie einem Regensensor eigentlich eine testgetriebene Entwicklung von vorneherein ausgeschlossen scheint. Erwin startet also seinen Tag mit dem Erstellen eines Tests für seine neue Funktion. Was könnte man denn testen? Hmm. Ah. CHECK(container.size() == 0);

15:20 Uhr

Noch schnell den neuesten Codestand aus dem svn besorgt und Erwin startet erwartungsvoll den Build, um den Code für seinen Test auszuprobieren. Oha, das Übersetzen dauert wohl mehr als fünf Sekunden, da hatte jemand doch noch eine größere Menge Code in der Zwischenzeit… Erwin beschließt, nicht auf das Ende des Übersetzungsvorgangs zu warten und wendet sich wieder seinem Browser zu. Oha, da ist ja noch der Reiter mit dem heise.de Forums-Thread zu Roland Profalla offen. Unfassbar, schon wieder über 30 Einträge aufgelaufen. Komplett planlos, diese Leute von der CDU. Und zuviel Zeit haben sie auch noch. Erwin beschließt seufzend, noch einen letzten Versuch zu starten und schreibt den Trollen nochmal sehr deutlich was er von ihnen und insbesondere der Heldenverehrung des Franz Josef Strauß in der bayrischen Geschmacksrichtung der CDU hält.

15:35 Uhr

Befriedigt wendet sich Erwin wieder seiner Entwicklungsumgebung zu. Der Build war inzwischen erfolgreich und dauerte nur 30sec – Erwin nutzt schließlich einen schnellen Rechner der neuesten Generation. Erwin ist begeistert, der Code für seinen ersten Test läuft auf Anhieb. Er schreibt einen weiteren Test, der schon eine etwas anspruchsvollere Lösung erfordert. Erwin bittet daher zwei andere Kollegen, die seit mehreren Minuten enthusiasmiert den gestrigen Champions-League Abend auf Sky Revue passieren lassen, ihr Gespräch im Besprechungszimmer fortzusetzen – er müsse sich konzentrieren. Abgesehen davon wäre er der Meinung, daß das von Jürgen Klopp favorisierte 4:2:3:1 System gerade gegen stärkere Mannschaften aus dem ehemaligen Ostblock zu gefährlich sei, weil aufgrund der fehlenden Überzahlsituation an der vorderen rechten Eckfahne Konter über die Außen nur sehr eingeschränkt abgefangen werden könnten. Der aktuelle Aushilfsstürmer sei auch ein reiner Strafraumspieler, der weder in der Arbeit nach hinten entsprechende Akzente setzen könne noch wisse, wo das Tor steht. Die Kollegen widersprechen selbstredend, verziehen sich aber nach längerer, erhitzter Diskussion unter Murren ins Besprechungszimmer.

16:20 Uhr

Nach 30min intensiven Nachdenkens immer noch keine Lösung für den Test gefunden. Erwin beschließt sein Gehirn durchzulüften, den Kollegen das Auffrischen der Kaffeevorräte abzunehmen und pilgert zum Kaffeeröster des Vertrauens. Glücklicherweise war der Kaffee im Angebot. Echte Arabicabohnen mit erhöhtem Koffeingehalt. Das Sprintziel erscheint erreichbar.

16:40 Uhr

Wieder zurück im Büro, wird Erwin vom Kollegen Q. abgefangen, der mit deprimierter Stimme von Abstürzen mit dem neuesten Build auf seiner Maschine berichtet. Erwin hört sich die Sorgen & Nöte geduldig & aufmerksam an, richtet Q. mit seiner bekannt optimistischen Art wieder auf und man verabredet sich auf den morgigen Vormittag, um gemeinsam das Problem zu analysieren.

16:55 Uhr

Wieder zurück an seinem Rechner ist die algorithmische Lösung schnell gefunden. Der zweite Test läuft. Saubere Sache. Es geht voran. Weiter im Text. Dritter Test.

17:15 Uhr

Aufgrund der kalten Witterung bietet sich Kollege Y. an, eine Runde Eis für die Mannschaft zu holen. Eine leckere Sache. Erwin erbittet zwei Kugeln Vanille aus biologischem Anbau sowie eine Kugel Schlumpfeis.

17:30 Uhr

Nach dem gemeinsamen, den Zusammenhalt des Teams stärkenden Verzehr des Speiseeises geht Erwin wieder an’s Werk. Er findet nach kurzem Suchen ein Stück Code, welches mit ein klein wenig Arbeit auch seinen vierten Test erledigen könnte. Aufgrund der fortgeschrittenen Stunde kopiert Erwin dieses Codefragment kurzerhand in seine Funktion, ein paar kleine Änderungen und siehe da, auch der dritte Test des Tages läuft erfolgreich durch. Erwin kommt in Schwung.

18:15 Uhr

Die kostenlose Time-Tracking Applikation seines Smartphones informiert Erwin darüber, daß er heute schon über 8h 15min Büro weilt. Er beschließt den Tag, indem er seine Arbeitszeit am JIRA Task logged: 2.5h (in diesem fiktiven Paralleluniversum wird Timetracking scheinbar zur Selbstkontrolle verwendet). Hmm, damit hat er die für diesen Task veranschlagte Zeit bereits um 1.5h überzogen. Und Erwin hat noch einige andere, komplexe Stories in diesem Sprint zu meistern, von den eingegangenen Code Reviews für bereits erledigte Tasks einmal ganz abgesehen. Das Sprintziel scheint gefährdet. Erwin notiert sich, dass er dies beim morgigen Daily Scrum zur Sprache bringen muss. Bei der nächsten Retrospektive muss er darauf drängen, dass die Zeiten für die einzelnen Stories & Tasks noch konservativer geschätzt und Stories vorab genauer analysiert und besprochen werden.

18:20 Uhr

Erwin Lindemann beschließt sein Tagewerk und strebt seinem heimischen Rechner zu, um endlich einmal produktiv eine neue Version von Debian aufzusetzen.

Wie erwähnt – die Geschichte spielt in einem Paralleluniversum. Vor langer Zeit. Völlig unrealistisch – Science-Fiction.

Jede Ähnlichkeit mit lebenden Personen oder Entwicklungsmethoden ist nicht beabsichtigt und definitiv ausgeschlossen.