Der gemeinsame Nenner
War die letzten anderthalb Tage im Außendienst. Wieder einmal hat sich
gezeigt, das schlimmste Problem auf welches man in der IT stoßen kann
sind:
Drei Probleme die wie eines aussehen.
Drei Probleme die wie eines aussehen.
Es ist ja verlockend bei einer Fehlfunktion immer von nur einer Ursache auszugehen, und obwohl man weiß dass es problematisch ist erwischt man sich selbst immer wieder dabei. Man sucht nach dem gemeinsamen Nenner aller Symptome und beißt sich daran die Zähne aus.
Im besseren Fall findet man keinen und verliert kurz den Glauben an die IT per se oder an die eigenen Fähigkeiten. Das geschieht jedoch immer nur kurz und danach berappelt man sich mit der gesunden Überzeugung, von falschen Annahmen ausgegangen zu sein. If you can't find a bug, your propably seeking at the wrong place.
Im schlechteren Fall findet man eine potentielle Allheil-Quelle, steckt u.U. gewaltige Aufwände in Verifizierung und Korrektur, vermasselt sich den Code auf Jahre hinaus mit unständlichen Workarounds...und steht am Ende eine Kategorie frustrierter wieder da wo man angefangen hatte.
Im konkreten Fall handelte es sich um eine besonders unglückliche Fehlkonfiguration eines Caches der viel zu niedrig eingestellt war und dadurch teilweise die Software total lahm legte. Die Anforderungen wurden langsamer abgearbeitet als neue hereinkamen, was im Endeffekt die Performance total ausbremste.
Einen Teil der Unnachvollziehbarkeit des Problems machte die Tatsache aus, dass die Fachabteilung dies als totalen Absturz interpretierte, wonach wir uns natürlich auf die Suche nach potentiellen Absturzursachen machten und hoffnungslos an der falschen Stelle suchten. Dieses Tot-Stellen wurde sehr freundlich durch den Application Server unterstützt, der für die jeweilige Umgebung viel zu wenig Prozesse zur Verfügung stellte. War die Obergrenze erreicht, so blieb jegliche Reaktion der Anwendung aus. Wäre von Anfang an erkannt worden, dass das Ding nur um Luft rang jedoch durchaus noch lebte, wäre man sehr viel schneller in den Tuning-Bereich gewechselt.
Und last not least galt es noch ein sehr hübsches Memory-Leak im verwendeten XSLT-Prozessor zu erkennen. welches den Heap langsam aber stetig zumüllte. Die Naivität der Programmierung in diesem problematischen Code-Bestandteil (da Open Source auch gnadenlos offengelegt) wird nur noch durch mich an ganz ganz ganz schlechten Tagen übertroffen.
Schlussfolgerungen:
- Frust ist immer noch steigerbar, darum sollte man ihm sich nur sehr kurze Zeit hingeben
- Genaues Hinschauen, vor allem der Wille dazu, ist durch nichts zu ersetzen
- Mein Vater hatte recht. Ich hätte mir was solides als Profession aussuchen sollen. So aber kollabiere ich über kurz oder lang an einem Nervenkollaps.