Latest / Coding Buddies | Tech & Dev-Mindset / Refactoring? Mach's gleich richtig!
Transcript
- 0:00Wir müssen jetzt noch ein paar neue Features reinpacken und
- 0:03wenn wir das haben, dann können wir quasi refecto und das ist
- 0:06meiner Meinung nach eine riesengroße Lüge.
- 0:11Dein Podcast rund um Softwareentwicklung und
- 0:13aktueller Tech News. Herzlich Willkommen.
- 0:27Ja, herzlich Willkommen zur neuen Folge des Coding Bodies
- 0:30Podcast. Schön, dass du wieder
- 0:31eingeschaltet hast. Wir sind natürlich wieder mit am
- 0:34Start. Einerseits meine Wenigkeit Tino
- 0:36und natürlich auch wieder fantastische Fabi, Fabi, Grüß
- 0:39dich neue Folge. Halli Hallo.
- 0:43Und hast du Bock, kann losgehen. Die Sonne scheint einfach super
- 0:47jetzt hier im Podcast aufzunehmen.
- 0:49Ich meine es hat die letzten Wochen gefühlt nur geregnet, der
- 0:52Regen ist vorbei, genau der Regen ist vorbei, die ersten
- 0:55Sonnenstrahlen kommen raus, da wird es natürlich Zeit einfach
- 0:57wieder in der Bude. Zu setzen und Podcasts
- 0:59aufzunehmen. Da kommt man nicht drum.
- 1:03Drin, ne. Bude zu sitzen, ja.
- 1:05Das gehört einfach als Entwickler dazu, wirklich
- 1:08dauerhaft drin zu sitzen. Nein, wir haben natürlich ein
- 1:12spannendes Thema mitgebracht, deswegen freue ich mich sehr auf
- 1:15diese Folge, wir haben es ja auch schon mal angeteasert oder
- 1:18gemerkt, dass dieses Thema einfach wirklich wichtig ist und
- 1:23deswegen wollen wir heute ja über da da, da, da Riff.
- 1:28Reden. Ich dachte da, da, da.
- 1:31Da da, Nein, das war nur ein Trommelwirbel, hab ich jetzt
- 1:35nicht so hingekriegt. Nein, also das Thema ist
- 1:37refactoring hab ich Bock drauf, lass uns da mal ein bisschen
- 1:41drüber quatschen was ist eigentlich refactoring, was sind
- 1:44die vor und Nachteile oder auch Herausforderungen dabei und
- 1:47warum erachten wir als sehr wichtig, deswegen würde ich dir
- 1:51jetzt mal das Wort geben und fang doch einfach mal an, erklär
- 1:54doch mal unserer Community was refactoring ist.
- 1:59Ja, ich mach glaub ich einfach kurz.
- 2:01Bei Refactoring handelt es sich darum, dass man die Qualität
- 2:06seines Codes erhöht, ohne. Dass die.
- 2:11Funktionalität verändert wird. Und das ist prinzipiell
- 2:13eigentlich schon Factory. Die Frage.
- 2:17Ist ja eigentlich, das war wirklich sehr kurz und knapp.
- 2:20Aber ja, das trifft es eigentlich ganz gut.
- 2:24Kannst du das noch ein bisschen weiter ausführen, damit das Bild
- 2:28vielleicht noch ein bisschen klarer wird?
- 2:31Und zum Beispiel auch mal nennen, warum du denn denkst,
- 2:34dass es wichtig zum Beispiel dadurch die Code Qualität zu
- 2:37erhöhen. Und wie erhöhe ich denn dadurch
- 2:39die Qualität? Aber was meinst du jetzt mit
- 2:42genauer ausführen? Also es kann natürlich also
- 2:45meine, also wieso muss man überhaupt defekt, dann kann man
- 2:50sich ja vielleicht fragen, wenn man also es gibt ja keine, sich
- 2:53hinstellen und sagen, mach doch gleich von Anfang an richtig, da
- 2:55musst du nicht defekt da, da musst du deine Code Qualität
- 2:58nicht erhöhen wenn du schon am Anfang auf deine Qualität
- 3:01achtest, richtig so, das könnte man ja durchaus in Raum werfen,
- 3:04ne? Hatte ich witzigerweise sogar
- 3:07mal ein Gespräch mit einem mit einem Projektmanager, der mich
- 3:11tatsächlich auch genau das gefragt hat, weil da ging es
- 3:14nämlich darum, dass wir, dass wir sozusagen unsere Anwendungen
- 3:17defekt, dann mussten, muss man regelmäßig machen, Spoiler Alarm
- 3:24und da war dann so ein bisschen die Diskussion, dass er, glaube
- 3:29ich selber n bißchen in die Bredouille geraten ist, weil
- 3:32irgendwie was fertig werden musste und dann hat er irgendwie
- 3:35gemerkt, dass ein paar Entwickler.
- 3:36Im Team reflektiert haben und sozusagen den Fortschritt, der
- 3:41also die Funktionalität, wie ich ja meinte, Ne nicht
- 3:43vorangebracht habe, nicht verändert haben von der
- 3:46Anwendung aber halt die Code Qualität erhöht haben, so wie
- 3:49ich das ja gerade eben schon so von der Definition meinte und
- 3:53dadurch, dass es aber nicht funktional voranging, hat er
- 3:56glaube ich so ein bisschen ist er also der Projektmanager n
- 3:59bisschen schwitzen gekommen weil irgendwas gedrängt hat und.
- 4:03Weil an zu dem Zeitpunkt das Projekt an sich.
- 4:07Auf dem Papier nicht weiter. Vorwärts kommt nicht genau genau
- 4:10also wie gesagt, die Funktionalität geht nicht
- 4:11weiter, erhöht die Code Qualität, was natürlich wichtig
- 4:14ist. Darüber wollen wir jetzt reden,
- 4:16aber es war auf jeden Fall so dieses Gespräch im Raum ne
- 4:20einfach aus dem Grund, dass ihm halt damit der Schuh gedrückt
- 4:24hat. Manche nennen es vielleicht
- 4:27Deadline, manche nennen es irgendwie anders.
- 4:30Meilenstein. Ja, also.
- 4:32Das Erreichen von. Meilenstein genau.
- 4:35Und natürlich kommt dann irgendwie so ein bisschen, sag
- 4:40ich mal, das Gespräch auf. Ja, warum können jetzt nicht
- 4:43alle mal ein bisschen hier Gas geben und n bisschen ne n
- 4:48bisschen machen, bitte, dass wir weiterkommen anstatt jetzt die
- 4:51Qualität zu erhöhen und da kam dann irgendwann in diesem
- 4:54Gespräch die Frage von ihm. Ja, aber wenn man jetzt zum
- 4:57Beispiel sagt, OK, wenn ich jetzt komplett ein neues Projekt
- 5:00aufsetze, muss ich dann irgendwann zwangsläufig
- 5:03irgendwann recht? Dann, und die Antwort war halt
- 5:06ja, das muss man halt machen, weil du gar nicht drum herum
- 5:10kommst, dass du, also du kannst es nicht schaffen, die ganze
- 5:14Zeit perfekt alles zu coden, weil du ja teilweise auch gar
- 5:17nicht weißt, wo solls denn hingehen, dann kommen neue
- 5:19Anforderungen, der Code ändert sich, du musst vielleicht
- 5:22irgendwelche Strukturen in deinem Code umstellen und dann
- 5:26kommt es halt dazu, dass du irgendwann regelmäßig mal wieder
- 5:29gucken musst. Oh, hier ist was was
- 5:33verbesserungswürdig ist. Ne und?
- 5:35Naja, da kommt das zum Beispiel auch schneller oder ist das
- 5:38passiert? Ja schnell mal genau, wo man
- 5:40dann doch nochmal durch seinen alten Code durchschaut, aber zu
- 5:45deinem Beispiel oder zu deine Erfahrungen, die du da gemacht
- 5:47hast. Was war das denn jetzt?
- 5:49Ein kritischer Punkt, dass ihr lange nicht reflektiert hattet
- 5:52und deswegen ein erhöhter refecto Aufwand aufkam?
- 5:56Oder war es eigentlich eine Sache von maximal ein 2 Tagen
- 6:00und die wollte euch quasi schon nicht?
- 6:03Eingestehen, sag ich mal. Na also, es ging glaube ich
- 6:06schon so. Also der Aufwand des Refactoring
- 6:09was wir hatten hat sich glaube ich über ein 2 Wochen hingezogen
- 6:12und das war immer ungefähr ein Drittel des Teams saß dann da
- 6:16dran und ich hab das auch n bisschen gepusht an der Stelle,
- 6:19weil mir das halt auch schon länger aufgefallen ist, dass man
- 6:22das hätte machen müssen. Und das ist dann halt irgendwie
- 6:26einfach. Irgendwann musst du halt mal
- 6:29sagen, OK, jetzt wird es gemacht, weil das Problem ist ja
- 6:32meistens, dass gerade in solchen Projekten im Arbeitsumfeld gerne
- 6:38mal gesagt wird, ja, das machen wir dann später, ne, das wird
- 6:41dann irgendwann mal gemacht, das wird irgendwann refecto,
- 6:44irgendwann wird die Qualität erhöht, aber erstmal müssen wir
- 6:46jetzt noch was liefern, wir müssen jetzt noch ein paar neue
- 6:49Features reinpacken und wenn wir das haben, dann können wir quasi
- 6:53reflektieren, und das ist meiner Meinung nach eine riesengroße
- 6:56Lüge. Weil man das halt einfach nicht
- 7:01konsequent durchzieht, weil du immer was zu tun hast.
- 7:04Es kommen immer wieder neue Sachen, die irgendwie reinkommen
- 7:06müssen und dann bist du halt irgendwann an dem Punkt, wo du
- 7:08sagst, also irgendwann musst du halt mal sagen, jetzt zieht die
- 7:11Reißleine, jetzt wird reflected ne und es geht ja um nochmal n
- 7:17bisschen drauf zurückzukommen, was du gefragt hast.
- 7:19Ne, wieso muss man denn überhaupt perfekt, dann kann
- 7:22nicht von vornherein alles richtig machen.
- 7:23Angenommen Du arbeitest im Team ne und sagen wir mal wir beide.
- 7:28Ne arbeiten im Team, arbeiten an 2 verschiedenen Stellen im Code.
- 7:31Ich schreib irgendwas, du schreibst irgendwas so
- 7:33vielleicht parallel, vielleicht schreiben wir Code teile die
- 7:37sehr sehr ähnlich sind, weil es gerade zufälligerweise so ist.
- 7:40Ne und jetzt kommt irgendwann ein Dritter.
- 7:45Und guckt sich das an. Und denkt sich irgendwie, warte
- 7:49mal, da ist eine Funktion, die S sehr ähnlich zu dieser Funktion.
- 7:52Vielleicht kann ich ja irgendwie ein kleines Refactoring machen,
- 7:56ne? Also Refactoring hat ja
- 7:57verschiedene verschiedene Punkte, ein Punkt davon ist ja
- 8:02zum Beispiel Redundanz zu beseitigen und wenn du merkst,
- 8:04dass zum Beispiel eine Funktion oder funktions teil redundant
- 8:07irgendwo im Code rumliegt, dann kannst du halt diesen teilnehmen
- 8:10extrahieren. Sodass, wenn eine Änderung an
- 8:14diesem Code teil stattfindet, dass du dann nicht in diesem
- 8:17Punkt kommst. Du sagst OK, ich hab jetzt den
- 8:19Code teil verändert, aber es gibt quasi noch einen sehr
- 8:22ähnlichen oder gleichen Code teil der woanders liegt und der
- 8:25ist dann sozusagen nicht angepasst oder halt in dem Falle
- 8:28danach fehlerhaft. Ne, das heißt?
- 8:30Fehleranfällig. Genau das heißt das, dass das
- 8:32sind ja so bestimmte Sachen und sowas kann halt auftreten, das
- 8:35kannst du im Vorfeld nicht unbedingt planen.
- 8:37Du kannst nicht sagen, ja, ich schreibe jetzt diesen Code und
- 8:39diesen Code, dann müsste man also dann hast du ja vielleicht
- 8:41n utopisch. Hohe Absprachen, Aufwand, wo man
- 8:45dann sagt, OK, jeder muss jetzt irgendwie besprechen, was
- 8:47irgendwie jede Funktion, die ja implementiert muss, abgesprochen
- 8:51werden, ne, und deswegen ist es halt einfach so, dass man
- 8:55einfach regelmäßig reflektieren muss, damit kann man von
- 8:58vornherein direkt ins Projekt starten, in egal wo man ist, man
- 9:02kann immer direkt sagen, OK, jetzt geht irgendwas los und
- 9:05irgendwann müssen wir mal defekt, dann die Frage ist nur
- 9:08meiner Meinung nach. In welchen Schritten möchte
- 9:11machen regelmäßig immer n bisschen oder in längeren?
- 9:15Abschnitt Bang dann machen, aber das ist ja genau der Punkt oder
- 9:19das, was ich jetzt noch sagen wollte ist, weil du meintest du
- 9:23hattest das schon länger so das Gefühl, oh da müssten wir mal
- 9:27reflect, dann wurde es weiter aufgeschoben, aufgeschoben und
- 9:30am Ende war es ein Aufwand von ein 2 Wochen.
- 9:32Klar jetzt nur für ein Drittel des Teams aber dennoch ne, also
- 9:36würdest du sagen man hätte definitiv früher Reflektoren
- 9:40müssen, damit das auch einfach schneller erledigt ist.
- 9:42Also hat sich das wirklich aufsummiert oder lag es einfach
- 9:45nur und defector Aufwand war gleich wie vor meinetwegen ihr
- 9:49hättet das 2 Monate früher gemacht.
- 9:51Ja, gute Frage. Also das war tatsächlich ist
- 9:54auch ein bisschen schwierig manchmal so, ich glaube, da gibt
- 9:57es nicht so die hundertprozentige Antwort,
- 9:59zumindest in diesem Fall nicht, weil es gab, also wir hatten
- 10:05einen bestimmten Stand und wussten aber zu diesem Zeitpunkt
- 10:07auch nicht hundertprozentig, wo es dann genau weitergeht, ne,
- 10:11irgendwann hat sich heraus kristallisiert.
- 10:13OK, es wäre aber auf jeden Fall wichtig, dass wir unsere
- 10:16Struktur des Codes generell, also ein bisschen, ich sag mal,
- 10:20das war schon eher so ein Teil auf architektonischer Ebene und
- 10:24umbauen wollten. Und das hat sich dann irgendwann
- 10:29herauskristallisiert, dass auch Sinn macht.
- 10:31Und dann kam der Punkt, wo wir gesagt haben, o, wir machen das
- 10:34mal bloß, dass wir dann im Team ein gesamtes Grundverständnis
- 10:40für alle schaffen, wollten, wir s machen wollten, weil es bringt
- 10:42ja nichts, wenn du sagst, die Hälfte des Teams weiß jetzt so,
- 10:45wie es läuft und wie man das Refektorium möchte und die
- 10:49andere Hälfte des Teams arbeitet nach dem Refactoring
- 10:52beispielsweise genauso weiter wie vorher und dann kannst du
- 10:55eigentlich, dann bringt es ja nichts.
- 10:56Dann arbeiten 2 t, also 2 Teile des Teams in völlig
- 11:01unterschiedliche Richtungen. Und dann ist der Code hinterher.
- 11:03Kraut und Rüben ne, aber wir mussten halt irgendwie diesen
- 11:06diesen diesen Zeitpunkt finden oder diesen Termin erstmal
- 11:10machen, diesen Workshop, worauf dann halt auch erstmal wieder
- 11:12vielleicht keiner so richtig Lust hat, muss sich hinsetzen
- 11:15und muss nachdenken und und das war irgendwie auch so n bisschen
- 11:19Punkt. Also man braucht natürlich die
- 11:20Zeit und die Zeit muss man sich dann irgendwann nehmen und dann
- 11:23haben wir sozusagen alle im Team Brainstorming darüber
- 11:25nachgedacht, wie wir das machen wollen.
- 11:27Und dann? Danach ging es halt eigentlich
- 11:31erst richtig los, ne? Ich frage, weil ich hab halt die
- 11:35Erfahrung gemacht, dass oftmals so ist, wenn man schneller in
- 11:41diese in diesem Zyklus kommt oder sagt, OK ich reflecta
- 11:44jetzt, ich dreh jetzt noch mal die Runde und schaue nochmal
- 11:47alles durch und optimiere und steige ja damit hoffentlich auch
- 11:51die Code Qualität, dass es für die weiterführende Entwicklung
- 11:54halt auch viele Verbesserungen mit sich bringt.
- 11:58Also das heißt ja nicht, dass dieser Aufwand nicht statt oder
- 12:02irgendwie mit steigt, sozusagen ne, weil wenn du jetzt zum
- 12:06Beispiel. Funktionen, reflectors,
- 12:08Schnittstellen oder Whatever kann es ja sein, dass die neuen
- 12:12Features, die du implementierst, sich viel besser und leichter
- 12:14implementieren lassen oder im Worst case du noch auf dem alten
- 12:18Code aufsetzend das Weiterentwickelst und das auch
- 12:21alles dann wieder reflektiert werden muss, wenn du einmal dann
- 12:25anfängst. Und so skaliert das ja quasi
- 12:27dann auch oftmals mit der Aufwand ja definitiv keine gute
- 12:32Sache ist. Deswegen hab ich gefragt, ob du
- 12:33einschätzen würdest, dass es hätte viel schneller erledigt
- 12:36werden können. Wenn es natürlich jetzt ne
- 12:38Entscheidung in der Architektur ist oder so, dann wird
- 12:40wahrscheinlich auch gleich bleiben, weil es ja
- 12:43wahrscheinlich ja ein sehr grundlegender Umbau war dann.
- 12:48Aber im Allgemeinen, wenn es um einfache, quasi Optimierung der
- 12:53Funktionalitäten ist der Schnittstellen, dann finde ich,
- 12:57dass es meistens wirklich besser ist, relativ schnell in diesem
- 12:59System in diesem reflector Zyklus zu kommen, um halt
- 13:03einfach sich auf das Leben danach leichter zu machen.
- 13:05Ja, auf jeden Fall. Also das, wir hatten ja auch im
- 13:09in der Test Driven Development Folge auch darüber geredet, dass
- 13:12gerade Test Driven Development ja genau diesen refactoring Part
- 13:16jedes Mal mit drin hat. Ne, und dann?
- 13:19Sorgt er auch? Dafür, dass du regelmäßig das
- 13:21machst. Es kommt halt immer drauf an,
- 13:24weil für mich ist es so, dass es so unterschiedliche Arten von
- 13:28Refactoring gibt, und zwar entweder du reflectors nur eine
- 13:32Funktion oder eine Klasse oder halt wie gesagt dann auch ne,
- 13:37vielleicht auch ne ganze die ganze Software, die die
- 13:39Architektur dieser Software n bisschen unterschiedliche Ebenen
- 13:43und in dem Fall was ich jetzt gerade.
- 13:49Eingeführt hatte. Da ging es halt wirklich darum,
- 13:53dass sich dann langsam herauskristallisiert hat, dass
- 13:56es besser ist, dann nochmal ein bisschen zu wechseln.
- 13:58Und wenn du aber zum Beispiel am Anfang sag ich jetzt mal ne
- 14:03andere Annahme getroffen hast, weil die Anforderungen von der
- 14:06von der Software auch anders sind und sich dann aber ändern,
- 14:09dann kann es halt einfach dazu führen, dass man sowas machen
- 14:12muss, das sind da manchmal größere Umbauten, das stimmt,
- 14:16aber wie du auch schon meintest, je länger man damit wartet,
- 14:19desto länger zieht sich das am Ende trotzdem, auch wenn es
- 14:22erstmal ein größerer Aufwand ist, ne?
- 14:24Ja, also zum Beispiel, wenn man jetzt sagt, OK, man hat 10
- 14:27Klassen und muss die grundlegend, sag ich jetzt mal
- 14:30refecto irgendein Beispiel zu bringen und dann sagst du ja,
- 14:34wir machen das noch, wir machen das noch und dann hast du aber
- 14:36irgendwann 15 Klassen, sag ich jetzt mal, wo du das machen
- 14:38musst. Ne ist jetzt sehr effektiv
- 14:41gewesen, aber ich hoffe du konntest das Beispiel
- 14:43nachvollziehen. Aber wir können ja ein reales
- 14:46Beispiel bringen aus unserem aktuellen Projekt, von der
- 14:48Arbeit aus. Da war das ja so, dass wir uns
- 14:53entschieden haben, unsere kompletten Test zu reflektieren,
- 14:58aber auch im Sinne von, dass wir das Test Framework umgestellt
- 15:01haben, und das ist ja schon ein großer Aufwand gewesen durch
- 15:05alle, also wirklich alle testen, neu zu schreiben beziehungsweise
- 15:08nochmal durchzugucken und quasi in das neue Framework zu
- 15:12überführen, wo sich auch Leute denken könnten, warum
- 15:17eigentlich, also warum macht ihr das?
- 15:19Die Tests laufen, also das alte Test Framework hat funktioniert.
- 15:22Ja, nur haben wir festgestellt, je länger man damit arbeitet, so
- 15:28na, war vielleicht nicht die richtige Entscheidung.
- 15:30Hätten doch lieber das andere Framework nehmen müssen und ja,
- 15:35am Ende haben wir es ja umgebaut, zum Beispiel deshalb,
- 15:39weil es einfach wesentlich performanter war und die Tests
- 15:41schneller liefen. Ja, jetzt kann man sich ja
- 15:44denken, ja gut, läuft halt n paar Sekunden schneller oder so,
- 15:47aber was das auch für den Aufwand beziehungsweise in der
- 15:50Summe dann ausmacht, weil wie gesagt Test driven wir lassen
- 15:53nicht sehr oft. Laufen die Tests ne, also was du
- 15:57da denn hinten raus wieder an Zeit sparst hätte man sagen
- 15:59können, lass es einfach, also so früh wie möglich hätte man
- 16:02diesen Umbau machen müssen, auch wenn natürlich dann erstmal
- 16:04keine Features implementiert, sondern ja eigentlich nur seine
- 16:07Test Abdeckung neu aufsetzt sozusagen.
- 16:09Ja, aber das ist, das ist ein guter Punkt, weil gerade dieser,
- 16:14weil du das gerade ansprichst, so dieses aufschieben, ne was
- 16:19was finde ich immer sehr, sehr wichtig ist.
- 16:21An dieser Stelle ist, dass man, wenn man sagt.
- 16:25Okay wir müssen jetzt erst mal vorankommen, ne, und
- 16:27beispielsweise wir sagen ja, lass mal das Refactoring noch n
- 16:31bisschen, wir müssen jetzt erstmal feature ABC machen und
- 16:37wenn wir das haben so das Problem ist, wenn du dann aber
- 16:40sag ich mal an den Punkt kommst und sagst ich hab jetzt Feature
- 16:42ABC fertig und sagst jetzt würde ich gerne Reflektoren und dann
- 16:45hat heißt es aber vielleicht jetzt müssen wir noch DF machen
- 16:49und dann können wir weitermachen und dieses aufschieben ne und
- 16:52irgendwann hat bist du in diesem in diesem Modus das sozusagen.
- 16:56Du sogenannte technische Schuld aufbaust, weil du dann
- 17:00vielleicht noch mal ein Workaround gemacht hast und
- 17:02Bekanntlicherweise bleiben Workarounds für immer in der
- 17:05Software drin. Nee, aber also das, das ist halt
- 17:11das Problem, das heißt du in, ich sag jetzt mal, wenn man,
- 17:13wenn man jetzt von so einem, ich sag mal Zyklus spricht, es waren
- 17:17zum Beispiel sagt, OK, du hast jetzt eine bestimmte Menge an
- 17:20Features, die neu reinkommen, aber du hast nicht, dann kommen
- 17:25die, der nächste Zyklus ist, kommen also wieder n neue Menge
- 17:28an Features rein, du Effekt das nicht und am Ende hast du quasi
- 17:31für jeden für jeden in die für jeden Zyklus wo du diese diese
- 17:38wo du nicht defekt. Das erhöht sich ja.
- 17:40Der Aufwand des Refactoring und zusätzlich kommen wir aber
- 17:43trotzdem regelmäßig über Features.
- 17:45Das heißt, wenn du sagst, du brauchst keine Ahnung Monat für
- 17:48alle Features und hast dann keine Zeit mehr, bräuchtest du
- 17:51aber ein sozusagen Monat und eine Woche für Feature und
- 17:54Refactoring, dann brauchst du im nächsten Zyklus wieder einen
- 17:57Monat für die Features, aber vielleicht 2 Wochen für das
- 18:00Refactoring. Und irgendwann mal
- 18:01unwahrscheinlicher, dass das irgendwie gleichzeitig alles
- 18:04noch hinkriegt. Genau rechtzeitig.
- 18:05Und irgendwann kommt man vielleicht an den Punkt, wo man
- 18:07dann, und dann kommt dieser Big Bang, von dem du geredet hast.
- 18:10Ne, dass du vielleicht den ganzen Zyklus einfach nur für
- 18:14das Refactoring brauchst und dann kommt wieder jemand und
- 18:16sagt, ihr habt ja gar nichts geschafft.
- 18:18So, und das ist halt das Allerschlimmste finde ich, weil
- 18:21wenn du dann sozusagen als Entwickler hörst.
- 18:23Ja, ihr habt ja nichts geschafft und du denkst dir pass auf das,
- 18:27was wir gerade geschafft haben ist, dass wir überhaupt für die
- 18:29Zukunft eine Grundlage gelegt haben, dass diese Software
- 18:32überhaupt noch weiter existieren darf, das ist halt der finde
- 18:36ich, dass das krasse, weil da denkt niemand daran, ne,
- 18:40sozusagen dieses. Ich denk mal n bisschen weiter
- 18:42und überleg mir mal, soll diese Software denn überhaupt noch in
- 18:46Zukunft existieren oder wollen wir so lange Features machen bis
- 18:49das Ding implodiert? Weißt du und.
- 18:52Das ja, das ist ein echt guter Punkt.
- 18:54Aber also ich bin da voll auf deiner Seite, ne, aber ich
- 18:58erwische mich auch selbst dabei, dass manchmal.
- 19:03Wenn dann halt im Projekt Stress aufkommt, man sich auch
- 19:08verleiten lässt zu sagen, ja, OK, wir machen jetzt die und die
- 19:11Funktionalität bauen wir noch ein, aber dann werden wir
- 19:13wirklich mal reflektieren, weil du weißt eigentlich schon, du
- 19:15hast es wirklich vor Augen, du hast am besten schon eine to do
- 19:18Liste eingelegt, was alles gemacht werden muss, ne und die
- 19:21guckst du dir jeden Tag an und denkst dir, na gut, aber jetzt
- 19:25noch Feature AB und dann dann wirklich so, also man das ist
- 19:29halt auch schwer da so richtig konsequent zu sein finde ich
- 19:32manchmal. Weil du ja wirklich keine Ahnung
- 19:34kommt dein Produkt oder zu dir und sagt Hey, müssen das jetzt
- 19:37wirklich in dieser Iteration mal fertig kriegen so ne und im
- 19:41Hinterkopf hast du o meine ich würde aber echt gerne vorher
- 19:44noch einmal durchgefallen, weil das gefällt mir gar nicht mehr
- 19:47so wie der Code aktuell ist. Also in diesen diesen Modus kann
- 19:51man halt schneller reinfallen als man denkt, also es ist halt
- 19:54leicht gesagt zu sagen ne machen wir jetzt nicht wie dann weil
- 19:57irgendwann kommt halt auch mal der Projekt Stress unter, dieser
- 20:00reicht der Druck von außen da drauf ne.
- 20:02Aber meinst du nicht, dass es rein theoretisch.
- 20:05Eigentlich. Mit inbegriffen sein sollte,
- 20:09dass man sagt ich also Software zu schreiben beinhaltet eine
- 20:14gewisse Art von Refactoring. Ja, sollte es also.
- 20:19Das ist ja dann aber auch wieder eine planungs Sache.
- 20:23Dass du dir die Zeit halt dafür aktiv einplanen und quasi das
- 20:28Wissen im Team oder auch im Projekt herrscht.
- 20:32Dass das damit drin ist, also dass das nicht nur Features
- 20:35beinhaltet, sondern auch die Wartung der Software, halt ne.
- 20:39Also ich hab mal gehört, dass man ungefähr im Normalfall, und
- 20:45das ist absolut realistisch, 20 bis 30% initial schon immer,
- 20:50immer wenn Software Entwicklung stattfindet, für das Refactoring
- 20:54einplanen muss. So, und da sind wir dann zum
- 20:58Beispiel auch wieder an diesem Punkt, weil ich ja meinte, dass
- 21:01ein Drittel des Teams bei mir in dem Beispiel, was ich vorhin
- 21:05genannt hab, was mir, was mir passiert ist, haben.
- 21:09Wir hat ja ein Drittel des Teams daran gearbeitet und rein
- 21:12theoretisch, und das war nur für über 2 Wochen.
- 21:14Die müssen dauerhaft dann eigentlich.
- 21:16Das rein theoretisch muss dauerhaft passieren und daran
- 21:20denkt halt immer keiner so und. Aber da würde mich wirklich mal
- 21:24Hand aufs Herz interessieren, bei wie vielen Leuten das so
- 21:27läuft. Also ich bin da wirklich ganz
- 21:29bei dir und das sollte so auch sein, weil das macht dir das
- 21:31Leben wie gesagt langfristig auch echt besser ne, aber ich
- 21:35glaube, dass das selten der Fall ist, dass du so viel Zeit dafür
- 21:38eingeräumt bekommst. Wenn du es dir nicht aktiv
- 21:41nimmst und dafür kämpfst halt ne, deswegen ja dann.
- 21:46Muss man sich glaube ich, einfach mal hinstellen und
- 21:48sagen, Nein, das schaffen wir nicht, das geht nicht, ich ja,
- 21:52weiß ich nicht, ich bin ich, ich hab da schon so viel erlebt,
- 21:56dass also aber auch, also weißt du diese.
- 21:58Meistens hast du die Entwickler, die sagen ja, das stimmt so, das
- 22:01ist ja, alle sind quasi einer Meinung, nur dann kommen
- 22:03irgendwie sag ich jetzt mal so aus Management kreisen oder so
- 22:06mal blöd gesagt, weil die halt ganz andere ist ja logisch ne
- 22:10die haben ganz andere Blickwinkel auf die Dinge und da
- 22:14treffen manchmal Welten aufeinander, das ist eigentlich
- 22:18manchmal ganz schön. Doof, ganz schön doof.
- 22:20Wäre ja gut, Missverständnisse gibt es immer ne, ich würde aber
- 22:26sagen wir haben das ja ausführlich diskutiert, warum es
- 22:29wichtig ist. Und auch Vorteile genannt.
- 22:33Genau, ich würde sagen, lass uns die Folge hier beenden, ich
- 22:36denke wir haben das Refactoring ordentlich besprochen.
- 22:38Ja, ansonsten, wenn ihr da draußen als Zuhörerinnen und
- 22:45Zuhörer noch ein bisschen mehr über Factoring wissen wollt oder
- 22:47euch nochmal ein paar Themen interessieren, dann einfach mal.
- 22:52Schreibt uns einfach bei Instagram.
- 22:54Wie gesagt, wenn euch generell auch Themen im Podcast
- 22:57interessieren, einfach immer her damit wir.
- 23:00Gehen da gerne auf eure Wünsche drauf ein und ansonsten guckt
- 23:05einfach mal. Ja, einfach auf unsere anderen
- 23:08Plattformen, die links zu den anderen Plattformen findet ihr
- 23:10in den Show Notes. Vergesst nicht, den Podcast ZU
- 23:13liken und euren Freunden und Freundinnen zu empfehlen, falls
- 23:16euch. Die Folge?
- 23:17Gefallen hat und in diesem Sinne hoffen wir, dass wir uns beim
- 23:22nächsten Mal wieder hören. Und macht euch noch einen
- 23:24schönen Tag. In diesem Sinne eure.
- 23:26Cordis gemeinsam besser.