Alles auf Anfang
Mein aktuelles Programmierprojekt auf der Arbeit ist mal wieder eine Lotus Notes Anwendung, diesmal aber mit einem Web-Frontend. Generell wirbt ja auch IBM damit, dass sich wunderbar einfach jede Notes-Anwendung mit einer Browser-Oberfläche ausstatten lässt, die Realität sieht aber deutlich anders aus. Viel JavaScript-Gefrickel, um selbst triviale Funktionalität nachzubilden und ein Layout, dass man guten Gewissens als hässlich beschreiben kann, wenn man nicht drastisch nachhilft. Für mich kommt dazu, dass meine Kenntnisse im Bereich Notes im Web kombiniert mit AJAX (die Programmiertechnik, nicht das Putzmittel) noch verbesserungswürdig sind. Kurzum, nicht mein Spezialgebiet.
Praktischerweise hat mein Chef schon einmal etwas ähnliches zusammengezimmert und konnte mir mit einer Beispielanwendung aushelfen, die auch einige wirklich nette Oberflächenspielereien einsetzt. Dadurch motiviert war mein Gedankengang “das sollte ja dann auch in ähnlicher Schönheit zu schaffen sein”. Die JavaScript-Bibliotheken dazu sind allerdings auch im Netz zusammengesucht und gerade so eingesetzt, dass die Anwendung läuft; Hintergrundwissen konnte er mir nicht vermitteln.
Ich habe mich also erst einmal an das Design einer Webmaske gemacht, die ich vor ein paar Tagen angefangen hatte und versucht, die Bibliotheken soweit zu verstehen, dass ich sie einsetzen konnte. Dabei ist mir schon beim Test der Demoanwendung aufgefallen, dass diese einige Fehler enthält, die ich gerne ausmerzen würde. Also dazu Notizen gemacht und auf später verschoben.
Die Probleme fingen dann so langsam an – der zu importierende Code war gelinde gesagt gewöhnungsbedürftig, ziemlich schlecht kommentiert und einige Klassen sogar mit einem Obfuscator behandelt und somit praktisch unlesbar. Ein JavaScript-Profi hätte damit sicherlich weniger Probleme gehabt, aber für mich gestaltete sich erst der Einbau und dann die folgende Fehlersuche ziemlich mühsam. Nichtsdestotrotz hatte ich nach geraumer Zeit den Zustand erreicht, dass ich die Geschichte einigermaßen verstanden und auch in meiner Anwendung lauffähig hatte – die Fehlerkorrektur der Dinge, die mir schon in der Demo aufgefallen sind, stand aber noch aus.
Allerdings machte sich ein schlechtes Gefühl breit – ich hatte nun Code in meiner Anwendung, den ich zum Teil nur mühsam verstanden hatte, der völlig von meinem sonstigen Programmierstil abwich und von dem ich vor allem jetzt schon wusste, dass er nicht fehlerfrei war. Ich ging also noch einmal meine Optionen durch und überlegte, wie ich jetzt weitermachen sollte:
- Hinnehmen, dass ich einen Teil des Codes nicht verstehe oder verstehen kann, weil er absichtlich verunstaltet wurde. Dies schließt die Fehlerkorrektur nahezu aus, aber ich kenne reichlich Programme, die auch so verkauft werden
- Mich in den Code komplett einarbeiten, auch die obfuscation auflösen, bedeutet einen Haufen Arbeit und derzeit ist nicht klar, was das bringt
- Zurück auf Anfang. Den Code wegwerfen und es mit dem jetzt erworbenen Wissen selbst hinbekommen, dafür ein paar Gimmicks weglassen
Nach ordentlich Abwägung war die Sachlage für mich klar: wenn ich etwas mache, dann richtig und so, dass ich mit dem Ergebnis leben kann und mich nicht dafür verstecken muss. Option 3 ist der einzig gangbare Weg, auch wenn dies bedeutet, dass einige technische Spielereien, die die importierten Bibliotheken für mich hätten erledigen können, jetzt wegfallen werden und außerdem die Programmierarbeit eines Tages hinfällig wird. Siehe dazu auch meinen Artikel von hier.
Heute morgen hatte ich gelinde gesagt kein gutes Gefühl, was diese Anwendung betraf. Zu viele unbekannte Faktoren und dadurch habe ich den Start weiter nach hinten geschoben, als eigentlich notwendig. Im Laufe des Tages hat sich das Bauchgefühl dann eher noch verstärkt. Nach dem Break und dem Neuanfang sah die Anwendung unterm Strich nicht wesentlich besser aus als heute morgen (genau gesagt gab es 3 Felder mehr in der Maske, die man ausfüllen konnte, was nicht gerade viel ist für einen Tag), aber ich hatte richtig gute Laune. Ich wusste, dass die richtige Entscheidung gefallen war, ich mich nicht verstellt hatte und jetzt die Sache im Griff habe. Allein die Kopfarbeit, die ich heute geleistet habe, war dafür verantwortlich. Manchmal ist es einfach die richtige Entscheidung, nicht direkt über Los zu gehen, sondern erst den Umweg über die anderen Straßen zu nehmen.
Ähnliche Artikel:

Leave a Reply