Und wieder wurde eines der großen Geheimnisse dieser Welt gelüftet:
Ein Kollege erzählte mir von einer Fernsehdoku, wo sich ein Lehrer rühmte, dass seinen Schülern praxisnah das Programmieren beigebracht wird… mit Turtle-Grafik in XLOGO.
Wtf? Praxisnah? Programmieren? Kommt mal wieder klar, das ist LOGO. Da ist Visual Basic ja noch eher ernst zu nehmen. Nicht viel, aber wenigstens etwas.
Mein Kollege meinte darauf: “Naja, das ist etwa so, wie seinen Namen zu tanzen, statt ihn zu schreiben. Sozusagen die Walldorf-Art des Programmierens.”
Und da wurde mir plötzlich klar: Walldorfprogrammieren? Deshalb haben so viele Leute mit SAP ihre Probleme.
PS: Die Frauen versteht man davon aber immer noch nicht.
Da ich zwischen Arbeit, Party und Cocktails zu nicht viel Produktivem komme, wollte ich mich mal kurz zu Wort melden, um zu zeigen, dass ich noch existiere.
Außerdem ist Flash Forward zu einer meiner neuen Lieblingsserien avanciert. Spannend, mysteriös und actiongeladen…
und Christine Woods! Was für eine geile Frau.l
In der Theorie lernt man sehr viele Dinge, die sich in der Praxis des Arbeitsalltags leider nur selten wieder finden. So sind Unittests in unserer alltäglichen Softwareentwicklung ein Fremdwort. Für mein aktuelles Projekt wollte ich diesen Umstand aus gegebenem Anlass ändern und habe angefangen, Tests nachzustricken.
Während des Entwerfens der Testfälle fragte ich mich, wie sich die Klasse, die ich gerade bearbeitete wohl unter Reset ihrer Daten verhält, und ob ihr Zustand danach wirklich definiert ist, da ich ursprünglich davon ausging, dass die Daten nur einmal pro Instanz gesetzt werden, was ich aber programmtechnisch nicht erzwungen hatte.
Ich hatte zwei Möglichkeiten: Im Source der Klasse nach lesen, was in diesem Fall wohl passiert, oder einfach einen Testfall dafür schreiben. Ich entschied mich für die zweite Lösung, was zu zwei Ereignissen führte: Ich entdeckte, dass sich die Klassenimplementation tatsächlich falsch verhielt und ich hatte das erste Mal in der realen Welt Kontakt mit test driven development (TDD).
Bei der ganzen Sache fiel mir ein Fakt auf:
Das Leben ist wie TDD beim refactoring und bug hunting von legacy code. Man hat einen Haufen Code, von dem eine ganze Menge irgendwie funktioniert, und man weiß nicht genau warum. Und dann gibt es Code, der nicht richtig funktioniert wie er soll, und auch hier weiß man nicht, warum er das tut. Also schreibt man sich ein paar Unittests, Blaupausen der eigenen Vorstellung, wie sich das Programm verhalten soll, und fängt an, das Programm langsam aber sicher umzustricken. Man nimmt sich einer Kante der Klasse nach der anderen an und bringt diese dazu, sich den eigenen Vorstellungen entsprechend anzupassen.
Nun hat man als Schöpfer des eigenen Lebenablaufes das gleiche Problem wie der Softwareentwickler: Wenn man es mit fremdem Code zu tun hat, ist man sofort versucht, alles als Müll abzutun und wegzuwerfen und das Rad von vorne zu erfinden, wenn es aber um eigenen alten Code handelt, kann es noch so ein Schrott sein, man wird meist an der alten Implementierung festhalten und nur ein wenig hier und da rumpfuschen, in der Hoffnung, dass es besser wird.
Ab wann sollte man sich von einer Implementierung trennen und eine neue beginnen? Warum gibt es kein Werkzeug, keine Codemetrik, die einem einen Anhaltspunkt liefert, wann man etwas neu machen sollte, und wann es sich lohnt, das alte zu reparieren?
Und wenn das Design der Klasse, das Interface schon fehlerhaft war? Wie soll man so eine Entscheidung treffen, wenn man noch gar keine Vorstellung davon hat, wie die neue Klasse eigentlich aussehen soll?
Also muss man auch noch die Architektur überarbeiten. Und vielleicht kommt dabei heraus, dass das Interface schlecht war… vielleicht, oder auch nicht.
Jedenfalls ist es besser, als immer wieder Instanzen von dem gleichen fehlerhaften Klassendesign zu machen.
Music for today The Corrs – At Your Side
Es gibt Tage, die werfen mehr Fragen über das Leben an sich auf, als sie beantworten. Ich mag solche Tage nicht, denn ich mag Antworten.
Aber wenn man morgens auf dem Weg ins Büro beim Bäcker etwas für’s Frühstück kauft und abends auf dem Weg nach Hause feststellt, dass man sein Frühstück immer noch dabei hat, wirft das eine Menge Fragen auf. Unter anderem die, ob das Lächeln der süßen Bäckereifachverkäuferin 3,60€ wert war.
Willkommen im neuen Jahr.
Bin gerade über folgenden
link gestolpert. Erst fragte ich mich, wie irrational Menschen eigentlich sein können, dann wurde mir klar, dass ich durchaus Personen kenne, die sich gelegentlich ähnlich verhalten. Was aber noch viel schlimmer ist: Ich dachte mir, ich hätte ihr an seiner Stelle verziehen.
Da stellt sich doch die Frage, ob ich nur viel irrationales Verhalten akzeptiere, oder suche ich aktiv nach solchen Menschen. Bin ich vielleicht selbst nicht weniger verrückt? Könnte ich selbst so handeln? Habe ich das vielleicht schon?
Vielleicht sind massive Selbstzweifel das Schlimmste, was einem Menschen passieren kann.
|