Latest / Coding Buddies | Tech & Dev-Mindset / Jetzt oder Nie! LeBlanc's Law
Transcript
- 0:00Zu einer Software, dann ist einfach ein liebenswürdiger
- 0:02Ausdruck für das S, der die größte Scheiße, also ein
- 0:09bisschen klingt, ein bisschen gemein.
- 0:10Aber Coding Buddy, Dein Podcast rund um Softwareentwicklung und
- 0:14aktueller Tech News. Herzlich Willkommen.
- 0:28Ein herzliches Hallo hier wieder zur neuen Folge vom Coding
- 0:31Buddies Podcast. Die Gastgeber sind natürlich
- 0:36wieder ich, der Fabi und der tolle Tino A.
- 0:40Tino Grüße dich Was geht ab? Wie geht es dir heute?
- 0:43Wie geht es dir? Ja, gut, gut, gut, alles beim
- 0:48alten, alles wie immer, mir gehts gut, ich hab Bock, wir
- 0:51können loslegen und lass mal lass mal richtig starten jetzt.
- 0:54Wieder kalter, bisschen kalt, kalt, kalt.
- 0:58Draußen hat sich. Abgekühlt?
- 0:59Das stimmt aber. Geht bei dir.
- 1:02Sagst einfach drüber stehen. Einfach einfach Wegner.
- 1:05Ich bin ich bin die Flamme. Nein, genau, wir wollen heute
- 1:11mal wieder über was sprechen und um das Thema mal so n bisschen
- 1:15einzuleiten, möchte ich, dass du dir mal was vorstellst und zwar
- 1:20stell dir mal vor, du OKN Umzug steht dann ne und du machst
- 1:26diesen Umzug, räumt die Sachen rein in deine neue Wohnung.
- 1:31Und kennst du diese, diese diese bau Lampen, die manchmal einfach
- 1:34so an der Decke baumeln? Ja, weißt du die über mir hängt?
- 1:39OK, geil, nein, nein, ich weiß worauf du hinaus willst, aber
- 1:44erzähl mal weiter deine Story. So und du kommst rein.
- 1:48Zum Beispiel in den in den eingangs Flur und da ist halt so
- 1:51ne so ne Bau lampe ne und ja du räumst deine ganze Wohnung ein,
- 1:56du bringst Bilder an die Wand, du räumst deine Kartons.
- 1:59Aus. Das dauert vielleicht. 2 Wochen
- 2:01und du denkst die ganze Zeit diese diese Bau lampe.
- 2:05Die mach ich noch weg. Also da kommt ne richtige Lampe
- 2:09hin so. Und.
- 2:12Das geht so ein 2 Wochen ein 2 Monate und du denkst immer noch
- 2:16diese Bauamt die wird auf jeden Fall, also die ersetzt sich
- 2:20noch, ich muss nur die richtige Lampe finden, so und irgendwann
- 2:23ziehst du wieder aus und die Bau Lampe war unverändert so, das
- 2:27heißt quasi. Und lässt sie natürlich für den
- 2:30Nachmieter. Natürlich war der Brauch neue.
- 2:32Die bleibt da also. Das Ding ist einfach so, worauf
- 2:36ich hinaus will n bisschen ist. Kennst du diese Situation, weil
- 2:40ich kenne diese Situation mit solchen Bildern eigentlich schon
- 2:42ganz gut. Ich weiß nicht, ob dir das schon
- 2:45mal passiert ist, aber ich finde, das ist, wenn man jetzt
- 2:48im Umzugs Kontext ist, das so ein Klassiker.
- 2:52Das einfach unter Klassiker. Also einfach das einfach so.
- 2:56Lampe einfach bleibt. Ja, also im Flur hat dich ja
- 2:59glaube ich auch ewig lampe hängt, das war so ein bisschen.
- 3:03Ich wollte dich jetzt. Verstört, dass es nicht
- 3:05auffällt, aber im Prinzip war es eigentlich nur eine Fassung.
- 3:08Was? Hast du da so so hier von so
- 3:12einem Geburtstags Kringel gedünstet, dran gemacht oder
- 3:15was? Wie nennt man Gedöns?
- 3:18Na Kriegel Gedöns ist der. Fachbegriff?
- 3:20Nee, da war ja noch ein Spiegel, und dann lag das so halbwegs
- 3:24obendrauf. Und am.
- 3:26Spiel. Gehört du?
- 3:28Warst sehr kreativ. Natürlich, aber ich akzeptiert
- 3:32habe, dass die da nicht verschwinden.
- 3:34Wird der nicht der wichtigste Punkt der ganzen Sache ist?
- 3:37Ja, du brauchst Licht, du hast Licht, also du hast quasi
- 3:40irgendwie. Etwas, was funktioniert, aber
- 3:43was noch nicht so wirklich perfekt ist vielleicht, aber es
- 3:46funktioniert und damit kann man es ja theoretisch lassen.
- 3:49Genau, weil du kümmerst dich dann einfach später drum, um
- 3:52dann richtig richtig hübsch zu machen.
- 3:54Genau. Und jetzt fragen sich natürlich
- 3:56die Zuhörerinnen und Zuhörer, was hat das mit
- 3:58Softwareentwicklung? Zu tun.
- 4:00Erzähl doch mal so jetzt, da möchte ich jetzt an dich
- 4:03abgeben. Was hat die ganze Geschichte
- 4:06das? Weiß ich auch nicht so wirklich,
- 4:07warum die Geschichte erzählt hast, aber ich komme einfach mal
- 4:09heutigen Thema. Nein, Quatsch.
- 4:13Natürlich hat es was mit dem. Absolut bekannten und ominösen
- 4:19Le Blancs Lord zu tun. Was besagt Later equals never
- 4:24und im Prinzip das was du geschildert hast, lässt sich
- 4:29halt wunderbar auf die Softwareentwicklung übertragen,
- 4:31weil ich denke jeder der schon mal in größeren Projekten
- 4:34gearbeitet hat oder beziehungsweise in im
- 4:39Arbeitsumfeld wo es dann halt auch wirklich Meilensteine gibt
- 4:42und Deadlines die man einhalten muss, da tritt dann sehr schnell
- 4:46mal auf dieses Gesetz. Und zwar du bist dabei, deine
- 4:50Features zu entwickeln. Du gibst dir Mühe, am Anfang ist
- 4:52alles cool, wie du meinst. Du ziehst quasi ein in deiner
- 4:56Entwicklungs Umgebung ne und fängt an die ersten Sachen zu
- 4:58machen, aber Umfang kommt Druck auf die ganze Nummer und du hast
- 5:03halt quasi nicht mehr die Zeit alles sorgfältig zu machen weil
- 5:08Sachen fertig werden müssen und dann kommt genau dieser Punkt,
- 5:11dass du sagst es funktioniert ja erstmal genauso wie die Bauland.
- 5:14Ich habe ein Feature entwickelt, das funktioniert, aber
- 5:17eigentlich weiß ich schon, das kann so nicht bleiben.
- 5:19Es gibt vielleicht ein Fall, den ich noch nicht berücksichtigt.
- 5:22Habe dann schöner. Wie es kann schöner werden, das
- 5:24ist auch ein Punkt, richtig, oder kommen wir nochmal zurück,
- 5:28dass du weißt halt so und es gibt einen super seltenen Fall,
- 5:31dass dann vielleicht ein Fehler auftritt, aber das ist sehr
- 5:33unwahrscheinlich und würdest du es dann halt erstmal so lassen
- 5:36und dich quasi später darum kümmern und diese
- 5:40Anführungszeichen, die ich gemacht hab, müsst ihr euch
- 5:41jetzt alle vorstellen später und genau das soll heute unser Thema
- 5:46sein und ich würde mich freuen, wenn wir vielleicht einfach mal
- 5:48so von uns selbst berichten. Wie wir das quasi so erlebt
- 5:51haben, wie man am besten damit umgeht und wie man vielleicht
- 5:56auch versuchen kann, das zu vermeiden.
- 5:59So gute Fragestellung würde ich sagen oder dann leg mal los, ich
- 6:04geh mal. Ich hau mal ab hier.
- 6:06Du musst noch umziehen. Genau.
- 6:10Nein, aber kennst du diese Situation oder würdest du sagen,
- 6:12ja OK, auf in der Theorie kannst du dir vorstellen, dass das
- 6:16Leuten passiert, aber ist es auch praxisbezogen?
- 6:18Also hast du diese Erfahrung wirklich schon gemacht?
- 6:20Ja, also definitiv. Es sind halt sind halt weiß ich
- 6:26nicht, das begegnet einem irgendwie an vielen Stellen
- 6:28einfach, also auch regelmäßig. Ich glaube, das schönste
- 6:31Beispiel, dass so ein to do im Code, dass man sich rein
- 6:35schreibt, eventuell ne hat, vielleicht wahrscheinlich auch
- 6:38schon wieder erlebt to do das und das ne und.
- 6:43Was ist die Intention hinter einem to do?
- 6:46Warum schreibe ich das dahin? Ja, es ist ne gute Frage.
- 6:50Du willst es halt später noch mal machen, ne?
- 6:53Genau, also du willst es halt jetzt in dem Augenblick nicht
- 6:55machen, obwohl du weißt, dass was geändert werden muss.
- 6:58Ja, genau. Und später ist gleich niemals.
- 7:01Also ne, also willst du später machen.
- 7:05Also man kennt. Also ich kenne das auf jeden
- 7:06Fall, dass man zum Beispiel und Code schreibt oder TO dos im
- 7:10Code findet und entweder halt dann heißt, also man selber sich
- 7:15denkt, ja ja ich mach das später noch gut, dass ich
- 7:18hingeschrieben hab, ich mach es später noch.
- 7:20Was aber nicht passiert oder dass man halt irgendwie to
- 7:23findet, von wem anders und sich dann sag mal was ist das hier,
- 7:26ja wir müssen das und das noch machen, AOK manchmal gibt es so,
- 7:29geht sogar so weit, dass man to do findet und sagt, was ist denn
- 7:32das A. Ja ja, aber das ist nicht mehr,
- 7:35ist nicht mehr notwendig. Also oder weiß gar nicht mehr,
- 7:38was man da machen wollte. Auch ein gutes Beispiel, auch
- 7:42ein gutes Beispiel also, das ist so finde ich das so, eines der
- 7:47ersten Anzeichen von so einem Later.
- 7:50Equals never von so einem. Es ist so ein to do meiner
- 7:55Meinung nach ne, aber es gibt ja auch noch andere Dinge.
- 7:58Beispiel to S finde ich auch absolut furchtbar.
- 8:04Und schreib sie trotzdem selbst. Also das ist halt genau das
- 8:07Ding. Es ist ja jetzt nicht einfach
- 8:08so. Ja, das sollte man niemals tun
- 8:10und dann macht man es auch nicht.
- 8:11Jeder kommt glaube ich mal in diesem Moment oder in diese
- 8:14Situation, dass man sagt, ach, verdammt noch mal, ich mach
- 8:17jetzt einfach n to daran, ich, ich kann das jetzt nicht machen,
- 8:19ich muss jetzt erst mal was anderes fertig machen und das
- 8:22ist halt genau die Falle dahinter, dass man quasi das
- 8:27Gesetz erfüllt und sagt, OK, ich werde niemals machen, innerlich
- 8:31weiß man, wird es niemals sagen. Ja, man muss natürlich auch ein
- 8:35bisschen sagen, dass natürlich dieses, dieses Later, es never
- 8:39das ist eine Tendenz, ne, also nur weil man jetzt zum Beispiel
- 8:42sagt, so OK, man schreibt jetzt n to do dran oder so heißt das
- 8:45ja nicht zu hundertprozentiger Wahrscheinlichkeit, OK, das wird
- 8:48niemals passieren. Ja, natürlich nicht.
- 8:51Aber es geht um das Zeichen dafür, dass man genau in diese
- 8:54Richtung läuft. Halt ne genau und ich kenne das
- 8:57Halt von mir selbst auch, dass du den Darm an to do anschreibst
- 9:01und dann also jetzt nicht die ganze Zeit, aber wenn die
- 9:04anderen nicht. Abgearbeitet werden.
- 9:06Dann hast du halt doch irgendwann eine Liste, die
- 9:07relativ lang ist, ne? Ich muss jetzt ein Feature
- 9:10implementieren to do feature 1 implementieren gut, dann zweite
- 9:13nächstes. Mann, war das ein stressiger
- 9:17Tag. Leider.
- 9:20Aber das Thema ist genau was du meintest mit Features und
- 9:23Feature. 2. Wenn du sagst OK ich habe jetzt
- 9:25das erste Feature beendet und implementiert und hab dann noch
- 9:28eigentlich offene Punkte, heißt es ja nicht, dass dann erstmal
- 9:31keinen zweiter Request kommt, ein anderes Feature zu
- 9:34implementieren, also die Arbeit bleibt ja nicht aus, so dass du
- 9:38dann 100% deiner Zeit in die TO dos stecken kannst.
- 9:42Im Gegenteil, es werden in der Realität meistens mehr to dos
- 9:46und du musst trotzdem weiter quasi vorwärts entwickeln und
- 9:49nicht zurückschauen. Und das ist ja auch genau das
- 9:52Thema Refactoring, was wir schon besprochen hatten.
- 9:56Super Beispiel definitiv. Na Refactoring ist so eine
- 10:00unfassbar wichtige Sache um auch gerade sone Sachen aufzuräumen
- 10:03und zu verbessern und die Code Basis sauber zu halten ne und ob
- 10:08sag ich mal nahezu optimal zu halten weil ich meine was
- 10:10optimal ne aber halt nah dran zu kommen und wenn du jetzt viel
- 10:15mit to dos arbeitest schiebst du das alles auf und das heißt du
- 10:19Reflectors dann wahrscheinlich auch nicht und es wird halt
- 10:21immer schlimmer. Definitiv.
- 10:24Steigt ja auch die Wahrscheinlichkeit nicht, steigt
- 10:27sie, sinkt die Wahrscheinlichkeit, dass du es
- 10:28irgendwann doch mal machst. Und dann sind wir wieder bei dem
- 10:32Ding, ne. Weil es halt einfach zu viele
- 10:34werden irgendwann. Genau.
- 10:36Ja, also gerade bei bei bei Refactoring ist es natürlich,
- 10:41hatten wir wie gesagt schon mal drüber gesprochen.
- 10:45Das ich glaube, dass ist halt wichtig, dass man gerade bei
- 10:49Refactoring ne, wenn man irgendwie entdeckt, so OK, da
- 10:52könnte man jetzt was verbessern dann.
- 10:56Finde ich gibt es 2 verschiedene Möglichkeiten.
- 10:58Entweder man macht es wirklich sofort oder man schließt die
- 11:01aktuelle Aufgabe ab und wirklich im Anschluss macht man das dann,
- 11:06weil manchmal ist es natürlich schwierig so ein gewisser Art
- 11:08von von sägezahn Effekt, dass man immer wieder rausgerissen
- 11:11wird, sag ich mal aus der eigentlichen Aufgabe.
- 11:13Also angenommen du hast jetzt irgendwie ne bestimmte Aufgabe,
- 11:16die du umsetzen möchtest und siehst dann o hier könnte ich
- 11:19noch wach, dann mach ich das. So war ich nicht gerade a.
- 11:22Ja ja, genau, und dann merkst du wieder, jetzt kann ich hier was
- 11:25scheiße war ich gerade, also man muss da halt natürlich auch ein
- 11:28bisschen gucken, dass nicht völlig übertreibt, aber halt
- 11:31strukturiert macht ne. Ja, also das Aufschieben
- 11:34bedeutet in dem Fall ja nicht, mach sofort, sonst niemals ne.
- 11:38Also das heißt das ja auch nicht, sondern aufschieben im
- 11:40Sinne von ich schiebe es halt wirklich Tage hinaus oder kümmer
- 11:44mich dann schon um ganz andere Themen.
- 11:45Ich bin da ganz bei dir. Wenn ich jetzt gerade in der
- 11:47Feature Implementierung bin und mir fallen Sachen auf, kann ich
- 11:50ja signos machen und wenn das Feature erst mal grundlegend
- 11:54funktioniert, kann ich mich darum kümmern, gerade damit man
- 11:57gedanklich nicht immer rausgerissen wird, da bin ich
- 11:59absolut bei dir. Problematisch wird es halt, wenn
- 12:02du sagst, dass Features abgeschlossen und der das offene
- 12:05liegt auf der to do Liste und ich fang was neues an, weil dann
- 12:08läufst du halt genau in die Richtung ne, also in die falsche
- 12:11wohlgemerkt. Aber das ist noch mal, was ich
- 12:14nochmal interessant finde, weil ich ja gerade so meinte to do
- 12:16feature 1 so nächstes was sind denn so eigentlich oftmals TO
- 12:21dos die so anfallen? Also das das geht ja hier
- 12:24wahrscheinlich nicht um riesengroße.
- 12:28Punkte, oder also? Nee, also klassisches
- 12:31Refactoring, dass du sagst, OK, pass auf, ich könnte halt die
- 12:35Klasse zum Beispiel in 2 aufteilen, die einfach zu groß
- 12:37geworden, beispielsweise Schnittstellen vielleicht
- 12:41optimieren, dass sich die mittlerweile halt gar nicht mehr
- 12:44so wirklich richtig anfühlen oder dass die Software sich so
- 12:47weiterentwickelt hat, dass sie eigentlich gar nicht mehr
- 12:50passen. Ja, auch ein Klassiker ist
- 12:53fehlender Test. Abdeckung über Tests haben wir
- 12:55auch gesprochen, dass man einfach sagt, Na ja, die Test
- 12:58schreibe ich noch dafür. Also das ist ein Thema, da werde
- 13:01ich wirklich emotional, weil das hab ich schon sehr oft gehört in
- 13:06meinem Arbeitsleben, und meistens kommen diese Tests
- 13:09nicht mehr. Ja.
- 13:10Also da greift dieses Gesetz extrem, finde ich.
- 13:13Also wenn ich sage, OK, ich werde später die Tests schreiben
- 13:17für dieses Feature und ich sag erstmals funktioniert, weil ich
- 13:19habs einmal per Hand getestet, das also das ist, das ist
- 13:24wirklich ein heikles Thema, weil dann hast du noch ne und ne und
- 13:27dann auf einmal nachher 300 400 Tests aufwärts, keine Ahnung.
- 13:30Das ist, da kommt man ja schnell hin, ne, ja klar, dann solltest
- 13:33du dich hinsetzen und nochmal jedes Feature überlegen und die
- 13:36Tests dafür schreiben, das macht keiner mehr oder du hast einen
- 13:40riesen Overhead am Ende, weil also wesentlich mehr Zeit
- 13:43verbraucht als sie direkt zu schreiben.
- 13:46Ja, auf jeden Fall. Gerade wenn du dir überlegst,
- 13:48dass wenn wenn wenn du im Nachhinein Test und das nicht
- 13:54zumindest wirklich an der Entwicklung machst.
- 13:57Also wir gehen jetzt nicht unbedingt immer davon aus, dass
- 13:59muss jetzt nicht immer alles TDD sein.
- 14:01Also Test driven development. Aber nichtsdestotrotz meint das
- 14:04meine. Ich aber nicht.
- 14:05Aber nichtsdestotrotz, wenn du so stark nachgelagert deine
- 14:08deine deine Tests schreibst, ne, weil du das einfach immer nach
- 14:10hinten schiebst, dann ist die Wahrscheinlichkeit sehr groß,
- 14:14dass du quasi deine Implementierung Test und nicht
- 14:17die Anforderungen selber und dann wird es halt unter
- 14:21Umständen auch schwierig. Mal ganz davon ab, dass du im
- 14:23Endeffekt sagst, OK, wir haben gerade von Refactoring
- 14:26gesprochen, was man vielleicht aufschiebt, angenommen du machst
- 14:29das Refactoring, hast aber vielleicht fehlende Tests, das
- 14:31heißt die Ganze. Dein, dein dein Vertrauen in
- 14:35deinen Refactoring singt vielleicht, weil du gar nicht
- 14:37weißt. OK, ist das.
- 14:38Jetzt hat es jetzt funktioniert, verhält sich meine Software noch
- 14:41so wie vorher. Also das ist ein riesen Ratten
- 14:42Schwanz der sich da mitzieht und deswegen ist es glaube ich
- 14:45einfach wichtig. An der Stelle auch konsequent
- 14:51Sachen eben nicht aufzuschieben. Ne.
- 14:54Ja, absolut. Hattest du so eine Situation,
- 14:57mein Projekt mit dem Test aufschieben.
- 14:59Also ich meine du, ihr hattet ja nach TD gearbeitet, aber habt
- 15:04ihr selbst da erlebt, dass sie in diese Situation gekommen
- 15:06seid? Also bei Tests, bei Tests
- 15:10schreiben war es jetzt eigentlich nicht so, eher so,
- 15:12dass man irgendwie gemerkt hat, OK, hier fehlt irgendwie noch
- 15:14ne, haben wir noch n vergessen, dann wird halt erstmal der Test
- 15:18geschrieben und dann. Sozusagen dieser Fall also n
- 15:21roter Test erzeugt, dass man wirklich merkt mit diesem Test.
- 15:24OK, hier der Test fehlt und das heißt die Software kann diese
- 15:30Anforderungen, die ich gerade versucht habe Abzutasten, nicht
- 15:32erfüllen und dann kann man sich sozusagen an die an die
- 15:36Implementierung für diesen Test sozusagen, dass der Test grün
- 15:39wird dran setzen. Also das war aber jetzt
- 15:41eigentlich wirklich, also hab ich nicht so erlebt, dass da
- 15:44Tests ausgeblieben sind. Oder auch mit Absicht geschoben
- 15:49worden. Meine ich jetzt ne was ich
- 15:52gemerkt habe ist, dass zum Beispiel manchmal Momente
- 15:54auftreten, wo man vielleicht irgendwie, also man hat ja ne
- 15:57gewisse User Story oder ein Task den abarbeitet, wo Anforderungen
- 16:01im Normalfall oder sollten sie drin stehen, ne, also wie soll
- 16:06also was sind die Anforderungen an dieses neue Feature zum
- 16:08Beispiel? Und wenn du dann zum Beispiel
- 16:12merkst, a guck mal hier, was weiß ich, du hast vielleicht.
- 16:17Eine gewisse Fehler Behandlung und merkst OK, wir haben jetzt
- 16:21hier vielleicht noch eine Möglichkeit die eintreten
- 16:23könnte, die ist jetzt aber erstmal so in den Anforderungen
- 16:28nicht abgedeckt, ist auch sehr unwahrscheinlich, dass sie
- 16:31eintritt, aber ich schreib mal to do oder hab meine eigene
- 16:36Liste wo ich mit drauf schreibe, das müsste man noch mal machen
- 16:39ne. Weil ich das irgendwie gemerkt
- 16:41hab. Das ist natürlich dann also
- 16:44sowas ist auf jeden Fall vorgekommen, dass man dann
- 16:46irgendwie sowas schon mal geschoben hat.
- 16:49Und im Endeffekt dann auch sowas halt erstmal nicht gemacht
- 16:52wurde. Ne, also teilweise sogar schon
- 16:54so dass dann dieser Fehler auch wirklich.
- 16:57Von Usern entdeckt wurde also beziehungsweise was heißt
- 17:01entdeckt, also der dem User ist das passiert und wir haben das
- 17:05dann über unser Monitoring mitbekommen.
- 17:07Na OK, na immerhin. Ja, aber also Sondersituation
- 17:13kenne ich auch aus dem Klassiker ist angenommen Du entwickelst
- 17:17eine Software und arbeitest selbst halt auch damit ne, also
- 17:22du bist halt auch selbst Anwender sag ich mal.
- 17:24Oder ein Teil der Anwender. Und merkst halt eigentlich.
- 17:28Aber das ist schön Wound, das ist also ist eigentlich nicht,
- 17:31man könnte das Geiler implementieren und statt zu
- 17:34sagen, ich änder das ab und Reflector den Code nochmal und
- 17:38mach das, also änder das ganze Feature noch mal ab, fängt man
- 17:41an diesen Workaround zu nutzen, zu verinnerlichen und er regt
- 17:44sich gefühlt jedes Mal, auch wenn du an diesem Punkt kommst,
- 17:47dass es eigentlich total unhandlich ist.
- 17:50Aber das ist einfach, es ist dann einfach so und das hatte
- 17:53ich damals auch ganz viel, wo ich mir so denke, ey, warum
- 17:56nicht einmal jetzt sage OK, wir nehmen uns die Zeit ändern.
- 17:59Das und danach fühlt sich die Software vom Handling, also ja
- 18:02von diesem ganzen UX sag ich mal von der Experience dahinter viel
- 18:06besser an. Ja, das finde ich auch richtig,
- 18:08klassisches Beispiel dahinter, aber wie ist es natürlich so ist
- 18:12bis heute ist. Nicht geändert, aber das ist,
- 18:15das ist auch finde ich NN sehr, sehr spannender Punkt, und zwar
- 18:19Workarounds. Bei Workarounds feilen meiner
- 18:22Meinung nach zwar unter dieses OK, wir haben einen Workaround
- 18:26drin in unserem Code und wir müssen ihn mal.
- 18:30Ausbau in diesen Workaround wieder, und das passiert dann
- 18:34nicht ne Never, aber was finde ich noch einen Punkt dazu top
- 18:40ist ist wieso kommt es dann dazu, dass dieser Workaround
- 18:44einmal überhaupt initial eingesetzt oder erstellt wurde?
- 18:50Weißt du und da kenn ich auf jeden Fall auch, also da hab ich
- 18:54glaube ich meiner softwareentwicklungs Karriere
- 18:57schon so viele Diskussionen in in.
- 19:00Landings und so weiter geführt, wo über bestimmte Features
- 19:03geredet wurde und dies wollen wir nicht.
- 19:05Vielleicht erstmal das so und so machen so und dann merkst du, OK
- 19:09Moment, es geht hier darum einen Workaround zu implementieren,
- 19:12damit das erste Mal funktioniert und da habe ich schon so viele
- 19:16Diskussionen geführt, miterlebt wie auch immer.
- 19:20Wo es halt wirklich darum ging zu sagen, Nein, wir werden
- 19:23jetzt, also dann lass uns wenigstens eine Lösung
- 19:26überlegen, die sag ich jetzt mal zukunftsträchtig ist und
- 19:29erweiterbar ist dahingehend, was wirklich sein soll, auch wenn es
- 19:33jetzt ein bisschen länger dauert, aber wichtig ist, dass
- 19:35wir keinen Workaround einbauen, weil, und das war halt auch
- 19:38immer so das Ding, und das ist halt.
- 19:41Viele Entwickler und Entwicklerinnen stimmen da
- 19:44eigentlich auch immer zu, dass man sagt, wir können keinen
- 19:46Workaround einbauen, weil wenn du einen so einen Workaround
- 19:49eingebaut hast, dann kriegst du nie wieder raus.
- 19:53Zumindestens sehr schwer und genau, aber das merkst du ja
- 19:56schon an der Wortwahl. Ne, dass das erstmal
- 19:59funktioniert und wenn dann quasi das Feature oder im Prinzip in
- 20:03dem Fall ein Hotfix eigentlich nur so, wie sich das jetzt
- 20:06anhört, Beispiel quasi schon Ablaufdatum hat, wenn du
- 20:10eigentlich weißt, das kann so nicht bleiben, aber wie du
- 20:13meinst wenn es drin ist ist es drin und dann wird es auch
- 20:15schwer das zu ändern, weil dann kommen wieder andere super
- 20:18wichtige Themen und das ist ja genau in diesem Modus in dem man
- 20:21immer mehr verfällt und ich das kennt einfach jeder.
- 20:23Entwickler, du musst immer weiter, weiter, weiter, weiter.
- 20:27Neues Feature. Oh Gott, wir müssen fertig
- 20:28werden, wir haben keine Ahnung welche Meilensteine die wir
- 20:31erreichen müssen, irgendwelche Releases, wir haben deadlines ne
- 20:34und du fängst dann an immer weiter und weiter zu
- 20:37implementieren und guckst halt irgendwann nicht mehr zurück und
- 20:41im Prinzip redet man sich ja selbst schön, es ist ja quasi
- 20:45ein Schönreden zu sagen, ja ich mach jetzt ein to do ran, weil
- 20:48dann mach ich später also du schreibst dir quasi einen
- 20:52eigenen Entschuldigungs Zettel. Hat den Kopf, dass du dich da
- 20:56noch drum kümmern wirst, weil du weißt, dass es falsch ist.
- 20:59Du weißt einfach, dass es falsch ist, jetzt nichts zu tun.
- 21:02Vor allem also. Oder wie siehst du das?
- 21:04Ja, aber definitiv. Was weiß ich zum Beispiel auch
- 21:06nochmal wissen will, wie es dir dabei geht ist, wie nimmst du
- 21:10denn solche To dos wahr, wenn sie im Code stehen?
- 21:15Von meiner eigenen. Egal, irgendwelche.
- 21:17To do Scrollst über den Code und siehst n to do was geht dir
- 21:21durch den Kopf, was ist also, wie reagierst du darauf?
- 21:24Ja, das ist nämlich ein guter Punkt, weil du liest das.
- 21:26Also wenn du es überhaupt liest, wenn du nur so rüber Scrolls,
- 21:29glaube ich, dann ist es halt schon wieder Geschichte, quasi
- 21:32in dem Moment, wenn du drüber bist.
- 21:34Aber wenn du es dir wirklich nochmal durchliest, kommst du ja
- 21:37auch nicht zu dem Punkt zu sagen ohne Umlage.
- 21:40Jetzt ist aber wirklich Zeit das zu machen, sondern ach ja, wie
- 21:43du vorhin meintest ach ja, stimmt, was wollen wir noch
- 21:45machen, ja ja nee, das müssen wir wirklich tun und dann bist
- 21:47du trotzdem in einem anderen Thema, weil du einfach schon zu
- 21:50weit weg bist von diesem Punkt. Aber was ich auch gut finde,
- 21:53weil du meintest, wenn man die überhaupt anguckt, weil das ist
- 21:56nämlich. Das erste wie ich, also wie ich
- 21:59das bei mir mit kriege, wenn ich irgendwo die, also wenn du zum
- 22:03Beispiel in bestimmten IDN to do hinschreibst du doppelpunkt,
- 22:07dann wird das sogar highlighted. In Gelb zum Beispiel.
- 22:10Und wenn ich sowas sehe, dann ignoriere ich das.
- 22:12Also ich ich seh s erst mal gar nicht, außer ich will es
- 22:16wirklich aktiv wahrnehmen und wenn ich dann wirklich aktiv
- 22:18wahrnehme und mir sagen OK les ich mir mal durch und dann
- 22:21kriege ich schlechte Laune. Und die wollen wir nicht und
- 22:25deswegen ignorieren. Was aber das ist doch, weißt du,
- 22:28also das ist halt da, denk ich mir so, dass das Scheiße, also
- 22:30wieso will man denn irgendwas in Code einbauen, wenn man sich so
- 22:33denkt? Oh nee, also was eigentlich
- 22:35schon von vornherein entweder man ignoriert oder man denkt
- 22:38sich, boah nee, weißt du auch kein Bock, also weißt du, das
- 22:42sind ja Sachen die einfach irgendwie.
- 22:44Eigentlich vermeidbar sind. Weißt du genau, wenn du sagst,
- 22:47OK, ich kümmere mich da drum, ich lasse das jetzt mal mit
- 22:50diesen to dos beziehungsweise ich mache meine Aufgabe fertig
- 22:55und danach gehe ich das an, lasse gar nicht erst aufkommen,
- 22:58dann haste ja im Endeffekt schon mal.
- 23:02Ja, schöner weißt. Du was dann?
- 23:05Ja, dann geht es auf jeden Fall in die richtige Richtung, ist
- 23:08auf jeden Fall ein Ansatz, um darin besser zu werden, auf
- 23:12jeden Fall. Wie gesagt, früher habe ich auf
- 23:16jeden Fall mehr to dos rein geschrieben an Code und war
- 23:18immer der Meinung, naja wenn du jetzt das fertig entwickelt
- 23:21hast, dann suchst du nach allen TO dos und arbeitest die ab.
- 23:23Du kannst dir vorstellen wie oft ich nach den TO dos um Code
- 23:26gesucht hab ne zweimal und nee. Ich wollte einfach mal die Zahl
- 23:33darauf werden, ja. Danke, dass du mich so positiv
- 23:37darstellen möchtest. Lein und jetzt ist es halt so,
- 23:43dass man sich halt da doch zeitnah, also wirklich
- 23:45vielleicht nicht direkt drum kümmert.
- 23:47Aber zumindest wenn die Implementierung an sich durch
- 23:50ist, dass man danach auch das gleich macht und dann nicht
- 23:53sagt, OK, Features erstmal fertig und das ist auf jeden
- 23:56Fall ein Riesenschritt in die richtige Richtung und weg von
- 23:59diesem Prinzip, ne. Also ich finde das ist halt auch
- 24:03sehr viel mit Disziplin zu tun am Ende sich wirklich zu sagen,
- 24:07weil es ja auch teilweise Sachen, wo man sich dann auch.
- 24:10Bücher eben schon auch meinte, so habe ich jetzt eigentlich
- 24:13nicht so Bock drauf, dass mich darum zu kümmern.
- 24:15So, es gibt ja auch geile Aufgaben, dann vielleicht auf
- 24:18jeden. Fall Es hat extrem viel mit
- 24:20Disziplin zu tun. Und das ist halt ne große
- 24:23Voraussetzung, weil wir auch gesagt haben, wie kann man damit
- 24:25umgehen, ne um damit man sowas nicht aufkommen lässt und ich
- 24:28glaube das ist schon wichtig, dass man da eben die Disziplin
- 24:31an den Tag legt zu sagen, OK, du arbeitest dann irgendeine
- 24:34Aufgabe, entdeckst was, wie zum Beispiel mögliches Refactoring
- 24:40oder to do, was man abhaken. Könnte oder vielleicht auch weiß
- 24:45ich nicht. Man hat noch im Kopf, OK,
- 24:47theoretisch könnte man das und das noch absichern.
- 24:51Oder, oder. Hat irgendein Edge Case
- 24:54entdeckt, der vielleicht irgendwie jetzt nicht so präsent
- 24:57war, dass man sich dann irgendwie aufschreibt und dann
- 25:00sofort, wenn man fertig ist mit dieser Aufgabe, die man gerade
- 25:03bearbeitet hat, sich dann wirklich an diese Dinge setzt,
- 25:06und das erfordert eine Menge Disziplin.
- 25:10Ich weiß ich zum Beispiel auch mal, was ich auch mitgekriegt
- 25:13hab. In der Vergangenheit ist, dass
- 25:15es auch nicht schlecht ist, wenn man sowas mitkriegt und sowas
- 25:18sieht, entdeckt, dass man dann sich nicht selber einen eigenen
- 25:21Zettel schreibt, wo man sagt, OK, das mache ich irgendwie noch
- 25:24beziehungsweise auch wenn man wirklich sagt, ich mach jetzt
- 25:26direkt danach ne, dass man aber nicht den kleinen Zettel
- 25:29schreibt, sondern dass man das vielleicht irgendwie oftmals hat
- 25:32man ja im Team so ein Board, wo bestimmte Tickets diese diese
- 25:35Features, Tickets, User Stories sie nennen mag drin stehen.
- 25:40Dass man dann einfach quasi zugänglich für alle Entwickler
- 25:44und Entwicklerinnen im Team dieses.
- 25:47Die. Diese diese, diese diese to do
- 25:51sag ich jetzt mal ne irgendwie aufschreibt.
- 25:54Also das hattest. Du da jetzt gedanklich bei
- 25:57Tickets, dass du quasi ein Backlog, dann Tickets hast.
- 26:00Ich frage jetzt mal wirklich ne genau da oder sag ich mal in
- 26:03irgendwelchen. Chats oder?
- 26:05Nee, im im du hast den Backlog also also hatten wir das mal
- 26:08gemacht, ich kenne das beziehungsweise mal, dass man es
- 26:11gibt, wir hatten dann so n bisschen Unterteilung zwischen
- 26:14einer User Story im Bug und einem Chor und ein Tor ist dann
- 26:17zum Beispiel sowas wie du veränderst zwar nicht die.
- 26:24Den User Value, das heißt der User kriegt nicht mit, dass
- 26:27etwas verändert wurde, aber es wurde quasi technisch besser
- 26:30gemacht. Ne und solche Sachen, also was
- 26:33wurde dann darunter gepackt und dann hattest du selbst wenn du
- 26:36es selber vergessen hast, konntest du entweder selber
- 26:39wieder sehen oder jemand anders konnte sehen wenn er Zeit dafür
- 26:43hatte, konnte das gehen und dann bearbeiten.
- 26:44Wichtig an der Stelle ist natürlich ne gute Beschreibung
- 26:46an dieser also. Zu diesem Chor sagt.
- 26:51Das halt doch ein anderer quasi bearbeiten kann.
- 26:53Aber sag mal, ist euer Backlog dann übergelaufen oder habt ihr
- 26:56es wirklich bewältigen können? Das ging eigentlich ziemlich
- 26:58gut. Also das hat eigentlich ganz gut
- 27:00funktioniert und. Da ist natürlich die Gefahr,
- 27:04denn einfach das einfach das ganze Backlog voller Tickets ist
- 27:07und du quasi deine to do Liste nur quasi auf einen anderen
- 27:10Service ja. Aber wie gesagt, also da ist
- 27:13natürlich wieder der Faktor Disziplin.
- 27:16Spielt da mit rein, definitiv also.
- 27:18Unterhalt ist ein guter Punkt. Auch weil du meinst, Disziplin,
- 27:22wenn man das einfach mal so sieht, ne, das ist deine
- 27:25Software und du entwickelst diese Software, dann liegt es ja
- 27:27auch in deiner Verantwortung, dass die Rundläuft und quasi in
- 27:32einem guten Zustand ist. Ja, und wenn jetzt quasi der
- 27:35Druck von außen kommt, dass du quasi ja wir brauchen mehr, also
- 27:39quasi die Stakeholder, die quasi die Anforderungen an dich geben,
- 27:43die sagen hier, das brauchen wir und bis nächste Woche machen wir
- 27:46bis morgen, weißt du also wenn du so richtig Druck drauf
- 27:49kriegst Es ist ja trotzdem in deiner Verantwortung als
- 27:53Entwickler zu sagen, Nein halt Stopp.
- 27:55Das bleibt hier alles sauber, das bleibt alles so wie es sein.
- 28:00Aber weißt du, dass du einfach sagst, nein, ich trage die
- 28:03Verantwortung für diese Software und ich will nicht, dass jetzt
- 28:07hier die völlige Anarchie ausbricht, weil das genau dieses
- 28:10Gesetz besagt ja im Endeffekt, dass Anarchie ausbricht für
- 28:13dich, weil umso weiter du in diese Richtung läufst, ne und so
- 28:16weiter und so weiter umso schlimmer wird das ganze und du
- 28:19kriegst irgendwann nicht mehr eingefangen, ja dann, dann sind
- 28:22es halt so historische Sachen und da gibt es diesen
- 28:24wunderschönen Ausdruck, den ich echt zum Kotzen.
- 28:26Ich finde ja ist historisch gewachsen.
- 28:29Was bedeutet bitte, es ist historisch gewachsen, ist das ne
- 28:32Ausrede oder Entschuldigung dafür, dass super viel Müll in
- 28:35der Software? Ist also historisch gewachsen.
- 28:37Ist für mich auf jeden Fall immer, wenn jemand historisch
- 28:39gewachsen sagt zu einer Software, dann ist es einfach
- 28:42ein liebenswürdiger Ausdruck für dass es dir die größte Scheiße,
- 28:48also klingt, ein bisschen gemein, aber so, das ist meine
- 28:52interne Übersetzung, also das ist so, wie wenn man zum
- 28:54Beispiel sagt, er war stets bemüht.
- 28:57Ja, das heißt auch nur sowas wie die Person kriegt es nicht
- 29:00geschissen, hat aber immer wieder versucht so, also sehr
- 29:05fleißig, aber halt ohne Erfolg. Und dabei muss es halt nicht mal
- 29:09direkt an die Entwickler, also an den Entwicklern selbst
- 29:11liegen. Na gut, vielleicht mit ihrer
- 29:13Disziplin und ihren verantwortlichkeits Gefühl.
- 29:15Ja, das muss das nicht. Ne, aber das ist ja meistens,
- 29:19weil alle immer mehr sprinten wollen und irgendwie Zeitpläne
- 29:22vielleicht zu knapp kalkuliert wurden, oder?
- 29:25Es gibt ja so. Viele Gründe, warum das
- 29:27Eintritt. Also ich herauszukommen.
- 29:29Das ist halt dann, das ist dann wirklich die Schwierigkeit und
- 29:32deswegen gar nicht erst in die Richtung gelaufen.
- 29:34Also das sagt ja im Prinzip das Gesetz aus.
- 29:36Es ist ja wie gesagt OK, wenn man von außen diesen Druck
- 29:39bekommen heißt es macht, man macht mal schneller, mal
- 29:41schneller ist normal würde ich sagen ne, auch wenn es nicht
- 29:45schön ist, aber man muss halt irgendwie damit dealen können
- 29:48und ich finde den Punkt den du gesagt hast sehr wertvoll, dass
- 29:52man wirklich seine, also es ist ja die eigene Verantwortung
- 29:56eines Softwareentwickler oder Software Entwicklern zu sagen
- 29:58OK. Die Qualität der Software, darum
- 30:01kümmere ich mich und das ist wichtig, das ist, das ist die
- 30:05Aufgabe, die man, die man hat und wofür man ja quasi auch, sag
- 30:09ich mal, steht und deswegen das zum Beispiel, weil ich meinte,
- 30:14ne, ich hab ja auch ne Menge Diskussionen darüber geführt,
- 30:16dass man keine Workarounds einbaut, einfach genau um diese,
- 30:20diesen Qualitätsanspruch. Ne einfach zu gewährleisten und
- 30:26das ist ja auch so, wie wenn man jetzt zum Beispiel sagt, OK
- 30:28keine Ahnung, du hast ja auch nicht in, also in einer Stadt,
- 30:32irgendwie kommen irgendwie Leute reißen irgendwo eine Baustelle
- 30:36auf und lassen die stehen, sind gerade bei der Hälfte und sagen
- 30:39ja, komm jetzt kommt nächste Baustelle kommt, da reisen wir
- 30:41auch nochmal auf so also du musst ja irgendwie auch
- 30:45abschließen oder? Keine Ahnung, dann auch wieder
- 30:47sozusagen die Baustelle ordentlich zu machen und nicht
- 30:49einfach nur ne Platte drüber legen weißt du also das sind ja
- 30:52Sachen. Das natürlich auch teilweise.
- 30:54Realität ist, dass die Baustellen siehst du einfach
- 30:56niemand arbeitet wochenlang aber erstmal alles absperren und
- 30:58aufreißen. Ich wusste, dass das jetzt.
- 31:01Kommt aber was ich weiß, ist nicht nur in der Software
- 31:04Entwicklung so, aber was ich. Meine überall, du willst, du
- 31:07warst ja nicht haben und im Normalfall, also bei sowas kann
- 31:10man sich das auch noch ein bisschen besser vorstellen, dass
- 31:11du sagst, das würde ja keiner so machen, ne oder was?
- 31:16Was ich da auch sehr interessant finde, wenn man das mal so
- 31:19betrachtet. Du hast quasi sag ich mal, ich
- 31:23nenne es mal dein Chef oder halt deine Kunden die Anforderungen
- 31:28haben ne, also die wollen irgendwas umgesetzt haben und
- 31:30die können ja gar nicht abschätzen was es bedeutet jetzt
- 31:33da so durch zu rutschen und das irgendwie zu implementieren
- 31:36damit erstmal läuft dieses berüchtigte erstmal ne weil die
- 31:40sagen OK läuft erstmal in Ordnung ist mir egal was das
- 31:42also die kennen nicht die Auswirkungen die irgendwann auf
- 31:45dich zurückfallen werden ne ne und du als Entwickler weißt es
- 31:49aber es ist deine Verantwortung das zu wissen und quasi.
- 31:53Nach außen oder quasi dem Kunden gegenüber vermitteln zu können
- 31:57oder dem Chef oder wem auch immer deinen Product owner.
- 32:00Ja sei es drum ne und das ist halt der entscheidende Punkt und
- 32:04da hab ich halt auch mal extrem geile Analogie gelesen.
- 32:07Wenn du als Patient zum Arzt gehst, ne und ihm sagst ne Pass
- 32:11auf heut mal bitte nicht desinfizieren, ich hab keine
- 32:13Zeit, ich will jetzt einfach nur aber keine oder irgendwas
- 32:16kriegen heute zacki zacki ich hab keine Zeit ne dann sagt der
- 32:19Arzt ja auch nicht alles klar sie haben keine Zeit, sie können
- 32:22auch schon wieder gehen, das Ding ist umarmen.
- 32:24Auch die Spritze gleich mit. Oder so weißt du, und diese
- 32:27Analogie ist einfach so extrem aussagekräftig, weil es einfach
- 32:31genau das gleiche ist. Der Arzt würde ja niemals darauf
- 32:33verzichten, zum Beispiel erstmal zu desinfizieren.
- 32:36Klar, das frisst Zeit, aber es muss ja alles seine Ordnung
- 32:39haben, er weiß welche Gefahren entstehen, wenn er es nicht tut
- 32:42und der Patient eventuell nicht. Und das ist genau das Gleiche.
- 32:46Und diese Analogie fand ich einfach so geil.
- 32:48Deswegen wollte ich mit dir teilen und natürlich auch mit
- 32:50dir, lieber Zuhörer und liebe Zuhörerinnen, weil das bringt es
- 32:54einfach auf den.es ist ja deine Verantwortung, du bist der
- 32:57Experte in der Softwareentwicklung und du musst
- 32:59einfach dafür sorgen, dass alles seine.
- 33:00Richtigkeit hat definitiv. Also finde ich auf jeden Fall
- 33:03sehr gut ist ne. Ne geile Analogie.
- 33:08Ich glaube, das hat die ganze Sache nochmal auf den Punkt
- 33:12gebracht. Mir bevor wir jetzt abschließen
- 33:15die Folge zu leblanc law, lada equals never.
- 33:20Ja, ist geiler Titel. Möcht ich dich mal fragen.
- 33:23Wer ist denn der leblanc? Ja, das ist eine spannende
- 33:30Frage. Wir haben ja recherchiert im
- 33:33Vorfeld, weil ich wollte natürlich super vorbereitet
- 33:35sein, also dieses Zitat ist bekannt und das ist auch aus
- 33:38einem sehr guten Buch. Falls Interesse besteht, können
- 33:40wir das auch gerne mal nennen, aber das lasse ich jetzt mal
- 33:44offen und wir wollten halt einfach mal quasi recherchieren,
- 33:50von wem das Zitat eigentlich original ist.
- 33:53Aber das ist sehr schwierig und wir haben es nicht gefunden
- 33:56werden. Der eigentliche Autor ist,
- 33:57sondern nur denjenigen, der das zitiert hat in seinem.
- 34:01Buch, Das ist halt witzig. Es ist halt, das heißt immer, es
- 34:04ist ein, sag ich mal, in ein Konzept oder Gesetz, was in der
- 34:09Softwareentwicklung oder in der Informatik halt eben bekannt
- 34:12ist. Und das heißt aber, wenn du halt
- 34:16irgendwie leblanc oder Le Blanc oder wie man das ausspricht,
- 34:19Googelst es gibt dieses dieses, es gibt diesen Satz, es gibt
- 34:24aber gefühlt zumindest sind wir zu blöd dafür gewesen.
- 34:27Herauszufinden, keine Person, die dahinter steht, also weiß
- 34:31ich nicht. Ist schon interessant.
- 34:33Also wenn jemand weiß wer diese Person ist, dann sagt uns das
- 34:38bitte mal. Bitte dann bei uns melden.
- 34:40Wir wollen es. Unbedingt wissen, das wäre echt
- 34:42cool. Genau.
- 34:45Ansonsten würde ich sagen, ja, haben wir doch ganz cool
- 34:48besprochen, würde ich sagen, hat wieder mega Spaß gemacht, fabi,
- 34:52ich würde ja auch die Folge quasi dabei belassen.
- 34:54Was meinst du ja? Ich hab nichts mehr hinzufügen.
- 34:58OK, sehr gut. Ja dann würd ich sagen, liebe
- 35:02Zuhörerinnen, liebe Zuhörer, falls ihr diese Folge gefallen
- 35:04hat, abonniert doch gerne. In diesem Podcast lassen Like da
- 35:09meld dich auch gern bei uns auf den anderen Plattformen um und
- 35:11zum Beispiel zu sagen, Wer dieser Le Blanc ist oder falls
- 35:14du auch noch Anmerkungen und Beispiele zu diesem Thema
- 35:17hattest. Oder hast die Links findest du
- 35:20in den Show Notes. Ansonsten würde ich sagen bis
- 35:24zum nächsten Mal. Es hat wieder ne Menge Spaß
- 35:26gemacht Deine Coding Bodies gemeinsam besser.