Latest / Coding Buddies | Tech & Dev-Mindset / Hör auf mit Over-Engineering! Das YAGNI-Prinzip
Transcript
- 0:00Weißt du, ich wusste aber an so ein Spiel denken, wenn du
- 0:02gewonnen hast wie Yatzi weißt du so yatzi?
- 0:05Das ist geil. Coding Buddies Dein Podcast rund
- 0:09um Softwareentwicklung und aktueller Tech News.
- 0:12Herzlich Willkommen. Halli Hallo und herzlich
- 0:26Willkommen. Eine neue Folge vom Coaling
- 0:28Buddies Podcast steht in den Startlöchern und damit geht es
- 0:32auch jetzt los und ich begrüße natürlich den Tino.
- 0:36Tino, wie geht's dir? Moin Moin Fabi, Was geht?
- 0:40Mir geht's los. Was geht.
- 0:41Ich hab Bock, ich hab richtig Bock, sogar muss ich sagen, ich
- 0:46weiß nicht, guck so aus dem Fenster, die Welt sagt gar
- 0:48keinen Bock, weil es ist super grau und dunkel und nass, aber
- 0:52ich hab richtig Bock auf ne Podcast folge.
- 0:55Ja, grau nass ist ja halt ne klassische Oktoberzeit.
- 1:00Also es ist ja auch krass, wie schnell die Zeit schon wieder
- 1:02rumgeht. Ne, ich mein Oktoberfest ist ja
- 1:04jetzt auch schon wieder vorbei, hab ich gehört, ich denk mir
- 1:06immer so, Oktoberfest ist ja eigentlich gern im Oktober, war
- 1:09eigentlich immer n bisschen früher ne ja.
- 1:11Wie wie findest du das eigentlich?
- 1:12Wie bist du so n Oktoberfesttyp? Eigentlich.
- 1:15Boah, ich muss sagen ich hab ne Lederhose.
- 1:17OK, krass krass für. Diesen für diesen Anlass.
- 1:20Weil ich ab. Und an ich war früher in der Uni
- 1:23öfter mal so auf Studentenwiesen.
- 1:25Studenten, OK. Das war geil, das hat irgendwie
- 1:28Bock gemacht. Obwohl warte mal, ich muss noch
- 1:29mal kurz überlegen, nee, ich hab schon fertig studiert und war
- 1:32dann glaub ich auf Studentenwiesen.
- 1:35Du hattest eigentlich gar keinen Zutritt mehr, aber irgendwie
- 1:37hast du dich reingemogelt. Ja, ich glaube, so war es.
- 1:41Nee, aber irgendwie, das ist schon ganz lustig, aber weiß
- 1:44nicht, eigentlich würde ich mich jetzt eher nicht so sehen, dass
- 1:47ich da so Mega Fan bin, aber ich war zum Beispiel noch nie auf
- 1:50dem Oktoberfest. Wie sieht es da also auf dem
- 1:52richtigen Oktoberfest? Wie sieht es?
- 1:54Bei dir aus war ich auch nicht das Thema hatte ich auch
- 1:56tatsächlich letztens erst mit Freuden.
- 2:00Nee, hat mich auch noch nicht da.
- 2:02Hingetrieben sozusagen. Also ich glaube, es ist n
- 2:05Erlebnis, ob es mein persönliches Highlight werden
- 2:09würde, kann ich nicht sagen, ich weiß nicht ob ich da so der Typ
- 2:12für bin, also ich hab auch keine Lederhose, bin ich ehrlich du ja
- 2:18ich weiß du trägst die auch privat immer ganzjährig.
- 2:23Nein. Nein, aber ja, wahrscheinlich.
- 2:27Also würde ich zum Oktoberfest fahren, würde ich mir auch eine
- 2:30holen, auf jeden Fall. Also dann musst du es
- 2:32durchziehen, ansonsten bin ich immer mit so einem alternativ
- 2:35Look der halbwegs in die gleiche Richtung geht immer ganz gut
- 2:38davon gekommen oder? Oder wurde akzeptiert sag ich
- 2:41mal holzfällerstyle. Oder was und Na.
- 2:44Ja, also schon so mit Helmd und allem, aber na ja, keine.
- 2:48Lederhose, jeansbraun angemalt oder wie?
- 2:53Ganz genau so sah es aus, aber ich weiß nicht.
- 2:57Also ich könnte sein, dass es mir zu viel Trubel ist, das
- 3:02richtige Oktoberfest. Ja ich, weil ich will es nicht
- 3:05verurteilen oder irgendwie n vor sag ich mal irgendwie
- 3:08voreingenommen sein, weil es finden ja schon ziemlich viele
- 3:11ziemlich cool und ich glaube es hat halt auch einfach n gewissen
- 3:14Charme. Ja, also mich würde zum Beispiel
- 3:17auch mal interessieren, so an alle Hörerinnen und Hörer, also
- 3:19wenn euch irgendwie da was, also wenn ihr sagt hier ne,
- 3:22Oktoberfest ist cool, lasst uns mal wissen, wir waren beide noch
- 3:25nicht da oder wenn ihr sagt Wir waren auch schon da, es ist
- 3:28aber. Blöd auf keinen Fall hin.
- 3:30Also ich denke halt immer so okay.
- 3:32Also am Ende trinkst du da Bier mit Leuten, bloß dass du halt
- 3:38wahrscheinlich mit den gleichen Leuten hingehen würdest.
- 3:40Aber einfach normalerweise Bier günstiger trinken könntest.
- 3:45Kannst halt einfach ganz pragmatisch.
- 3:48Na ich glaub ich glaub die Stimmung ist da schon krass.
- 3:51Also wenn du zur richtigen Zeit da bist, ist das bestimmt ganz.
- 3:54Cool? Ja glaub ich schon.
- 3:57Lassen wir uns. Das ist jetzt auch das Thema
- 3:58unserer heutigen Folge. Merke ich gerade heute geht es
- 4:01ums Oktoberfest. Nein, wir.
- 4:03Die heutige Folge ist ja ungefähr so, dass wir richtig
- 4:06dagegen verstoßen haben, weil wir quasi über etwas gesprochen
- 4:09haben, was wir eigentlich gar nicht brauchen.
- 4:11Genau, wo es gar nicht gehen sollte.
- 4:13Heute aber pass auf, bevor wir jetzt richtig reinsteigen und du
- 4:15gleich mal das Thema ankündigst, wollte ich noch einmal ganz kurz
- 4:19einen Riesen dank loswerden und zwar an den Malte, weil Malte
- 4:23vielen Dank für deine Spende an uns für unseren Podcast.
- 4:26Das hat mir super gefreut mega Sache vielen vielen dank Liebe
- 4:31geht raus und in dem Sinne würde ich sagen Tino Stell mal das
- 4:36Thema der heutigen Folge vor. Ja, und zwar haben wir wieder
- 4:40eine Code Prinzip oder Softwareentwicklungsprinzipfolge.
- 4:45Wir haben ja auch ne Umfrage gemacht, dass die Themen ganz
- 4:48gut ankommen und deswegen dachten wir uns, starten wir
- 4:50direkt weiter damit und machen weiter eine 3.
- 4:54Folge jetzt und zwar sollte es heute um das Prinzip Yakni
- 4:57gehen, was für Gesundheit weißt du ich wusste mal an so n Spiel
- 5:04denken wenn du gewonnen hast wie Yakzi weißt du so yaki?
- 5:08Das ist geil. Aber es steht am Ende für You.
- 5:12Ain Gone A need it und genau das möchte ich heute gerne mit dir
- 5:16beleuchten, weil es auch ein sehr cooles Prinzip ist, was uns
- 5:21auch öfter begleitet, würde ich jetzt mal so sagen, weil man
- 5:25sich da doch gerne immer mal dran erinnern.
- 5:27Sollte ja genau magst. Du mal sagen was das Prinzip
- 5:31beinhaltet? Genau.
- 5:32Also es geht im Großen und ganzen darum, dass man unnötige
- 5:36Komplexität vermeidet, also auch gerade Fokus auf Features, die
- 5:43du in den Code einfließen lässt, die aber vielleicht noch gar
- 5:46nicht notwendig sind, also zum Beispiel wenn du sagst, du hast
- 5:50vielleicht irgendwie eine Erweiterung, die du
- 5:52Implementierst, die eigentlich zu dem aktuellen Zeitpunkt noch
- 5:55gar nicht relevant sind, aber vielleicht irgendwann mal
- 5:58zukünftig möglich wären. Ne, also dass man wirklich sagt,
- 6:02OK, wenn du das vielleicht zukünftig mal brauchst, dann
- 6:04mach es zukünftig und mach es nicht jetzt so, also sozusagen
- 6:09du brauchst das jetzt gerade nicht so ne und ich find da ist
- 6:14so ne so ne kleine Analogie vielleicht mal wieder ganz
- 6:16passend oder ganz interessant und zwar.
- 6:20Und zwar die Analogie vom vom vom Koffer packen.
- 6:23Also sagen wir mal du machst n Trip ne und sagst jetzt OK ich
- 6:27mach n Wochenendtrip und du guckst auf deine Wetter App und
- 6:30siehst OK es ist nur gutes Wetter so und jetzt könntest du
- 6:33dich natürlich hinstellen und sagen OK.
- 6:36Ich hab nur gutes Wetter, ich pack vielleicht Badehose ein,
- 6:38ich pack kurze Sachen ein und fertig.
- 6:40Das war es aber aint Gonna Need it sozusagen.
- 6:43Das Jagdny würde jetzt zum Beispiel, wenn du dagegen
- 6:45verstößt, in dem Fall würde jetzt beim Koffer packen, würde
- 6:48durch deinen Kopf gehen, aber was ist wenn es doch regnet, das
- 6:51heißt du packst dir doch noch ne regenjacke ein, das heißt du
- 6:53packst dir doch noch ne lange Hose ein, du weißt ja vielleicht
- 6:55nicht ob die Temperatur doch noch mal abkühlt, aber was ist
- 6:57wenn du mitten in der Nacht doch noch draußen bist und n Pullover
- 7:00brauchst? Und wie ist es denn eigentlich
- 7:03zum Beispiel mit mit? Regenschirm wenn es vielleicht
- 7:07dann doch noch anfängt zu regnen und solche Sachen.
- 7:09Ne, also diese ganzen Eventualitäten, wo du vielleicht
- 7:11noch sagst und wenn ich jetzt doch noch auf eine sehr schicke
- 7:16Veranstaltung eingeladen werde, ganz toll, ganz.
- 7:18Toll, nehme ich doch noch. Einen Anzug mit weißt du also
- 7:20solche Sachen, dass du diese ganzen Eventualitäten, die man
- 7:24vielleicht haben könnte, aber in dem Fall einfach ausschließend,
- 7:27sagt Ey, es ist ein Wochenendtrip, es ist gutes
- 7:30Wetter, nimm kurze Klamotten mit, fertig.
- 7:34Ja. Finde ich eigentlich ein ganz
- 7:36cooles Beispiel, weil ich glaube, das kennt jeder, dass
- 7:40man genau in diese Falle tappt und sich denkt, ah, ich will
- 7:44jetzt auch nicht kalt erwischt werden, dann habe ich nachher
- 7:46die Klamotten nicht bei, weil ich kann es ja dann auch nicht
- 7:49mehr ändern, so nach dem Motto, dann stehe ich da mit meinem
- 7:51kleinen Koffer, habe jetzt keine Regenjacke bei, also es ist ja
- 7:55nicht so, dass man irgendwo noch vielleicht eine Regenjacke
- 7:58kaufen könnte oder oder einen Regenschirm, auf keinen Fall,
- 8:00also wenn du ihn nicht dabei hast, dann war es das verstehst
- 8:03du also? Ein Beispiel, was ich auf jeden
- 8:06Fall mal habe. Angenommen du bist 3 Tage
- 8:08unterwegs und du würdest sagen du brauchst 3 und aus wie viele
- 8:14packt man eine Hand aufs Herz? Also ich glaube, es gibt wenig
- 8:20Personen, die sich sagen, es sind 3 Tage.
- 8:22Ich brauche jetzt 3 mal Unterwäsche, auf keinen Fall die
- 8:24meisten, die meisten packt doch einfach gefühlt schon das
- 8:28Doppelte ein. Ja, genau.
- 8:30Aber ich denke. Auch immer.
- 8:31Das wollen wir jetzt nicht diskutieren, aber ne.
- 8:34Es ist, welche Eventualität könnte passieren?
- 8:38Aber OK, lassen wir das, aber das ist auf jeden Fall ein
- 8:41Standardbeispiel bei mir. Ja, aber das kenne ich auch.
- 8:44Es ist bei mir zum Beispiel auch richtig witzig, dass ich immer.
- 8:49Also sagen wir mal 3 Tage und ich würde jetzt 3 t Shirts
- 8:52einpacken. Ja, es wird niemals bei 3 Shirts
- 8:54bleiben, weil ich immer von dem Fall ausgehe, dass ich mich
- 8:57irgendwie beklecker oder dass irgendwas passiert, dass ich
- 9:00immer noch n ersatzshirt hab. Also ich hab bald.
- 9:03Bei mir so n Ding meistens. Gefühlt ist es so, dass ich
- 9:05sage, ja, ich nehm noch n bisschen mehr mit an Shirts.
- 9:08Und wenn ich wiederkomme, hab ich nicht mal die Hälfte von den
- 9:10Shirts, die ich mitgenommen hab. Eigentlich immer Faust so nach
- 9:12dem Motto, so viel nehm ich immer mit, also völlig banade
- 9:15aber das ist n typisches jagni Dings, oder?
- 9:18Ja, das stimmt, das stimmt ja. N cooles Beispiel, gefällt mir
- 9:20gut. Ja, also wie können wir das
- 9:23jetzt auf die Softwareentwicklung Münzen?
- 9:25Unseren Koffer ist ja im Prinzip.
- 9:28Wenn man sagt, You Ain Gone a need it und du konzentrierst
- 9:31dich wirklich und fokussierst dich auf die vorliegenden
- 9:34Anforderungen und ausschließlich da drauf.
- 9:37Das heißt jetzt in dem Kofferbeispiel es scheint die
- 9:40Sonne, ich muss mich jetzt wappnen dafür, dass ich zum
- 9:44Beispiel sommerliche Kleidung hab, dass ich dass mir nicht
- 9:46warm ist den ganzen Tag, dass ich da halt gut durch den Tag
- 9:49komme, so fertig, kein Regen, nichts, das ist einfach jetzt
- 9:52die Anforderung, hab ein Sommeroutfit dabei.
- 9:55Genau. Und ich mein, wenn man das auf
- 9:57die Softwareentwicklung münzt. Dann ergeben sich halt die
- 9:59Vorteile, die man jetzt eigentlich gut erkennen kann.
- 10:02Weniger Komplexität, weil ich muss nicht so viele Fälle
- 10:05berücksichtigen, das heißt auch in dem Fall, der Koffer ist
- 10:08einfacher gepackt und simpler weniger und genauso wird ja auch
- 10:13dein Code einfacher und auch verständlicher natürlich ne,
- 10:16weil du halt nicht unnötige Funktionen drin hast.
- 10:19Du bist halt wirklich genau fokussiert auf deinen, auf deine
- 10:22Anforderungen, die du gerade implementiert hast.
- 10:25Und dadurch sinkt halt auch die Gefahr, schon unnötige
- 10:28Komplexität reinzubringen und den Code aufzublähen.
- 10:32Dass du am Ende sagst, OK, der Stakeholder kommt, hast du es
- 10:36umgesetzt, was ich brauche, ja hab ich aber hier guck mal, weil
- 10:39vielleicht brauchen wir das und das ist auch alles schon drin,
- 10:41dann denkt er sich so OK gut jetzt hat das hier doppelt so
- 10:44lange gedauert als ich eigentlich dachte, weil du
- 10:48schon. 5000 Eventualitäten eingebaut hast, die ich gar
- 10:51nicht wollte, und das ist ja genau das Problem und der
- 10:54Vorteil dann am jakni Prinzip, sich genau darauf zu
- 10:56fokussieren. Genau.
- 10:58Und es geht jetzt ja auch nicht hierbei darum, dass man zum
- 11:00Beispiel sagt, man reduziert sozusagen die Komplexität einer
- 11:05Funktion ne, sondern man sagt eher so, man reduziert die
- 11:10Komplexität des Codes, weil man bestimmte Funktionen gar nicht
- 11:13erst benötigt, ne, ganz genau, und das bedeutet ja aber am Ende
- 11:17auch, dass man. Nicht nur ein weniger komplexen
- 11:20Code hat, weil man, weil man sozusagen einfachere Funktionen
- 11:25hat, sondern einfach weniger Code hat.
- 11:26Und das bedeutet ja im Endeffekt auch weniger Code, ist weniger
- 11:29Wartungsaufwand, das ist ja auch ein Vorteil, den man dadurch
- 11:33hat, weil man ja einfach sagt okay, du hast halt weniger
- 11:36potenzielle Fehleranfällige stellen, die du irgendwie in
- 11:40deinem Code drin hast. Also du musst halt weniger
- 11:43vielleicht refecter, du musst weniger Code debuggen, wenn
- 11:45irgendwas auftritt, du hast weniger.
- 11:47Weniger Code, den du auch testen musst, weil wir erinnern uns
- 11:51testen ist absolut essentiell. Ne, das macht man immer
- 11:55vollautomatisierte. Tests sehr wichtig.
- 12:01Was haben wir denn noch so? Also wir haben auf jeden Fall
- 12:03einen weniger komplexen Code dadurch, das sind definitiv
- 12:06Vorteile, wir haben weniger Wartungsaufwand, das ist auch
- 12:09definitiv ein wichtiger Punkt. Ja, man kann ja sich auch
- 12:14vorstellen. Angenommen du, du entwickelst
- 12:16das jetzt, weil das, finde ich, ist nämlich auch ein
- 12:18entscheidender Vorteil, du hast das jetzt entwickelt und dich
- 12:20auf diese Anforderungen fokussiert, dann sagst du, ich
- 12:23bin fertig, das heißt also, die Entwicklung ist natürlich dann
- 12:26auch schneller logischerweise, aber gleichzeitig kriegst du ja
- 12:30auch ein schnelleres Feedback dazu, also.
- 12:34Also du hast es entwickelt und du kannst es ja dann sozusagen
- 12:37zeigen und der, der die Anforderung gestellt hat, also
- 12:40dein Stakeholder sagt Ja ist richtig, oder?
- 12:42Nee warte mal, wir müssen das noch mal anpassen, das muss doch
- 12:45anders sein. Also du kannst natürlich auch,
- 12:47also du hast ne bessere Anpassungsfähigkeit, nenn ich
- 12:50das mal, weil es ist noch nicht. Unnötig viel da, es ist komplett
- 12:55fokussiert auf die Anforderung und wenn sich da was ändert,
- 12:58weißt du genau, ich muss jetzt das und das anrühren und hab
- 13:01nicht so sag ich mal ungenutzten Code der da gar nicht betroffen
- 13:04ist von ja also was find ich halt auch immer ganz schick
- 13:07dabei. Was ich zum Beispiel also was
- 13:10ich so was mir in den Kopf kommt als Beispiel, man kennt das ja,
- 13:13wie du ja auch schon meintest, so, es läuft einem ja selber
- 13:15über den Weg, man kennt das ja, du hast vielleicht ne
- 13:17Anforderung wo es heißt OK. Angenommen Du hast ein E
- 13:22Commerce System was du selbst programmierst und sagst.
- 13:24Du möchtest einen Zahlungsanbieter anbinden, dann
- 13:27könnte man sich natürlich hinstellen und sagen, OK wir
- 13:29wollen jetzt einen zahlungsanbieter A anbieten,
- 13:33anbinden und das heißt du hast irgendwie eine eine API mit der
- 13:35du an mit der du. Quasi gegen die du gegen
- 13:39Implementierst ne so und dann könnte man natürlich relativ
- 13:42schnell auf die Idee kommen und sagen ja, aber Pass auf, wir
- 13:45haben ja jetzt wahrscheinlich, also wahrscheinlich gibt es in
- 13:48Zukunft noch mehrere an Zahlungsanbieter, zum Beispiel
- 13:51zahlungsanbieter B und C, die wir auch noch anbinden wollen,
- 13:53also implementier ich schon mal n Interface, dass man im
- 13:56Endeffekt irgendwann später ne, das ist jetzt wieder genau
- 13:59dieses, diese dieser Keypunkt an der Stelle ne, also dieser.
- 14:03Beziehungsweise so n Warnzeichen wo man sagen könnte, OK das
- 14:06vielleicht später ne genau das dieser Gedankengang später
- 14:09könnte man das ja noch gebrauchen, dass man dann im
- 14:13Endeffekt sagt, OK, ich muss ja momentan nur diesen einen
- 14:16Anbieter anbinden und wir wissen noch gar nicht welche dazu
- 14:19kommen und wir wissen noch gar nicht, ob überhaupt noch andere
- 14:22dazu kommen und wir wollen jetzt erstmal.
- 14:24NE Commerce System haben wo man sagt wir wollen jetzt überhaupt
- 14:27erst mal was verkaufen und dazu brauchen wir irgendwie n
- 14:29zahlungsanbieter und damit das funktioniert muss man noch nicht
- 14:32n Interface schreiben um zu sagen OK vielleicht dieser
- 14:35Anbieter dieser Anbieter oder dieser Anbieter, sondern sagt
- 14:38erst mal OK wirklich Fokus nur auf den einen ne.
- 14:42Ja. Finde ich ist n gutes Beispiel
- 14:46erstmal um zu zeigen, dass also wo Jagd nie hingeht und wo man
- 14:51schnell quasi da ausbricht, weil es ist halt auch n fantastisches
- 14:55Beispiel um mal auf Nachteile einzugehen, weil ich glaub die
- 14:59Vorteile sind eigentlich relativ klar, aber es ist ja nicht immer
- 15:03alles nur schöne Heide Welt. Also man kann ja mit Jagd nie
- 15:07auch in ne gewisse Falle laufen, wenn man es zu streng verfolgt.
- 15:11Ja. Und ich finde, du hast da gerade
- 15:13ein gutes Beispiel gebracht, wo man sich wirklich überlegen
- 15:18muss, ist das jetzt, also gehe ich jetzt streng nach Jagni und
- 15:21Code zum Beispiel diese diese API Anbindung für den
- 15:26Zahlungsanbieter so richtig straight runter schlicht
- 15:28gehalten sage ich mal oder überlege ich mir vielleicht doch
- 15:32schon eine Struktur die skalierbar ist?
- 15:34Klar, ich würde Jagni verletzen, wenn ich sage ich baue noch.
- 15:38Sag ich mal nen Frame drumrum um es skalierbar zu machen in
- 15:42Zukunft. Aber das ist auch n Fall wo man
- 15:45eigentlich schon ziemlich genau weiß, es muss skalierbar sein
- 15:48später, weil du wirst mit einem Produkt oder mit sagen wir mal
- 15:52mit deinem E Commerce System was du meintest ja schwer ins Ziel
- 15:56komm später wenn du nur einen zahlungsanbieter anbindest.
- 15:59Also das ist ja eigentlich schon relativ klar, dass.
- 16:03Dass du weitere anbinden musst. Und dann finde ich, ist das
- 16:06nämlich ein Nachteil von Yagni, dass du sagst, okay mir muss
- 16:09bewusst sein, wenn ich diesen Weg jetzt gehe, dass ich später
- 16:13mehr Arbeit habe, also einen erhöhten Aufwand, dass alles zu
- 16:18refact dann und dann auf eine skalierbare Lösung umschalte,
- 16:21wenn ich weiß quasi, dass ich das brauchen werde, und das ist
- 16:27so ein Trade Off und wie immer bei so einem Code Prinzip, und
- 16:30das hatten wir auch bei den anderen.
- 16:31Ist es halt ne Balance die man da halten muss, weil an der
- 16:35Stelle würde ich jetzt zum Beispiel sagen, hm, es lohnt
- 16:38sich schon auf ne skalierbare Lösung direkt zu gehen, zum
- 16:41Beispiel dass du n Interface machst, dass du sagst, OK, ich
- 16:43kann jetzt mehrere Zahlungsanbieter integrieren in
- 16:46mein System oder in meine Software, würde an der Stelle
- 16:49halt schon Sinn machen das vorzubereiten und.
- 16:52Weil ich halt einfach weiß, OK, ich muss einfach mehrere
- 16:55anbieten, weil sonst wird dieser E Commerce, also das E Commerce
- 16:57System nicht wirklich Abnehmer finden, weil ich mein heutzutage
- 17:01ist die Erwartungshaltung einfach klar.
- 17:03Ich möchte paypal haben, ich möchte Kreditkarte haben und
- 17:06whatever ne, also dass einfach mehrere Möglichkeiten da sind
- 17:10und das finde ich ist deswegen n fantastisches Beispiel von dir
- 17:14um einfach auf diese Balance mal hinzuweisen.
- 17:16Ja, auf jeden Fall. Also gerade wenn du sagst, also
- 17:18ne mögliche Mehrarbeit kann durchaus dadurch entstehen,
- 17:21hundertprozentig. Und ich, ich finde, das ist halt
- 17:24auch genau die eine weitere Schwierigkeit, die da ein
- 17:28bisschen mit einhergeht, weil wenn du wirklich sagst, ich
- 17:30arbeite immer und nur ganz strikt nach Yagni, dann kann es
- 17:34dazu führen, dass irgendwie diese Weitsicht fehlt, ne, dass
- 17:37man halt vielleicht wirklich an manchen Stellen mal sagt, was
- 17:40muss denn aber wo soll es denn in Zukunft hingehen, weil strikt
- 17:44immer nur zu sagen, ja, aber jetzt also wirklich mal, ich
- 17:47übertreib jetzt und so ein bisschen.
- 17:49Sag ich mal provozierend gesagt, wenn man nur von der Tapete bis
- 17:52zur Wand denkt, dann kommt man ja auch meistens nicht wirklich
- 17:55weit. So, und da muss man dann
- 17:57wirklich und ich finde es gut, dass du das gesagt hast, diesen,
- 17:59das ist ein Trade off, weil ich finde das auch so schwierig,
- 18:03weil ich hatte das auch schon mal, dass ich dann mit einem.
- 18:06Kollegen Imper Programming Imper Programming im Programming im
- 18:11Programming du. Bist immer noch auf dem
- 18:12Oktoberfest. Imper Programming.
- 18:15Mit einer also wir haben, wir haben programmiert und ich mein,
- 18:18ich hatte dann halt so gesagt, so ja, aber guck mal wenn wir
- 18:20ich ich weiß nicht mehr genau worum es ging, aber ich hatte so
- 18:22n so n weiterführenden Gedanken ne und dann hieß es gleich so ja
- 18:26aber jakni so brauchen wir noch nicht ne denk doch dran also wir
- 18:29es ist ja jetzt noch gar nicht notwendig und.
- 18:31Und dann sind wir so n bisschen in so n Gespräch gekommen, dass
- 18:34ich mir so dachte. Also ich dachte also meine
- 18:36Position war na ja, aber denk doch mal da dran, es wird ja
- 18:41sehr wahrscheinlich schon kommen und seine Position war ja es
- 18:44wird kommen vielleicht du weißt es nicht genau und es ist in der
- 18:47Zukunft und das war halt so ich weiß auch nicht genau jetzt wer
- 18:51jetzt recht gehabt hat, darum geht es jetzt auch am Ende
- 18:53nicht, ob es jetzt sozusagen noch gemacht wurde oder nicht,
- 18:56aber ich finde, dass es durchaus.
- 18:58Sinnvoll ist, genau dieses Gespräch zu führen.
- 19:01Weißt du was ich? Meine das zu challengen.
- 19:02Dann genau um dann auch einfach darüber zu diskutieren, einfach
- 19:05nur zu sagen, ja yakni oder ja, wir machen das jetzt und ich sag
- 19:08mal Scheiß auf Yakni sozusagen ist ja dann auch irgendwie blöd,
- 19:12also einfach nur zu sagen ja, also ne, wenn man jetzt zum
- 19:14Beispiel angenommen man programmiert und jemand sagt
- 19:17Yakni und jemand sagt, Oh ja klar ach stimmt, der ist ja so
- 19:20Weise und gebildet dieser Mensch, weil er yakni gesagt hat
- 19:24so. Er hat auf jeden Fall recht.
- 19:26Also da muss man natürlich dann einfach mal gucken und sagen
- 19:29okay macht es Sinn oder macht es nicht.
- 19:30Also genau diesen Trade auf auch vielleicht mal ein bisschen
- 19:33anzudiskutieren, das ist glaube ich dann auch auch wertvoll,
- 19:36weil am Ende kann es ja natürlich dazu kommen, dass du
- 19:41dann, wenn du das hast, du ja oftmals, wenn du sagst, man
- 19:44implementiert erstmal nur die, die die einfache Lösung muss,
- 19:47dann vielleicht aufgrund von vielleicht fehlender Weitsicht
- 19:50noch was. Nachimplementieren, du hast also
- 19:53diese Mehrarbeit und dann kann es dazu ja durchaus noch führen,
- 19:57dass du zu dem, dass du diese Mehrarbeit hast, auch noch
- 20:00refactoring drumherum machen musst.
- 20:02Ja, ja ne, das ist ja dann noch mal so n so n so n dritter
- 20:04Nachteil, der dann theoretisch auftreten könnte.
- 20:09Ja ja, guter Punkt. Gerade wenn du denn zum Beispiel
- 20:12sagst, OK, nee, ich mach jetzt ganz strikt jagni und ich
- 20:14verzichte auf saubere, modulare Strukturen, obwohl ich
- 20:17eigentlich schon weiß, dass ich das brauchen werde später.
- 20:20Dann habe ich halt einfach einen sehr hohen refactoring Aufwand,
- 20:23wie du gerade schon meintest am Ende und das muss einem dann
- 20:26halt auch bewusst sein, sozusagen.
- 20:29Aber trotzdem ist es ja ein gutes Prinzip.
- 20:32Also klar, wir müssen auf die Nachteile eingehen, aber es hat
- 20:35natürlich auch die Vorteile, die wir genannt haben und was
- 20:39würdest du denn sagen, wann ist es denn sinnvoll nach dem jagni
- 20:43Prinzip zu arbeiten oder wann ist es für dich auch aus deiner
- 20:47Erfahrung heraus sinnvoll gewesen?
- 20:49Ja, also definitiv. Ich weiß, worauf du hinaus
- 20:52willst. Das ist nämlich, also ist ja
- 20:53wirklich ein super spannender Punkt und ich, also ich würde
- 20:57sagen, ein ein ganz klassischer Anwendungsfall von Jagd nie
- 21:02wäre, wenn man unklare oder unsichere Anforderungen hat.
- 21:07Also wenn du ein Produkt entwickelst, wo du sagst, ich
- 21:10weiß eigentlich noch nicht so hundertprozentig, wo es hingeht,
- 21:13also du hast noch eine sehr hohe Flexibilität.
- 21:16Ja. Und.
- 21:17Und du weißt einfach noch nicht genau, wo dieses Produkt im
- 21:21Feature Set nenn ich das jetzt einfach mal terminiert ne und
- 21:26was vielleicht auch gut ankommt beim User ne, also wenn du.
- 21:29Ja, das ist n sehr wichtiger Punkt.
- 21:30Genau. Also wenn du halt einfach noch
- 21:32diese hohe Variabilität. Drin hast.
- 21:33Genau, und da kannst du dann im Endeffekt einfach.
- 21:36Also wenn wenn du halt diese Anforderung hast und vielleicht
- 21:39userwünsche kommen rein und das heißt ja, wir wollen das
- 21:42vielleicht doch so und so haben, oder das ist gut, das ist noch
- 21:44nicht so gut, dann kannst du ja, wenn du.
- 21:47Erstmal minimale Ansätze implementiert hast, also nach
- 21:50diesem jagni Prinzip gearbeitet hast, kannst du natürlich auch
- 21:53schnell auf solche Änderungen reagieren, weil du halt eben
- 21:57noch nicht so ne hohe Komplexität hast, weil du
- 21:59bessere Anpassungen machen kannst.
- 22:01Ne und? Das hilft an diesen Stellen
- 22:04natürlich, das heißt, Jagni ermöglicht in solchen Momenten
- 22:07natürlich, flexibel zu bleiben und in gleichzeitig noch
- 22:10Ressourcen zu sparen, weil du ja noch nicht so viel im Voraus
- 22:13implementierst, ne? Das wäre auf jeden.
- 22:15Fall ein super Anwendungsfall meiner Meinung nach.
- 22:18Ja, ich finde es halt auch wichtig, wie du gesagt hast,
- 22:20wenn so noch die Userwünsche sich ändern oder unklar sind.
- 22:25Oftmals ist es ja auch so. Du hast so ne Produktidee, aber
- 22:28musst deinen Platz im. Im Markt sag ich mal noch
- 22:30finden. Du weißt noch nicht so wirklich
- 22:32wo deine Nische vielleicht ist, wo du dich platzierst mit deinem
- 22:35Produkt und dementsprechend können sich auch die
- 22:37Anforderungen noch drastisch ändern, wenn du auf einmal
- 22:39merkst ey ey, weil ich hab warte mal.
- 22:41Ich hab eigentlich ne ganz andere.
- 22:42Zielgruppe die da drauf. Also die davon angesprochen sich
- 22:45fühlt sozusagen ne und dann ändern sich wahrscheinlich auch
- 22:48die Anforderungen noch mal. Und das ist halt gerade so in
- 22:52frühen Phasen von Projekten. Super.
- 22:55Entscheidend, dass du denn halt auch schnell reagieren kannst,
- 22:57wie wir ja vorhin meinten, dass du halt schnell Anpassung machen
- 22:59kannst und dafür ist das jagni Prinzip wirklich gut und in dem
- 23:04Zusammenhang, ich glaub das haben wahrscheinlich viele schon
- 23:07gehört. Gibt es ja auch dieses typische
- 23:09MVP Prinzip, also Minimum viable Product glaube ich.
- 23:15Ich bekomme immer bei der Ankürzung mal ein bisschen
- 23:17durcheinander, dass du sagst okay, ich versuche jetzt das
- 23:20kleinstmögliche funktionsfähige Produkt meiner Idee zu bauen und
- 23:25schmeiß das sozusagen erstmal auf den Markt und gucke, was ich
- 23:28für ein Feedback Kriege und das in Kombination mit Jagni.
- 23:32Harmoniert halt super, weil du denn wirklich fokussiert bist,
- 23:35dieses kleinstmögliche Produkt zu erschaffen, dass du dir
- 23:39überlegst. Was sind so die mindestens also,
- 23:41die das Minimum an Features die ich brauche um erstmal n
- 23:45Feedback zu kriegen, ob überhaupt meine Idee gut
- 23:47ankommt. Genau also das minimale
- 23:49Featureset, damit das Produkt lebensfähig ist.
- 23:52Sozusagen ne genau. Ja, das und dass du halt auch
- 23:54wirklich NN, also sag ich mal sinnvolles Feedback bekommst,
- 24:00dass du auch wirklich sagst, OK, das geht jetzt in die Richtung
- 24:02von. So n Featureset wie meine Idee
- 24:04ist. Ja, also es.
- 24:05Ist ja jetzt nicht sag ich mal. Ich möchte ne App entwickeln und
- 24:08hier hast du jetzt ne ne App die startet und da ist n Button, da
- 24:11kannst du drauf klicken. Also es muss ja schon deine Idee
- 24:15verkörpern, aber halt in dem kleinsten Umfang.
- 24:17Ja genau, also du. Es hilft halt einfach, den Fokus
- 24:21auf das Wesentliche zu halten, um dann sozusagen das Produkt zu
- 24:25entwickeln. Und was ich immer, was ich
- 24:27schwierig finde, was ich noch mal irgendwie n bisschen
- 24:28einordnen möchte, ist, dass. Produkt und User ne.
- 24:31Ich finde da denkt man immer relativ schnell an alles was so
- 24:35momentan in im im App und Webbereich unterwegs ist.
- 24:38Aber selbst wenn du ne Maschine programmierst oder irgendwie nen
- 24:44Mikrocontroller programmierst der irgendwo ne Maschine kommt
- 24:46die dann irgendwo arbeitet in der Fabrik, dann ist der User
- 24:49der Besitzer der Fabrik. Sozusagen weißt du, also der
- 24:53Mensch der sozusagen in seiner Fabrik dieses Teil dann nutzt.
- 24:58Also nur, dass man es noch mal einordnet, weil ich find selber
- 25:00immer wenn man daran denkt und sagt, OK, was ist denn denn,
- 25:03wenn ich an User denke, dann klingt das für mich immer gleich
- 25:05so wie der End User der irgendwo an einem Telefon sitzt und es
- 25:08bedient, aber es geht ja immer um den Menschen oder die
- 25:12Personen Zielgruppe, was auch immer die dann am Ende dieses
- 25:16Produkt, was auch immer es ist, benutzt, benutzt oder genau ja.
- 25:19Wichtiger Punkt, dass man da also auch mal vom vom Mindset
- 25:22mal wirklich an alle Bereiche denkt und trotzdem kannst du
- 25:25diese. Prinzipien oder auch das MVP
- 25:27Prinzip oder MVP sagt Man Prinzip, also MVP auch dafür
- 25:32bauen, das ist halt und dann kannst du genauso wie mit Jagni
- 25:38das Halt iterativ immer verbessern und wenn du merkst
- 25:41das kommt gut an und du kriegst Feedback kannst du das
- 25:43einarbeiten. Du kannst weitere Features
- 25:44hinzufügen und hast dann eigentlich eine sehr geile
- 25:47Position dein Produkt immer besser und umfangreicher zu
- 25:50machen, genau weil du ja weißt es kommt gut an.
- 25:53Genauso kann es ja auch sein, dass du wirklich komplett dran
- 25:55vorbei entwickelt hast und nicht deine Position im Markt
- 25:59sozusagen findest, weil der Anwender oder der User dann
- 26:02sagt, Nee, soll ich mir das nicht vorstellen, das hilft mir
- 26:05gar nicht, aber das natürlich auch, aber dann kannst du quasi
- 26:09noch mal komplett das neu überdenken.
- 26:11Ja und anders an die Sache zum Beispiel rangehen, neuen MVP
- 26:14bauen, warum nicht? Aber das ist auch n finde ich n
- 26:16sehr guter Punkt, weil wenn User zum Beispiel ne, also der der
- 26:19Anwender am Ende. Wirklich an den Punkt kommt, wo
- 26:22er sagt, Nee, das habe ich mir so aber gar nicht vorgestellt,
- 26:24dann kann das unter Umständen zum Beispiel auch daher rühren,
- 26:27weil ich finde, das ist, wenn du so ein MVP entwickelst und du
- 26:30verstößt gegen Jagd, nie ist zum Beispiel ein Verstoß oder ein
- 26:33Resultat, wenn du dagegen verstößt, sowas wie zum Beispiel
- 26:38angenommen, du hast. Weiß ich.
- 26:40Jetzt muss ich natürlich wieder auf App und Web anwendungsebene
- 26:43gehen, damit man sich das besser.
- 26:44Vorstellen. Die Fabrik.
- 26:46Damit man sich das besser vorstellen kann.
- 26:47Aber sagen wir mal, du hast ne, du hast ne Tabelle die du
- 26:49sortieren willst oder was auch immer und dann überlegst du dir,
- 26:52wie würde der User das denn gut finden, wie die zum Beispiel
- 26:56sortiert wie man die sortieren könnte, also dieses du du holst
- 27:01dir nicht das Feedback sondern du überlegst selber wie das sein
- 27:04könnte, implementierst es dann also.
- 27:08Implementierst etwas, wo du noch gar nicht weißt, ob es benötigt
- 27:10wird und dann hinterher kriegst du das Feedback wo es dann heißt
- 27:13ja nee, aber ich weiß nicht, dass das so will ich das gar
- 27:16nicht haben und dann musst du es noch mal implementieren, einfach
- 27:19nur weil du an etwas gedacht hast.
- 27:21Was was du vielleicht, was vielleicht benötigt wird oder
- 27:25vielleicht cool gefunden wird, aber du weißt es eigentlich
- 27:27nicht, also mach es nicht, dann würde ich eher sagen.
- 27:32Lass diese Tabelle so wie sie ist, ohne dass sie sortiert
- 27:34werden kann. Und wenn der User dann hinterher
- 27:37sagt ich brauch die aber unbedingt, dass sie sortiert
- 27:40wird, dann fragst du wie und dann sagt er dir ja alphabetisch
- 27:42und dann machst du das und fertig ist der Bums.
- 27:44So ne also kleines einfaches Beispiel natürlich ist nicht
- 27:47immer so Straight Forward, aber in die Richtung würde es gehen,
- 27:53wenn man zum Beispiel gegen Jagd nie verstößt.
- 27:56Eine Möglichkeit, ein mögliches Resultat.
- 27:59Und das kann halt sehr viel Zeit am Ende kosten.
- 28:01Genau plus längere Feedback schleifen, weil du
- 28:03wahrscheinlich also sagen wir sind wir mal ehrlich, wenn du
- 28:07anfängst dir zu überlegen wie es sortiert werden könnte, ist die
- 28:10Wahrscheinlichkeit jetzt echt nicht gerade klein zu sagen, OK
- 28:15ich bau einfach schon mal so 34 Sortiermöglichkeiten ein, die
- 28:18kann man denn auswählen und so weißt du und dann denkt er sich,
- 28:21der hält dann wenn er nee sortier ist einfach alphabetisch
- 28:23und fertig. So beispielsweise, und das ist
- 28:27halt genau die Falle, dann am Ende wieder.
- 28:31Jetzt lass uns mal noch über den Punkt reden, wir haben jetzt
- 28:34quasi besprochen, wann jagni gut ist es einzusetzen, aber es hat
- 28:38wie immer auch seine Grenzen, wo man vielleicht sagen sollte,
- 28:41jetzt nicht mehr so Straight nach Jagni fällt dir da was ein?
- 28:47Also du meinst wo man jetzt vorsichtig sein sollte, wo man
- 28:49das jetzt einsetzt. Ja, zum Beispiel.
- 28:52Genau also. Also wo man wo man einfach sagen
- 28:54kann, Oh, jetzt strikt nach jagni werden nicht mehr so gut.
- 28:59Also zum Beispiel, wenn also eigentlich, wenn man jetzt sagt,
- 29:03okay, man hat, also, wir gehen jetzt vom MVP weg, man will
- 29:06jetzt nicht schnell ein Produkt sozusagen auf den Markt werfen
- 29:08und ausprobieren, wie das ankommt, um sich sozusagen
- 29:10einzuordnen, wo es hingehen soll, sondern du hast eigentlich
- 29:14natürlich jetzt eher so ein bisschen das Gegenteil, du hast
- 29:16Feste. Zielsetzungen du weißt okay das
- 29:20und das soll das Ergebnis sein und du weißt eigentlich auch
- 29:23schon, was gewünscht ist. So ziemlich genau.
- 29:26Und du hast vielleicht auch sehr komplexe Projekte oder große
- 29:30Projekte, wo es dann einfach wichtig ist, dass du sozusagen
- 29:36bestimmte dieses, dieses, dieses, diesen Weitblick nicht
- 29:39ignorieren darfst. Weil sonst halt einfach zu
- 29:43unglaublich teuren refactoring Phasen führen kann und so ne.
- 29:46Also wenn du wirklich weißt, das ist ein komplexes System und du
- 29:53weißt wo dieses komplexe System irgendwie worauf worauf also wo
- 29:57das Ziel dieses Systems auch irgendwo liegt.
- 30:02Also genau, wenn du einfach sag ich mal einen konkreten Fahrplan
- 30:05hast und dann zum Beispiel schon, gehen wir noch mal auf
- 30:08das E Commerce System ein was du meintest.
- 30:10Wenn dann aber schon quasi in den Anforderungen steht ich
- 30:13brauche zahlungsanbieter ABC und d, dann würdest du ja nicht noch
- 30:17überlegen. Ja ich implementier jetzt aber
- 30:18gerade a und jetzt mach ich so straight wie möglich und so
- 30:21schlicht wie möglich und danach mach ich b und dann refect ich
- 30:24das alles wieder, dann würdest du dir natürlich im Vorfeld wie
- 30:27wir vorhin besprochen haben, dir schon ne skalierbare Lösung
- 30:30überlegen um viele. Zahlungsanbieter anwenden zu
- 30:34können. Am Ende, das ist, finde ich, um
- 30:36das Beispiel noch mal aufzugreifen.
- 30:37Das ist, finde ich, auch ein ein sehr, sehr guter Unterschied,
- 30:39weil das eine ist, lass uns das schon mal implementieren, weil
- 30:43vielleicht brauchen wir es später und das andere ist, lass
- 30:46uns das, wir können das jetzt schon implementieren, weil es
- 30:49ganz sicher zu 100% später schon einfach.
- 30:53Kommt, weil da die Unsicherheit dann einfach raus ist, quasi
- 30:56also die Zukunft ist klarer. Ich will jetzt, ich würde jetzt
- 30:59niemals behaupten, sie ist zu 100% klar, weil ich mein jeder,
- 31:03der in realen Projekten gearbeitet hat, kennt das.
- 31:05Es wird sich noch mal was ändern, definitiv also selbst
- 31:08wenn du das Gefühl hast, es ist komplett klar was wir hier also
- 31:11auf der Zielgeraden irgendwann mal haben als Produkt, es wird
- 31:14sich was ändern, also es ist nicht ausgeschlossen, aber wenn
- 31:17es so klar ist, dass du weißt. Es ist zu 99%.
- 31:20Wären wir also, sagen wir mal zu 100% mehrere Zahlungsanbieter
- 31:23und zu 80% ist schon klar welche, dann würdest du ja
- 31:26trotzdem anfangen das zu skalieren, sozusagen.
- 31:28Dann kann es sein, dass du vielleicht mal n
- 31:31zahlungsanbieter rausschmeißt oder einen ergänzt, OK, aber
- 31:33trotzdem würdest du ja dann halt schon anders an die Sache
- 31:36herangehen, als würdest du sagen, es kann sein, dass es nur
- 31:40einer ist. Also mach ich jetzt nach Yagni
- 31:41auch wirklich nur den einen. Ja, genau.
- 31:45Aber zum Beispiel, wenn du jetzt also ne, wir haben jetzt diesen
- 31:47Zahlungsanbieter mal als Beispiel genommen oder dieses E
- 31:49Commerce System und das ist natürlich aber auch unter
- 31:53Umständen ne klar, da fließt auch Geld und so, aber es ist
- 31:55jetzt vielleicht noch nicht ganz so kritisch, aber wenn man jetzt
- 31:59wirklich in in andere Bereiche reingeht, wie zum Beispiel
- 32:02irgendwie luftfahrtmedizin oder so ne, das sind ja auch Sachen
- 32:06wo man wirklich im Vorfeld schon.
- 32:08Bestimmte Szenarien einfach sehen sollte und die im Vorfeld
- 32:13schon einkalkulieren sollte. Also wirklich diesen Weitblick
- 32:15zu haben, um zu wissen, was muss, was muss denn da
- 32:18passieren, was muss denn da passieren, wenn wir das machen?
- 32:21Ne, also einfach zu gucken, du willst nicht, dass dein Flugzeug
- 32:24hinterher abstürzt, weil sozusagen ja erstmal war doch
- 32:27nur gedacht, dass es starten kann, also landen ist doch
- 32:29erstmal egal, so ne. Weißt du also man ey.
- 32:33Ja OK, gut, das falsch. Also sowas funktioniert ja dann
- 32:36nicht, ne und und deswegen muss man da natürlich schon deutlich
- 32:38separieren und sagen, wenn du in dem in einer gewissen
- 32:41Komplexität arbeitest, wie zum Beispiel auch ne in solchen Luft
- 32:44und raumfahrtsystemen Medizin oder so wo wo halt wirklich
- 32:48Gesundheit und vielleicht auch Menschenleben davon abhängen was
- 32:51da los ist, ist das natürlich noch mal eine andere Geschichte,
- 32:55ne und im Normalfall. Ja, also.
- 32:57Absolut. Wenn du jetzt sage ich mal, wenn
- 33:00weil du meinst Luft und Raumfahrttechnik Bahntechnik
- 33:02auch in der automobilen Welt, wenn du da natürlich
- 33:05sicherheitskritische Systeme hast, dann hast du ja
- 33:08automatisch verschiedene ISO Normen die quasi klassifizieren
- 33:14welches sicherheitskritische Level du hast.
- 33:17Und dann folgen darauf ja Prozesse die du einhalten musst.
- 33:22Beispielsweise auch in der Entwicklung.
- 33:24Und dann wird es halt auch schwer zu sagen, nee, jagni mach
- 33:29ich jetzt nicht, ich mach jetzt hier wirklich nur das was die
- 33:32Anforderung ist, die ich gerade entwickel, das wird halt
- 33:34schwierig, weil dann wirst du an den Punkt kommen, wo du sehr
- 33:36viel noch mal umbauen musst, weil du halt gewisse Prozesse
- 33:39dann einfach nicht einhältst und das ist definitiv so, dass da
- 33:44jagni schwierig wird. Also du kannst es bis zum
- 33:47gewissen Grad halt umsetzen, dass du sagst, OK, ich will
- 33:49jetzt wirklich. Rein funktional sag ich mal nur
- 33:52dieses Feature implementieren, aber die Welt die da drum
- 33:57entsteht durch Prozesse, die du beispielsweise durch ISO Norm
- 34:02aufgedrückt bekommst es mal bisschen provokativ zu
- 34:05formulieren wirst du einhalten müssen und dann macht es keinen
- 34:11Sinn sie zu ignorieren und später super viel ja Nacharbeit
- 34:16zu haben, also refactoring Aufwand überarbeitungsaufwand
- 34:19also. Super Beispiel, weil da wirst du
- 34:21nicht drum rum kommen. Aber gerade ist ja auch gut,
- 34:23dass du nicht drum rum kommst, weil sonst hast du nachher im
- 34:25Flugzeug was starten kann und nicht klar.
- 34:28Aber gerade auch sowas wie solche Normen.
- 34:31Damit gehen ja dann unter Umständen auch bestimmte
- 34:33Architekturentscheidungen einher, die einfach nicht
- 34:36notwendig sind dafür und die kannst du dann im Endeffekt nur,
- 34:40weil du dann sagst, ja ja nee, Obacht brauchen wir noch nicht,
- 34:44ja vielleicht braucht man das zu dem Zeitpunkt, wo man das
- 34:47Projekt aufsetzt und startet noch nicht, aber du weißt.
- 34:50Du brauchst es aber in Zeit x ne und da muss es da sein.
- 34:55Also wieso nicht von vornherein das so aufsetzen?
- 34:58Ne, also wie wie du meintest du hast genau dann irgendwann
- 35:00kommst du an den Punkt und dann hast du vielleicht ne riesige
- 35:02riesige refactoring Arbeit wo jeder sich hinstellen würde und
- 35:05sagen würde ey das Wusstet ihr doch von vornherein schon, wieso
- 35:09habt ihr das nicht gleich gemacht?
- 35:10Ne und das ist natürlich. Genau dieser Trade auf und ich
- 35:14find es aber auch unglaublich schwierig, wenn man selber an
- 35:16dem Projekt arbeitet, an welche trotzdem.
- 35:19Also es ist ja ne, man kann sich das so hinstellen und sagen OK
- 35:22pass auf so und so ist es ne so und so wird es so und so grenzen
- 35:25wir das jetzt ab und da ist es gut, da ist es schlecht aber
- 35:28nichtsdestotrotz kann man ja sagen, dass es immer wieder
- 35:32trotzdem finde ich zumindest persönlich für mich gar nicht so
- 35:35hundertprozentig die diese Antwort gibt zu sagen.
- 35:39Machen wir das jetzt schon oder noch nicht?
- 35:41Also man struggelt trotzdem ab und an immer mal wieder finde
- 35:44ich, mit dieser Entscheidung sollte man das jetzt umsetzen
- 35:49oder lieber doch nicht, weil man braucht es ja noch nicht, aber
- 35:53aber vielleicht doch, aber sehr sicher doch, oder?
- 35:55Also es ist ja immer diese gewisse Unsicherheit wie du
- 35:59meintest, es ist ja nie ein absolut ein, also die Zukunft
- 36:02ist ja nie gewiss, um mal ein bisschen philosophisch zu
- 36:05gelingen, aber. Aber man war das philosophisch.
- 36:10Aber die Frage ist halt, wie wahrscheinlich oder wie
- 36:14unwahrscheinlich ist es und und und.
- 36:16Diese Varianz, die dazwischen irgendwie einhergeht, das ist
- 36:19halt so, das ist dann so dieses Fingerspitzengefühl, wo man
- 36:23sagen kann, OK, ist es jetzt gut oder nicht, da struggle ich
- 36:27persönlich auch manchmal noch es.
- 36:29Ist ja so jakni oder nicht jakni, das ist hier die Frage,
- 36:32ne. So, jetzt klage ich auch mal n
- 36:35bisschen philosophisch. Sehr gut also.
- 36:37Nein, aber oder nicht. Ja, ja klar, klar.
- 36:41Deswegen haben wir auch vorhin gesagt, das ist ne Balance, weil
- 36:45es ist ja quasi nicht sozusagen binär an aus, also jagni ja,
- 36:49jagni Nein, sondern. Du hast einfach fließende
- 36:52Übergänge und ne Balance, die du schaffen musst.
- 36:55Mal kannst du sagen, OK, ich fokussier mich dann doch mehr
- 36:58auf diesen jakni Ansatz, weil es an der Stelle einfach gut
- 37:01funktioniert oder wir vielleicht noch früh im Projekt sind.
- 37:04Alles was wir so beleuchtet haben genauso kann es zur
- 37:06anderen Seite kippen, wenn wir beispielsweise in einem
- 37:09sicherheitskritischen Projekt arbeiten und Prozesse einhalten
- 37:12müssen oder weit fortgeschritten sind, auch in der
- 37:16Produktkomplexität am Ende, dass du das dann halt auch nicht mehr
- 37:19so einfach machen kannst. Also es ist halt wirklich wieso
- 37:21ne Waage und man muss halt gucken und für sich entscheiden
- 37:24und ich glaub da spielt auch irgendwann ne Menge Erfahrung
- 37:27rein, die dir dabei hilft das zu entscheiden was jetzt der
- 37:31bessere Ansatz ist. Am Ende wie gesagt, Es hat ja
- 37:33immer vor und Nachteile genau wie die anderen Prinzipien die
- 37:36wir schon erklärt hatten. Das ist n guter Stichpunkte,
- 37:38weil ich ich find das auch noch mal interessant, weil man kann
- 37:41sich ja natürlich jetzt hinstellen und sagen, OK, pass
- 37:43auf, ihr hattet jetzt andere Prinzipien wie Dry und Kiss
- 37:45hattet ihr schon genannt, da ging es ja auch irgendwie so n
- 37:48bisschen darum zu sagen. Macht das nicht doppelt, also ne
- 37:54Komplexität vermeiden oder was ne oder sowas wie macht es
- 37:57einfacher, also Komplexität vermeiden und jetzt habt ihr
- 38:00auch wieder von Komplexität vermeiden geredet.
- 38:02Also es ist jetzt im Endeffekt alles das gleiche, aber um das
- 38:05noch mal vielleicht n bisschen abzugrenzen, es ist ja nicht.
- 38:08Genau das gleiche, weil diese, wenn man das jetzt wirklich auf
- 38:11den Punkt bringen möchte, gibt es ja unterschiedliche Ziele von
- 38:14den unterschiedlichen Prinzipien.
- 38:15Also wenn du das Drive Prinzip nimmst, dann hast du halt das
- 38:18Ziel Redundanzen im Code zu vermeiden, im groben ne wenn du
- 38:24Kiss nimmst. Als Prinzip geht es ja darum
- 38:26wirklich Software zu vereinfachen oder einfach zu
- 38:28halten, gar nicht erst komplex zu machen.
- 38:30Und wenn du Jagni nach Jagni arbeitest, versuchst du ja
- 38:34unnötige Features, die vielleicht in Anführungsstrichen
- 38:37in der Zukunft irgendwann mal notwendig sind, im Vorfeld zu
- 38:41vermeiden oder genau diesen diese Gratwanderung zu machen.
- 38:45So brauchen wir es, brauchen wir es nicht und dann halt genau
- 38:48nach Erfahrung eben diesen Schritt zu machen oder halt eben
- 38:51nicht. Und das sind ja genau also, um
- 38:54das noch mal abzugrenzen, ne, dass du wirklich sagst, so Dry
- 38:56und Kiss konzentrieren sich auf die Struktur und Lesbarkeit des
- 38:59Codes und Yagni ist halt so der Fokus auf die Umsetzung von
- 39:03Features und deren Notwendigkeit, ne, um das noch
- 39:06mal n bisschen abzugrenzen. Liebe zürerin lieber zürer, wenn
- 39:08du jetzt gerade sagst, ey, ich ist die 1.
- 39:10Folge von von euch die ich höre, wir hatten schon 2 alte folgen,
- 39:15hör da mal rein dry und Kiss. Sind auch sehr gute Prinzipien,
- 39:19die einem weiterhelfen können. Auf jeden Fall und die man auch
- 39:21immer mal im Hinterkopf haben sollte, aber ich fand das war n
- 39:24sehr gutes abschließendes Wort und ich glaube wir haben jetzt
- 39:27japni ich find den aber immer noch so geil, ausführlich
- 39:31besprochen und auch gut beleuchtet mit vor und
- 39:33Nachteilen und wann man es einsetzen kann oder besser nicht
- 39:36sollte. Deswegen würde ich sagen würde
- 39:39ich jetzt die Folge hier beenden, wenn das für dich OK
- 39:40ist, fabi. Das passt.
- 39:43Und deswegen noch mal der Appell an dich, liebe Zuhörerinnen,
- 39:46liebe Zuhörer, falls dir das Projekt Coding Buddies gefällt
- 39:50und du diesen Podcast magst, lass doch gerne auch mal ein
- 39:53Feedback da Like auf den gängigen Plattformen unseren
- 39:56Podcast empfehlen auch gerne weiter und wenn du Bock hast,
- 39:59findest du in den Show Notes auch einen Link, da kannst du
- 40:02spenden, das würde uns mega freuen, das hilft uns hier auch
- 40:05alles noch zu verbessern und fortzuführen, denn wir haben
- 40:08weiterhin extrem Bock auf diesen Podcast und das Projekt Coding
- 40:11Buddies. Zu unseren anderen Plattformen,
- 40:14wenn du da mal vorbeischauen willst, findest du ebenfalls in
- 40:16den Shownotes. Schau da gerne mal vorbei, join
- 40:19auch gerne unseren Discord Server, da sind wir mittlerweile
- 40:21eine sehr coole Runde und diskutieren über
- 40:23Softwareentwicklung und allgemeine Themen.
- 40:26Ansonsten würde ich sagen, beenden wir jetzt die Folge
- 40:29hier, wir hören uns alle beim nächsten Mal wieder und bis
- 40:32dahin hab eine gute Zeit, wir hören uns deine Coding Boys.
- 40:36Gemeinsam besser.