Technical Debt
Heute mal wieder ein kleiner Rant über die Arbeit, um mal wieder den Frust raus zu lassen.
Aktuell untersuche ich, wie die Anwendung mit einer Art Dark-Mode versehen werden kann. Dazu schau ich mir die Stellen an, wo Entwickler Farben fest definiert haben, was sie da verwendet haben (semantisch oder fester Wert) und versuche daraus API abzuleiten die benötigt wird, um es einfacher, besser und schneller zu machen und natürlich zukunftsfähig für Dark-Mode oder andere Themes.
Man kann sich vorstellen, über wieviel #Schruz Code man da stolpert. Sachen die solange hingebogen werden, bis es so aussieht als würde es passen. Klar Quick-Solutions baut jeder mal ein, aber manche Dinge sind einfach nur wahnwitzig und aus der Faulheit geboren.
Aktuelles Beispiel war die Definition einer ID. Der Entwickler war der Meinung, dass es ganz doll clever ist, wenn man da einen übersetzbaren String nimmt. Für deutschsprachige Anwender war die ID also sowas wie "Richtig Cool", für Englischsprachige "Really Cool". Wobei, ich korrigiere mich, man hat erkannt, dass das Mist ist. Also wurde der Wert mit lower case und einem Replacement von " " auf "_" versehen. Da hat also jemand verstanden, dass das nicht so von Vorteil wäre eine ID mit Leerzeichen zu versehen. Nun gut, ich wäre da gar nicht drüber gestolpert, wenn da nicht der Webrenderer ein Problem damit gehabt hätte, dass am Ende des Strings ein \n also ein Zeilenumbruch aus Versehen angefügt wurde. Der ist nämlich beim Parsen abgestürzt und riss die ganze Anwendung mit. Zweites Problem was zunkünftig aufgefallen wäre ist, dass die automatischen Tests mit der ID gebaut wurden. Die bauten somit auf "richtig_cool" auf. Als dem Test mal ein englischer Nutzer untergeschoben wurde, ging es auf die Bretter...
Dieses Sache kostete mich Einiges an Arbeitszeit und hatte noch nichtmal was mit der Aufgabe zu tun, warum ich eigentlich dort vorbeigekommen bin. 5min Faulheit bei der Entwicklung haben somit später einen erheblichen Mehraufwand eingebracht. Dieser Technical Debt ist nicht mal mit den üblichen Metriken messbar, klar Sonar Issues und Co gibt es auch noch zu Hunderten und Tausenden...
Ansich macht mir diese Arbeit auch Spaß und ich bin neugierig auf Ideen und Entwicklungssachen der Anderen, aber diese Sorglosigkeit bereitet mir Kopfzerbrechen, weil ich auch nicht weiß, wie man dieser effektiv begegnen kann. Steter Tropfen, klar, aber ohne Projektcharakter sitzen die Leute soweit weg, dass man gar nicht merkt, wieviel Debt da kreiert wird. Es wird auf jeden Fall nie langweilig und ob ich das Ziel erreiche mit dem Dark-Mode ist auch eine Wundertüte.
Der Frust ist erstmal weg und die "Welt" ein kleines Stück besser und jetzt ja sowieso Wochenende.