Latest / Coding Buddies | Tech & Dev-Mindset / Big Software Fails #2 - Wie man in 45 Min 440 Mio verliert
Transcript
- 0:01Am 1. August 2012 begann die Wall
- 0:04Street ihren normalen Handelswahnsinn, wie ein
- 0:06Unternehmen innerhalb von 45 Minuten $440000000.
- 0:12Durch einen Softwarefehler verlor, das erfährst du in
- 0:14dieser Folge Coding Body, Deinem Podcast rund um
- 0:18Softwareentwicklung und aktueller Technews herzlich
- 0:21willkommen. Herzlich Willkommen zur neuen
- 0:35Folge des Goating Body Podcasts. Schön, dass du wieder
- 0:37eingeschaltet hast, dass wir alle wieder zusammen sind.
- 0:40Zum einen meine Wenigkeit, Tino und natürlich auch der
- 0:43fantastische Fabi wieder an meiner Seite fabi Grüße dich
- 0:47halli Hallo Tino, Wie geht es dir?
- 0:50Was geht ab? Alles gut bei dir?
- 0:52Ja, ich bin n bisschen müde, weil, also was heißt müde
- 0:55eigentlich bin ich glaub ich nicht müde, aber ich wurde heute
- 0:57echt mies geweckt. Also von was?
- 1:02Irgendwann heut morgen. Ich weiß auch nicht, weißt du,
- 1:04wenn du so aufwächst mit dem Geräusch von einer Flex oder so
- 1:09von um 7 an und ich bin ungefähr 07:30 Uhr oder so aufgestanden
- 1:12und von um 7 bis 07:30 Uhr denkst du ich will noch
- 1:15schlafen, ich will noch schlafen.
- 1:18Und die ganze Zeit immer in so einem Rhythmus.
- 1:19Hat irgendjemand dreimal irgendwo draufgehämmert und ich
- 1:23dachte mir, sowas machen die da, lasst mich, das war die eiskalte
- 1:27Realität, die gesagt hat, du musst jetzt langsam wirklich mal
- 1:30aufstehen, wahrscheinlich gibt es jetzt auch ein paar Zuhörer,
- 1:32die sich denken, was halbakt. Aber zu Deiner Verteidigung ist
- 1:38es auch so meine Zeit. Es mag vielleicht daran
- 1:40geschuldet sein, dass wir zusammenarbeiten und so einen
- 1:43ähnlichen Tagesablauf haben. Ja, aber so eine Flex ist
- 1:47natürlich, wie sagt man super nervig, denn am Morgen ist eine
- 1:52schöne Sache. Ich hatte war nicht heute, aber
- 1:57die Woche. Einfach ein ständiges Klingeln,
- 2:00weil die die Anlage getestet wurde, weil beim Nachbarn die
- 2:05Klingel nicht funktioniert. Und da hat es einfach im Haus
- 2:08ständig geklingelt und auch meine Klingel, quasi weil alle
- 2:10durchgetestet wurden. Da denkst du dir so Leute nicht
- 2:15cool waren. Wirklich nicht cool.
- 2:18Das war um 7 oder so. Ja kannst du die nicht so
- 2:21ausschalten? Manche kann man ja irgendwie
- 2:23ausschalten, aber ja ich hab sie einfach von der Wand gerissen,
- 2:26sehr gut und hab gesagt wenn du schon mal da bist, kannst du ja
- 2:28später reparieren, meine ist übrigens kaputt.
- 2:33Nein, na gut, OK, das war natürlich nur Spaß, es wurde
- 2:37geklärt und ich war dann auch so eine halbe Stunde später nicht
- 2:40mehr angepisst. Also nach dem Kaffee ging es
- 2:42dann. Tino hat jetzt immer noch
- 2:44tinitus. Genau.
- 2:46Tino ist auch ständig klingeln. Wow, Fabi, wo kann der denn,
- 2:51Herr Igor? OK, kommen wir mal zum Thema,
- 2:56Wir haben heute wieder was ganz Besonderes vor beziehungsweise
- 3:00wollen wir eine neue Podcast folgen Reihe fortführen die wir
- 3:05angefangen hatten und ich hab extrem Bock auf diese Folge,
- 3:08weil ich das Thema sehr spannend war oder spannend fand so rum
- 3:13und mich sehr gerne da ein bisschen eingelesen habe weil es
- 3:15echt doch ein super geiles Beispiel ist.
- 3:17Und zwar geht es um unsere Big Fails in der
- 3:20Softwareentwicklungsreihe. Und haben da wieder einen ganz
- 3:24coolen Fall aus dem Jahre 2012. Also es ist noch gar nicht so
- 3:30lange her mitgebracht. Nichts.
- 3:35Wir sind doch mittlerweile im Alter, wo man sagen kann, dass
- 3:37da nichts quasi gestern. Gewesen ist.
- 3:42Genau. Und was da passiert ist, worum
- 3:45es geht, das wollen wir heute mal ein bisschen beleuchten und
- 3:48vor allem auch mal Schlüsse daraus ziehen.
- 3:50Man soll ja auch ein bisschen was mitnehmen, wo, was man
- 3:52daraus lernen kann. Mhm.
- 3:54Und zwar möchte ich das ganze kurz mal einleiten, es sei denn
- 3:58du sagst jetzt, nee, lass das nicht machen, da brauchen wir
- 4:00jetzt ganz schnell n ersatzthema, aber ansonsten würd
- 4:03ich jetzt mal einleiten und zwar letztes Mal.
- 4:06Hatten wir quasi so um über Raketenstarts gesprochen, im
- 4:10Speziellen um die Ariane 5 über den Fehlstart und wie es dazu
- 4:14kam. Und dieses Mal möchte ich gerne
- 4:17mit dir in einen anderen Sektor gehen und zwar in den
- 4:20Finanzsektor, quasi in den Finanzdienstleistungsbereich
- 4:25auch. Und zwar geht es dabei um einen
- 4:29sehr berühmten Fall, und zwar um das Unternehmen Nightcapital,
- 4:34damals noch, später dann die Night Capital Group.
- 4:38Warum es eine Group wurde und Investoren reingekommen sind,
- 4:41das werden wir beleuchten. Und zwar um den Fall, dass die
- 4:47Nightcapital innerhalb von 45 Minuten 440000000 roundabout
- 4:53Dollar verloren hat und Pleitegegangen ist, obwohl es ja
- 4:58eigentlich ein sehr anerkanntes, renommiertes
- 5:02Finanzdienstleistungsunternehmen war.
- 5:06Und warum da ein Softwarefehler Schuld war und der auch in die
- 5:10Geschichte einging als Nightcapital Group Trading
- 5:13Glitch. Das möchte ich gerne mit dir
- 5:17beleuchten. Heute unbedingt Tino unbedingt
- 5:20und ich glaube, du hast das sogar noch ein bisschen
- 5:23untertrieben, weil die Nightcapital war wirklich.
- 5:27Um das noch mal weiter einzuordnen, eines der führenden
- 5:30Unternehmen im Bereich von einem elektronischen Börsenhandel,
- 5:33auch gerade im Bereich High Frequency Trading sozusagen.
- 5:38Das also dieses Unternehmen hat ungefähr ab bis zu diesem
- 5:42Zeitpunkt ungefähr 20 Jahre einfach die Branche dominiert,
- 5:45was ja wirklich schon also ordentlich ist.
- 5:49Also. Auch mit ihren Softwarelösungen.
- 5:51Genau, auch mit den Softwarelösungen alles drum und
- 5:53dran, ganz genau. Und da wurden halt Tausende von
- 5:56Transaktionen für verschiedenste und sehr viele Klienten in
- 6:00kürzester Zeit ausgeführt. Also ich weiß nicht, ob das
- 6:04jetzt zum Beispiel jemand eine Zuhörerinnen und Zuhörer kennt,
- 6:08der vielleicht ein bisschen im Thema drin steckt, aber zum
- 6:09Beispiel Vanguard war auch Kunde bei der Nightcapital.
- 6:14Kennt man vielleicht von einem ETF oder woher auch immer.
- 6:16Also nur mal als kleines Side Note und da wurden halt
- 6:20tradingvolumen von 20 Milliarden Dollar täglich umgesetzt und das
- 6:24ist schon sage ich mal eine Größenordnung, mit der nicht zu
- 6:27sparen. Ist ja so 1 größer von Peanuts
- 6:32quasi. Wie war das 1?
- 6:35Viel 1 Scheiß viel genau. Nein, das ist halt natürlich ne
- 6:38abnormal hohe Summe, also n riesenvolumen halt ne.
- 6:43Was ich aber eigentlich noch sagen wollte, noch ganz kurz,
- 6:48weil mir das auch nicht so klar war.
- 6:50Also ich nightcapital war mir n Begriff, aber zum Beispiel, dass
- 6:56sie auch. Sehr großer Market Maker waren
- 7:00oder Marktmacher auf Deutsch. Ich find das klingt nur auf
- 7:02Deutsch noch schlimmer als schon auf Englisch.
- 7:05Um mal quasi diese Auswirkung von diesem Unternehmen.
- 7:10Aufzuzeigen als Market Maker sorgst du ja im Prinzip für die
- 7:14Liquidität am Markt, das heißt, es werden halt super oft und
- 7:19schnell Kauf und Verkaufsorder gestellt, um einfach quasi Geld
- 7:24in den Markt zu spülen, um Liquidität zu schaffen und dafür
- 7:28waren sie halt ein Riesenunternehmen und hatten
- 7:30damit, ich glaube ja zum Beispiel an der New Yorker
- 7:33Börse, glaube ich, einen Anteil von über 10% oder so, das ist
- 7:38halt krank viel. Und dementsprechend auch eine
- 7:41hohe Auswirkung auf den Markt, je nachdem wie sie agieren.
- 7:46Und das fand ich halt wirklich erstaunlich, dass noch mal so
- 7:50vor Augen geführt zu bekommen und dieses High Frequency
- 7:54Trading, was du angesprochen hattest, wofür sie ja am Ende
- 7:57ihre Software lösen. Gebaut haben und Marktführer
- 8:00waren ist ja auch ne ne absolut krasse Sache, wenn man so drüber
- 8:04nachdenkt, also das auch profitabel zu gestalten, ne,
- 8:07dass du halt sagst, ich mach halt in, also in so einen
- 8:11kleinen Zeitabschnitt kaufe und verkaufe ich, dass ich die
- 8:14kleinsten Marktschwankungen für mich nutzen kann und mit diesem
- 8:18großen Volumen was sie hatten halt auch wirklich große Profite
- 8:23abschöpfen können damit, und das fand ich halt auch wirklich sehr
- 8:25erstaunlich, muss ich sagen und zeigt halt auch was für ein
- 8:29schmaler Grat das ist und wie. Soll ich sagen, wie gut diese
- 8:34Software dahinter sein muss, dass das sich auch rechnet und
- 8:36du nicht einfach sagst so Software legt los und es wird da
- 8:40automatisiert gehandelt und du bist halt sag ich mal innerhalb
- 8:44von kürzester Zeit pleite. Oh Moment mal.
- 8:47Genau das ist am Ende ja auch passiert.
- 8:51Und das würde ich nämlich gerne mal jetzt anreißen, was?
- 8:56Ist eigentlich geschehen. Und warum ist der Erste?
- 8:59August 2012 hat ja schon gesagt, im Jahre 2012 ist das passiert.
- 9:04So in die Geschichte eingegangen und zwar erzähl mir mal, wie das
- 9:08gewesen wäre, wenn ich live dabei gewesen wäre als
- 9:11Außenstehender. Also man kann sich das so
- 9:13vorstellen, es waren ganz normaler regulärer Handelstag,
- 9:16weil ich dachte mir halt so, naja, vielleicht war es
- 9:18irgendwie ein besonderer Tag oder irgendwas ist in der Welt
- 9:21passiert, aber es war einfach ein ganz normaler regulärer
- 9:23Handelstag, das heißt, die Börse öffnet, ich weiß nicht 9.
- 9:29Uhr. Ich handle nicht an der New
- 9:30Yorker Börse. Und kurz nach Marktöffnung, wo
- 9:36quasi die Systeme dann gestartet sind.
- 9:39Die Softwarelösungen der Nightcapital sind halt komische
- 9:42Anomalien aufgetreten, das heißt, die Mitarbeiter dachten
- 9:45sich so, irgendwie verhält sich unsere Software komisch, was
- 9:48passiert denn hier sind irgendwie so unkontrollierte
- 9:50Handelsaktivitäten gewesen und die sind halt ins Unermessliche
- 9:55gestiegen, dass Tausende Handelsaufträge fehlerhaft
- 9:59gestellt wurden. Boden und man so innerhalb von
- 10:02diesen 45 Minuten wirklich die 440000000 US Dollar verloren
- 10:08hatte, was im Prinzip mehr war als die Rücklagen die sie
- 10:12hatten. Und man quasi pleite war nach
- 10:17einer Dreiviertelstunde. Und die Frage ist halt, wie kann
- 10:22ein so innovatives Unternehmen? Das schaffen, dass sie sagen,
- 10:26OK, wir, wir machen seit 20 Jahren machen wir alles richtig
- 10:29blöd gesagt, und diese 45 Minuten heute haben das ganze
- 10:33Unternehmen ruiniert. Wie kann es dazu kommen?
- 10:37Und so standen nämlich auch die Mitarbeiter da, völlig
- 10:39verdutzen, wussten einfach nicht, was gerade passiert, was
- 10:43ich noch richtig krass fand war, dass als das passiert ist und
- 10:46die Mitarbeiter geschnallt haben, sage ich jetzt mal das
- 10:49gerade so enorme Verluste eingefahren werden.
- 10:53Gab es wirklich welche, die schon bereits angefangen haben,
- 10:56ihre Lebensläufe zu versenden, weil sie dachten, Ende der Woche
- 10:59bin ich arbeitslos? Higher and Fire in den USA.
- 11:03Also du bist ja dann schneller raus als du gucken kannst.
- 11:05Und die haben quasi gedanklich schon ihren Schreibtisch
- 11:08geräumt. Das ist schon krass.
- 11:10Ich meine gut feiern, feiern hin oder her, aber wenn das
- 11:12Unternehmen einfach nicht mehr da ist, was willst du da machen?
- 11:16So ja, aber ich meine diese Mentalität ist halt einfach da,
- 11:19dass sie sich denken, ach du meine, ist das meine Schuld, oh
- 11:22mein Gott, was ist hier gerade passiert, ich räume schon Moment
- 11:24Schreibtisch. Ja, aber ja.
- 11:27Wie kam es dazu? Ist ne gute Frage wie es dazu
- 11:29kam. Also im Endeffekt wurde
- 11:31irgendwann sag ich mal Marktlagen verändern sich ja
- 11:34auch ne, also beziehungsweise Anforderungen verändern sich und
- 11:38es wurde sozusagen es es musste etwas Neues her und ein neues
- 11:42Ich saß mal System das Retail Liquidity Programm wurde ins
- 11:46Leben gerufen, das hat im Endeffekt dafür gesorgt oder es
- 11:50war so ein bisschen um das mal grob abzureißen was das ist.
- 11:54Da ging es darum, dass halt eben nicht nur große Händler, sondern
- 11:57halt auch kleine oder Einzelpersonen genauso handeln
- 11:59konnten. Also fairere Marktpreise
- 12:02bekommen. Das war ja, glaube ich, eine
- 12:03Initiative von der New Yorker Börse selbst, von da ja genau,
- 12:07und damit das aber auch funktioniert hat, musste halt
- 12:10etwas Neues her und das ist halt genau dieses RLP, dieses Retail
- 12:13equidity Programm, das wurde musste sozusagen
- 12:16softwaretechnisch implementiert und integriert werden, in das
- 12:21sage ich jetzt mal System, was sowieso schon dafür gesorgt hat,
- 12:24diese Trading automatisierte umzusetzen und dieses diese
- 12:30Software hieß Smars, also wie der Mars bloß mit dem S davor.
- 12:35Und stand eigentlich im Endeffekt schön erklärt, Stand
- 12:39für Smart Market Access Routing System so nur mal so, damit man
- 12:44es auch wirklich noch mal vollständig hat für.
- 12:46All diejenigen, die es jetzt googeln wollen, genau.
- 12:50Und ja, im Endeffekt wurde das in diese Software integriert und
- 12:57dann kommt natürlich irgendwann der Punkt, dass man genau diese
- 13:00dieses Update natürlich auch irgendwann verwenden möchte.
- 13:03Ne, das heißt es gab halt irgendeinen Zeitpunkt x Stichtag
- 13:06x. Das war der 1.8.
- 13:08Der 1. August 2012 wie du so schön
- 13:11meintest und da wurde dann sozusagen dieses System, dieses
- 13:14adaptierte System dann eingesetzt und verwendet und das
- 13:18wurde erstmal auf die entsprechenden Server
- 13:21Kapazitäten die da waren ausgerollt.
- 13:23Also das System läuft dann nicht nur auf einem Server sondern auf
- 13:26mehreren Servern. Du hast eine.
- 13:28Große, du bist ja, du bist ja Markt.
- 13:30Wie hast du es so schön genannt, Marktführer, Marktführer, der
- 13:34der der große Big Player in diesem Business und hast
- 13:39natürlich viel Traffic, das heißt du brauchst mehrere Server
- 13:42wo das drauf läuft so und dann wurde erstmal überprüft okay wir
- 13:47haben einen Server und da integrieren wir das neue System
- 13:50und dann kam die. Cleveren Leute, die daran
- 13:54gearbeitet haben, auf die DNRS macht natürlich Sinn, das Ganze
- 13:57irgendwie zu automatisieren, weil nicht, dass wir hinterher
- 13:59einen Server übersehen. Ne, das heißt im Endeffekt wurde
- 14:02dann n Skript geschrieben. Mit diesem Skript wurde dann das
- 14:05Update eingespielt auf alle Server, die da waren.
- 14:11Genau, und da gab es aber dann im Endeffekt ein kleines
- 14:17Problemchen dabei bei diesem Ausrollen auf diese Server.
- 14:23Und das hat dazu geführt, dass das System, so wie es eigentlich
- 14:27funktionieren sollte, fehlerhaft war und demzufolge halt aus
- 14:31diesem Fehler, den wir auf dem wir noch näher eingehen werden,
- 14:34dann im Endeffekt dazu geführt hat, dass es eine riesige
- 14:37finanzielle Katastrophe wurde am Ende.
- 14:39Ja, weil was ich ganz spannend fand bei diesem Skript so n paar
- 14:45Quellen haben das n bisschen näher beleuchtet.
- 14:47Also im Endeffekt war es ja wirklich nur n kleines Skript
- 14:50was gesagt hat geh mal alle Server durch.
- 14:52Genau bauen ne SSH Verbindung auf und Update quasi die
- 14:57Software da drauf. Ne dass halt die richtigen
- 14:59Binaries dann am Ende laufen. Soweit so gut und klingt doch
- 15:03gut erstmal vernünftig, warum nicht automatisieren?
- 15:06Klar weil Menschen machen Fehler Problem an dem Skript war aber
- 15:10soweit ich das gelesen habe und das finde ich halt wieder
- 15:12spannend. Dass bei einer fehlerhaften
- 15:16Verbindung oder beziehungsweise wenn keine Verbindung aufgebaut
- 15:19werden konnte, einfach zum nächsten Server gegangen wurde
- 15:22und es keine Rückmeldung gab. So nach dem Motto Hier Server 5,
- 15:26hinten rechts in der Ecke, der hat das jetzt nicht bekommen,
- 15:29weil ich konnte keine Verbindung aufbauen, sondern es wurde
- 15:31einfach direkt zu Server 6 gegangen und da weitergemacht
- 15:33mit dem Update sehr. Gefährlich, weil am Ende dachten
- 15:38die Mitarbeiter, es ist ausgerollt.
- 15:40Alle Server haben den neuen Stand, aber Server 5 hinten
- 15:43rechts in der Ecke. Immer noch den alten stand weil
- 15:47sowie ich das in einem Bericht gelesen habe, war Erwartungen
- 15:50gerade das heißt er war offline und.
- 15:53Verbindung. Keine Verbindung, die Wartung
- 15:56wird durchgeführt, alles ist OK, der Server fährt wieder hoch mit
- 15:59dem alten Stand und dann hast du nämlich genau das Problem, sagen
- 16:03wir mal 7 Server haben die neue und der achte Nummer 5 hinten
- 16:08rechts in der Ecke. Den alten Stand und das Team
- 16:11denkt, das Update ist ausgerollt, also meldet das
- 16:15natürlich auch hier alles cool. Die Systeme Server laufen, wir
- 16:19können loslegen, wir sind bereit für den nächsten Handelstag wo
- 16:23es denn läuft, sozusagen mit der neuen Version schon und die
- 16:26haben sich ja glaube ich auch 2 Wochen Zeit genommen, also an
- 16:30der Stelle ist ja eigentlich gar kein Fehler passiert, das wurde
- 16:32ja quasi bewusst in Ruhe gemacht, weil man um diese
- 16:37Auswirkung wusste. Dass sonst so ein Update ja
- 16:40keine Kleinigkeit. Ist aber das finde ich
- 16:43interessant, weil du meintest, ein Mensch kann ja Fehler machen
- 16:46und das witzige ist ja, dass irgendwo wurde ja dann an dieser
- 16:49Stelle von irgendeinem Menschen ein Fehler gemacht und zwar und
- 16:53das ist eine Sache und ich kann das auch als Softwareentwickler
- 16:55auch irgendwie ein bisschen nachvollziehen, und zwar du
- 16:58denkst an einen bestimmten Fall und sagst okay ich möchte gerne,
- 17:02dass das alles ausgerollt wird und dein Server läuft, du machst
- 17:06das ganze, es funktioniert, du hast vielleicht noch.
- 17:09Tests im optimalen. Einen Fall hast du
- 17:10automatisierte Tests, die dir sagen okay das und das und das
- 17:13passiert so. Ich hab jetzt glaub ich so n
- 17:15bisschen heraus aus meiner Recherche herausgefunden, dass
- 17:19dieses Skript nicht wirklich gut abgetestet war.
- 17:22Aber vielleicht sind das auch nur Mutmaßungen am Ende ne, also
- 17:25aus dem Resultat heraus. Das Witzige ist aber, dass ich
- 17:30kann es halt irgendwo nachvollziehen, auf irgendeiner
- 17:33Ebene, weil du halt. Dann in dem Moment, den
- 17:36Happypass betrachtest und nicht daran denkst, du siehst den Wald
- 17:40vor lauter Bäumen nicht und und siehst nicht, dass ein Server
- 17:42auch aus sein könnte. Weil du gehst ja davon aus,
- 17:46dieser Server ist der Server läuft genau, der ist ja immer
- 17:48an, aber dass man auch wirklich mal vielleicht für
- 17:50Wartungsarbeiten halt einmal kurzen Server neu starten muss
- 17:53und dann genau in diesem Moment das Update sozusagen ausgeführt
- 17:57werden muss im Falle, dass es. Offline ist ist natürlich schon
- 18:01hart, aber und ich stell mir das ungefähr so vor und das ist ja
- 18:05auch immer wieder das gefährliche Mensch sitzt vorm
- 18:08Rechner, hat irgendwas gemacht oder hat nur n Programm was wo
- 18:11es heißt führ das Mal aus, muss ja nicht der gleiche gewesen
- 18:13sein oder die gleiche Person die das auch geschrieben hat, dieses
- 18:16Skript und eine Person führt das aus und vertraut diesem Rechner,
- 18:19er sagt es wird schon passen und dann hast du vielleicht im
- 18:22Terminal so eine Anzeige oder wo auch immer wo dann steht Server
- 18:251, beep, beep, beep Check Server 2 beep beep Check Server 3
- 18:30Server 4, Server 5. 5. Hinten in der Ecke.
- 18:34So, und dann kommt einfach nur Check.
- 18:36Du siehst Check, also ist es ja fertig, der Server meldet sich
- 18:39ja nicht und sagt Jo danke ich hab's Update bekommen naja genau
- 18:43und das Problem ist, dass das Skript quasi keine Ausgabe gibt,
- 18:46so nach dem Motto Hier Server 5 konnte nicht erreicht werden und
- 18:49das ist halt das Thema wenn du so schnell ein Skript schreibst
- 18:51weil du sage ich mal das automatisieren willst, dann kann
- 18:54halt sowas vergessen werden und das Skript an sich auch nicht
- 18:57abgetestet ist also es wird halt nur an den Happy Pass gedacht
- 19:00wie du so schön gesagt hast, weil wenn du anfängst zum
- 19:02Beispiel so ein Script abzutesten.
- 19:05Machst du dir halt auch über andere Pfade, die eintreten
- 19:08können. Gedanken meistens, hoffentlich.
- 19:12Aber es ist auch verständlich, in der Situation zu sagen, Hey,
- 19:16nee, ich, wir machen jetzt n Skript ey, wenn ich das hier
- 19:18alles per Hand mache, dann vergess ich irgendein Schritt,
- 19:20dann mach ich irgendwas nicht ich code das jetzt und n Skript
- 19:23runter was erledigt werden muss, dann lass ich das laufen und gut
- 19:26ich mein jeder Entwickler kennt diese Vorgehensweise also da
- 19:29kann man dem Entwickler ja nicht mal irgendwie einen Vorwurf
- 19:32machen, das Problem war eher, dass er alleine war und es
- 19:35keinen zweiten gab der das noch mal gereviewt hat oder geguckt
- 19:38hat ob die Serverstände jetzt passen, ob das Skript passt wo
- 19:42auch immer da diese Überprüfung stattfindet sage ich mal.
- 19:46Das, da kann man sagen, das ist nicht cool gelaufen.
- 19:49Das können wir uns am Ende auf jeden Fall noch mal angucken.
- 19:51Was sind eigentlich die Learnings, die man daraus.
- 19:53Sieht das fassen wir am Ende noch mal zusammen.
- 19:55Aber was mich, was ich sehr interessant finde, Tino mal
- 19:58angenommen du hast einen Server, also wenn ich das jetzt einmal
- 20:00noch mal zusammenfasse, wir haben einen alten Stand der
- 20:03Software auf diesen Servern laufen, es wird quasi neu
- 20:05erstand wird ausgerollt und auf einem Server.
- 20:09Passiert das nicht so jetzt, könnte man ja davon ausgehen.
- 20:12Ja gut, OK du hast x Server, da läuft der stand drauf oder x
- 20:16minus ein Server wo der Stand der neue Stand drauf läuft und
- 20:19ein Server wo er nicht der neue drauf stand drauf läuft ne die
- 20:21neue Version so man könnte jetzt davon ausgehen naja ok weiß ich
- 20:26nicht also nimm mal irgendeine Anwendung wie zum Beispiel Skype
- 20:29oder Teams oder was auch immer. Wenn du da ein Update nicht hast
- 20:33oder auf einer älteren Version bist, kannst du immer noch
- 20:35telefonieren. Also man könnte ja jetzt davon
- 20:37ausgehen und sagen okay alles klar ist.
- 20:39Ein älterer Stand aber hockeys und das ist halt genau der der
- 20:45faszinierende Punkt dabei, wie du schon meinst, jetzt hast du
- 20:49verschiedene Server mit unterschiedlichen Ständen
- 20:51beziehungsweise es gibt 2 Stände, die meisten haben den
- 20:53neuen und zum Beispiel Nummer 5 finden dann rechts in der Ecke,
- 20:58hat noch den alten Stand. Aber der alte Stand lief ja
- 21:02vorher problemlos Jahre lang. Warum sollte er jetzt auf einmal
- 21:07quasi solche massive. Verluste einfahren, weil man
- 21:11muss ja hier mal anmerken, das ist jetzt kein Stand, der gemixt
- 21:16wurde aus neuer Software und Alter, sondern jeder Server hat
- 21:20an sich ne eigenständige Version.
- 21:22Man geht davon aus die Neue ist Abgetestet und funktioniert.
- 21:25Und die alte lief sowieso jahrelang schon und sollte auch
- 21:28Abgetestet sein. Und die sind ja nicht gemischt.
- 21:31Ne. Wie du, wie du ja schon
- 21:32meintest, warum zur Hölle ist dann so ein Desaster quasi
- 21:35aufgetreten und das ist jetzt wirklich n extrem cooler Punkt.
- 21:39Also nicht cool fürs Unternehmen, aber n supergeiles
- 21:42Learning, da können wir jetzt mal drauf eingehen und zwar.
- 21:47Warum ist das quasi passiert? Und das geht noch ein paar Jahre
- 21:52zurück. 2005 genau 2005 war das, und zwar wurde 2005 ein sehr
- 22:03umfangreiches Refactoring, erst mal eine super Sache.
- 22:07Über Refactoring haben wir auch schon eine Folge gemacht, ist ja
- 22:09auch wirklich wichtig das zu tun und in dem Jahr gab es ein sehr
- 22:13umfangreiches Refactoring dieser smars Komponente.
- 22:19Es wurden zum einen die Effizienz wurde gesteigert, es
- 22:22wurden neue Handelsstrategien implementiert, das Routing wurde
- 22:26verbessert etc. Und was dabei aber passiert,
- 22:31ist, dass die Power Pack, so heißt die Komponente
- 22:35beziehungsweise das Modul innerhalb dieses Systems quasi
- 22:38deaktiviert wurde. Was hat denn das Powerpack
- 22:41gemacht? Erklär das.
- 22:43So wie ich das verstanden hab war das ne Komponente die quasi
- 22:46wenn du jetzt sehr große Handelsvolumen hast wie ja nun
- 22:49mal die Night Capital hatte und jetzt sagt zum Beispiel hier ist
- 22:52n Auftrag über. Betrag X, der einfach riesig
- 22:55ist, hat die 1 Scheißteil, dann hat diese Komponente quasi das
- 23:01gesplittet. Also es hat quasi sozusagen aus
- 23:04dem System ne parent order, also NN Auftrag bekommen.
- 23:09So das mach bitte und hat das denn so in Child ordern
- 23:13unterteilt? Das heißt zum Beispiel
- 23:16gesplittet in 5, damit die nicht mehr so groß sind und dass sich
- 23:19sozusagen besser handeln lässt, um es mal so.
- 23:22Laienhaft. Auszudrücken also könnte ich mir
- 23:24das ungefähr so vorstellen. Ich hab ne riesen Packung, keine
- 23:27Ahnung, nimm zweis oder so und sag zu irgendjemand ey, willst
- 23:31du ne Packung m 2 haben, nimm 2 m 2 nimm 2 und der sagt und der
- 23:35sagt Nee Ey ganz ehrlich, so viel ess ich eh nicht so ne das
- 23:38funktioniert nicht, aber wenn du jetzt zum Beispiel diese Packung
- 23:40loswerden willst und zu jemandem gehst und sagst Ey nimm 2 ja
- 23:44klar möchtest du nimm 2 ja klar möchte ich zunimmt 2 ja klar,
- 23:46dann hast du in kürzester Zeit ist eigentlich die Packung alle
- 23:49und du hast das auch wegbekommen so genau du kriegst es halt
- 23:51besser verteilt. Nimm 2 ist cool als Beispiel
- 23:55oder halt ne riesen Tafel Schokolade.
- 23:57Du sagst ja auch nicht, willst ein Stück Schokolade und gibst
- 23:59sie ihm dann hier so ne 200 Gramm Milka, weißt du.
- 24:03Ja, das sind kleine Teile runter, damit halt auch mehrere
- 24:05Leute davon was haben können. Genau, und zwar diese Komponente
- 24:10war aber verbunden mit. Mit einer Funktion, die quasi
- 24:17für die Drosselung verantwortlich war, die quasi
- 24:20das überwacht hat und gezählt hat.
- 24:22Wie viele sind denn schon entstanden und wie viele davon
- 24:25sind auch schon gefüllt von diesen Orders, also von diesen
- 24:29Aufträgen. Quasi abgehandelt.
- 24:31Ja, also wenn du 10 Orders hast, quasi also eine große Order wird
- 24:34gesplittet in 10 und dann hast du keine Ahnung. 8.
- 24:37Hast du schon verkauft, also 2 kannst du noch so nach dem Motto
- 24:40genau. Es hat einfach das quasi
- 24:42evaluierte mitgezogen, mitgezählt und die war halt an
- 24:44diesem Powerpack angeschlossen. Sozusagen.
- 24:46Und das Powerpack hat daher die Information bekommen, wieviel
- 24:49kann ich noch gut, bloß weiter geht es weiter geht es jetzt ist
- 24:53gesättigt sozusagen ich darf nichts mehr machen um einfach
- 24:56genau zu verhindern, dass zu viele Aufträge an den Markt
- 25:00quasi gestellt werden sozusagen. Und während dieses Refactorings
- 25:05haben sie halt diese Funktion, diese Drosselung innerhalb
- 25:11dieses gesamten Workflows weiter nach vorne gepackt, weil sie
- 25:14sich dachten, Hey, warte mal, das ist alles ineffizient, wir
- 25:16haben eine extrem hohe Systemauslastung, wir müssen
- 25:19doch gar nicht erst anfangen, überhaupt diese Orders stellen
- 25:22zu wollen beispielsweise, wir müssen ja gar nicht erst diesen
- 25:25Prozess einleiten, um am Ende zu sagen, Hey, nee, Moment mal, ist
- 25:28schon genug. Genau.
- 25:29So also wurde dieser ganze Workflow umgestellt.
- 25:32Diese Drosselungsfunktion ist halt also weiter nach vorne
- 25:36gewandert, das System wurde effizienter und man hat noch
- 25:39gesagt, ja dieses powerpack Modul braucht wir auch gar nicht
- 25:42mehr, das ist. Risiko schwierig also für das
- 25:45Risikomanagement, weil da kann halt schon.
- 25:48Viel schief gehen, deswegen gab es ja auch diese Anbindung,
- 25:51dieser Drosselungsfunktion. Man könnte finanzielle Verluste
- 25:53erleiden, ja. Und auf jeden Fall wurde dieses
- 25:58Modul deaktiviert. Es wurde auch Geflaggt als
- 26:01Depricated, also als veraltet. Für diejenigen, die jetzt nicht
- 26:06wissen, was ich damit meine. Das ist eigentlich ein Standard
- 26:09vorgehen, dass du Halt sagst, innerhalb meiner Software gibt
- 26:12es veraltete Funktionen beispielsweise und ich kann sie
- 26:16nicht einfach direkt raus löschen, weil beispielsweise
- 26:19andere Module diese Funktion noch verwenden, dann kann man
- 26:22sie als depreted Flaggen sozusagen, also signalisieren
- 26:25Leute, diese Funktion ist veraltet, wird nicht mehr
- 26:28supported und wird irgendwann entfernt, also bitte, ihr könnt
- 26:32sie jetzt noch nutzen, aber in 23 Versionen später ist sie weg
- 26:36dann. Sich nämlich die anderen Teams,
- 26:38die jetzt beispielsweise andere Module entwickeln, darauf
- 26:41adaptieren, davon weggehen, vielleicht eine andere Lösung
- 26:45implementieren und dann irgendwann hast du quasi.
- 26:48So sage ich mal sanft diese Software, diese Funktion
- 26:54rausgeschnitten oder quasi abgekapselt.
- 26:57Genau, und das ist, da muss man sagen, richtiges Vorgehen haben
- 27:00sie gut gemacht, wie gesagt gefleckt die Teams informiert,
- 27:03die haben sich adaptiert und diese Funktion oder dieses Modul
- 27:06wurde nicht mehr verwendet. Letzten Schritt haben sie aber
- 27:10nicht gemacht und zwar dieses Modul zu entfernen oder genau.
- 27:13Also du musst dir das so vorstellen und das ist halt auch
- 27:16so ein bisschen, also das kann man tatsächlich glaube ich auch
- 27:19so ein bisschen an die Software Entwicklung, mal ein bisschen
- 27:24auf die Hand hauen, weil. Du hast also es wurde quasi
- 27:29dieses Power Pack Modul, was ja sozusagen gefleckt wurde, was
- 27:32nicht mehr eingesetzt werden durfte, was kommuniziert wurde
- 27:34über Deplicated, dass es nicht mehr verwendet werden soll,
- 27:37wurde er wie du meintest nicht rausgenommen, aber aus einem
- 27:40bestimmten Grund und zwar weil das so tief in diese Software,
- 27:43in dieses Maß verankert war. Verflechtet war, dass man es gar
- 27:47nicht mal soeben mal rausschmeißen konnte, das heißt,
- 27:49es wurde zu wenig modular gearbeitet, das heißt, ich würde
- 27:52jetzt mal einfach mal ein bisschen klugscheißen und sagen,
- 27:55ja, das war alles nicht modular aufgebaut, die Software
- 27:58Architektur war nicht gut und so weiter.
- 28:01Und demzufolge haben Sie sich dann dafür entschieden zu sagen,
- 28:04OK, wir lassen halt einfach das powerpack Modul drin.
- 28:07Wird ja nicht mehr verwendet. Unsere ganzen Tests, die wir
- 28:11haben, laufen grün, es ist alles in Ordnung, also passt das so
- 28:15was ich noch sagen würde, ganz kurz was ich noch interessant
- 28:18fand als als kleines Side Note so n bisschen technisch ist ja.
- 28:22Dass das war ja ne Konfigurationsdatei, weil dieses
- 28:26Fleck was du meintest mit Establicated oder verfügbar ne,
- 28:28das wurde ja sozusagen war ne Konfigurationsdatei und diese
- 28:31Konfigurationsdatei wurde dann einfach so draufgesetzt, dass du
- 28:35an dieser Stelle wo stand. Möchtest du das Powerpack
- 28:37nutzen? Ne 0 stand anstatt ne 1 mal blöd
- 28:40gesagt ne so und das war im Endeffekt eigentlich nur so ne
- 28:45Art bit array, wo du halt so Flex setzen konntest. 0 oder 1
- 28:49für das ist drin oder nicht so und das wurde auch zum Beispiel
- 28:53jetzt nicht über Jason oder so gemacht, weil da ja wirklich auf
- 28:57Performance gesetzt wurde und Jason an der Stelle, man mag es
- 29:00vielleicht nicht glauben, aber halt einfach zu in Performance
- 29:02war an dieser Stelle. Genau.
- 29:05Also das ist ja auch eine gängige Strategie zu sagen, wir
- 29:08haben, wir verwenden sozusagen Bitwörter, das heißt, du hast
- 29:11jetzt zum Beispiel. Eine 8 Bit zahl, dann hast du 8
- 29:16logischerweise 8 Bits da drin und jedes Bit kann zum Beispiel
- 29:19eine so eine Config repräsentieren.
- 29:21Das ist auch gerade im Embedded Bereich gang und gäbe und auch
- 29:24nicht verwerflich, das ist ja gut, dass sie es so gemacht
- 29:26haben, gerade weil ja. Auch Nanosekunden entscheidend
- 29:30sind bei so nem Technologien was man sich kaum vorstellen kann.
- 29:33Aber wie du schon meintest, dass Jason einfach zu imperformant
- 29:36ist. Und ja, genau, und dann haben
- 29:39Sie gesagt, gut, das Bit für Power Pack ist 0 und nicht 1.
- 29:43Das heißt es ist deaktiviert und wird nicht mehr in der Software
- 29:46verwendet. Was ich noch spannend fand war,
- 29:50du hattest ja gesagt die es wurde Refected und zum Beispiel
- 29:54wurde dann dieses sag ich mal, dieser Accounting Algorithmus
- 29:57wurde entkoppelt vom Power Pack und so weiter aber da ist ja
- 30:02auch noch was passiert oder? In diesem Zuge.
- 30:04Also wenn du deine Software veränderst und Tests dazu hast,
- 30:08dann passiert ja eventuell mit den Tests.
- 30:10Was genau das ist nämlich jetzt der kritische Punkt dabei und
- 30:13ein absolutes No go. Wie gesagt, diese diese.
- 30:20Drosselungsalgorithmus war nicht mehr verknüpft mit dem Power
- 30:24Pack, dadurch, dass er quasi weiter vorne in der Ablauf Kette
- 30:27gerutscht ist und. Das ist an sich OK, was aber
- 30:32nicht passiert ist beziehungsweise doch Gott sei
- 30:34Dank ist es passiert. Es sind Tests rot gelaufen, das
- 30:37heißt die Tests für das Powerpack haben gesagt, Hey mein
- 30:40mein Systemfall, also mein meine Funktionsweise stimmt nicht
- 30:44mehr. Und ja, was der Entwickler sich
- 30:47anscheinend dachte, so wie es jetzt übermittelt wurde oder
- 30:50aufgearbeitet wurde ist. Na ja, du bist eh difficult,
- 30:55also du fliegst eh raus. Was kümmern mich deine Tests und
- 30:58hat einfach die Tests gelöscht? Und das ist halt krass, weil man
- 31:02hätte, wenn die Test drin geblieben wären gesehen hä da
- 31:07stimmt was nicht in unserer Software.
- 31:09Also hab ich doch 2 Möglichkeiten.
- 31:11Eine Möglichkeit ist ich fixe die Tests und kümmere mich um
- 31:15das Thema. Weil immer noch ist das
- 31:18Bestandteil der Software und kann per CONFIG aktiviert
- 31:21werden, oder? Lösche halt diese Funktion raus
- 31:26und nicht nur die Tests. Also entweder ich ziehe es
- 31:29komplett raus und es kann einfach gar nicht mehr passieren
- 31:32oder ich fixe es aber nicht zu sagen, ja es bleibt drin, weil
- 31:36ich keinen Bock habe das jetzt rauszuschneiden, weil es super
- 31:38aufwändig ist in unserer Architektur.
- 31:40Ich lösche einfach die Tests damit alle Tests wieder grün
- 31:42sind und das ist halt ein riesen no go.
- 31:45Ich meine, wir witzeln manchmal genau mit diesem Sachverhalt, so
- 31:50nach dem Motto Test des Roten Lösch.
- 31:52Doch den Test ist natürlich etwas, was ein absolutes No go
- 31:56ist und definitiv nichts. In professioneller
- 32:00Softwareentwicklung zu tun hat. Das ist auf jeden Fall super
- 32:03spannend und das hat dann im Endeffekt ja quasi, also da da,
- 32:07das war ja die Situation, ne, das heißt im Endeffekt.
- 32:12Ist ja also wir haben dieses Maßsystem, wir haben das ganze n
- 32:16bisschen refected, wir haben neue Funktionalitäten
- 32:18reingebracht, wie zum Beispiel das LP.
- 32:21Und so weiter. Und dann wurde das Ganze
- 32:23ausgerollt zum Tag X am 1.8.2012 wurde das in Betrieb genommen
- 32:28und dieses Skript im Vorfeld hat nicht hat es nicht geschafft
- 32:32diese Software, also die neueste Softwareversion überall
- 32:36auszurollen. So was ist denn da passiert an
- 32:40dem einen Server der hinten rechts in der Ecke stand und
- 32:45nicht genau genau. Das ist die Frage, weil 2005 und
- 32:502012 sind natürlich das 7 Jahre dazwischen.
- 32:56Sind das 7 oder? Warum ist es war es so lange
- 33:00nicht relevant? Genau ja.
- 33:03Also die Software liefert das lief ja wie am Schnürchen, die
- 33:05haben Umsätze gemacht im Jahr, das war ja der Wahnsinn, ne und
- 33:082012 wenn dieses RLP Update kommt geht auf einmal crashed
- 33:12alles zusammen. Und das ist ein ganz witziger
- 33:15Punkt. Und da kommt wieder diese
- 33:18Config, das config word wieder ins Spiel.
- 33:21Und zwar mussten sie natürlich jetzt auch dafür sorgen, dass
- 33:25dieses RLP aktiviert werden kann oder deaktiviert werden kann und
- 33:30braucht natürlich jetzt wieder ein Bild.
- 33:32Hatten wir ja gerade erklärt, um es quasi an und ausschalten zu
- 33:35können, richtig und dabei ist aufgefallen, dass kein freies
- 33:39Bild mehr da war, das heißt die Wortlänge war komplett
- 33:42erschöpft, es gab nichts mehr, wo sie noch was setzen konnten
- 33:46und der Entwickler von diesem Update dachte sich.
- 33:50Naja hier das Powerpack ist doch seit Jahren deprekted, das nutzt
- 33:54eh keiner mehr nachweislich, weil alle Teams haben sich
- 33:57adaptiert auf was anderes. Dann ist doch wieder ein Bit
- 34:01frei, also nehme ich das und hat gesagt so von fortan also ich
- 34:06kann das ja ich kann es auch nachvollziehen, ist es das
- 34:09Aktivierungsbild für RLP und nicht mehr für Power Pack
- 34:14richtig? Ja, und dann wurde es
- 34:16ausgerollt. Im Prinzip ja gut, das
- 34:20Deployment hat nicht ganz funktioniert, dass es da zu dem
- 34:24Zeitpunkt noch nicht aufgefallen, was nun aber
- 34:27passiert ist an Tag x als. Die Software startete und
- 34:31ELPERLP nicht RLP Entschuldigung.
- 34:36War selbst verwirrt, gerade quasi aktiviert wurde über diese
- 34:39Config ist natürlich passiert, dass auf dem alten System.
- 34:45Auch das Powerpack wieder aktiviert wurde, weil er auf
- 34:49Server Nummer 5 hinten rechts in der Ecke, weil da ja die alte
- 34:53Software drauf war. So und jetzt kann man sich
- 34:55wiederum denken, ja meine Güte, dann läuft halt Power Pack lief
- 35:00früher auch immer, dann läuft jetzt halt ein bisschen rlp ein
- 35:05bisschen Power Pack, wir werden das schon schnell merken, dass
- 35:08irgendwas vielleicht nicht ganz so cool ist, also dass der Worst
- 35:11case wurde gar nicht so glaube ich wahrgenommen, was das
- 35:14bedeuten könnte. Was jetzt aber am Ende passiert
- 35:19ist. Dadurch, dass beide Systeme
- 35:23liefen, ist das Power Pack Modul angesprungen und hat ja jetzt
- 35:27wieder quasi diese Order quasi entgegengenommen und wollte die
- 35:31splitten was wir erklärt hatten. Genau so so, so cool.
- 35:37Wie immer hat es damals schon gemacht, aber was war jetzt das
- 35:40Problem? Genau.
- 35:41Also was ich erstmal interessant finde ist, du hast wie du schon
- 35:44meinst auf den beiden Systemen unterschiedliche Sachen laufen
- 35:47an sich erstmal nicht so schlimm.
- 35:48Aber wenn du zum Beispiel bit 1 hast, was vorher gesagt hat,
- 35:51Aktivier mal Power Pack und jetzt aber dafür zuständig war,
- 35:54dass es RLP aktiviert du die gleiche Config, aber nimmst ne,
- 35:58dann ist ja. Also wird halt einfach Power
- 36:01Pack aktiviert. So genau so und das find ich
- 36:05halt fand ich ich weiß ich hab das gelesen, dacht mir so das
- 36:07ist das ist Wahnsinn weil. Also das das müssen Zufälle
- 36:11sein, die einfach diesen, diesen, diesen einfach, das ist
- 36:13bescheuert. Aber natürlich ist es natürlich
- 36:15ne krasse Aneinanderreihung von Ereignissen.
- 36:18Definitiv. Und dann kommst du an den Punkt,
- 36:20wo du sagst, Na ja, gut, OK, pass auf, du hast den alten
- 36:23stand, es wird einfach versehentlich Power Pack wieder
- 36:26aktiviert, Power Pack hat ja aber eigentlich funktioniert,
- 36:28aber wir haben uns erinnert, dass diese Version die da lief
- 36:32ist diese Version die sozusagen Performance optimiert wurde und
- 36:35diese Performance Optimierung hat ja dafür gesorgt, dass wir
- 36:38eigentlich Power Pack entkoppelt haben mit diesem Counting
- 36:41Algorithmus. Das heißt wenn du jetzt zum
- 36:44Beispiel irgendwie weiß ich nicht für deine Freunde Essen
- 36:47kochst und einer kommt zu spät und du hast 5 Portionen gekocht
- 36:50und einer sagt ja, ich möchte eine Portion alle sagen, Sie
- 36:53möchten eine Portion, Du verteilt die Portion eines noch
- 36:55da, bei einer kommt ja noch eine Person, kommt ja noch.
- 36:59Jemand sagt, ich könnte noch eine Portion haben und der
- 37:01Algorithmus sagt, 4 von 5 haben wir noch klar so und dann keine
- 37:06Ahnung. 5 von 5 ja egal, haben wir noch so nach dem Motto, das
- 37:10heißt, der Algorithmus sagt ja gut, wir sind zwar schon drüber,
- 37:12aber der Algorithmus würde immer noch sagen, wir haben doch
- 37:14genügend, also es könnte noch 2. Leute kommen und wir hätten noch
- 37:17genügend, aber das war halt nicht so ne.
- 37:20Das heißt es wurden halt einfach an der Stelle einfach quasi es
- 37:23vor den Order gestellt und diese Order wurde halt einfach immer
- 37:26wieder verkauft, immer wieder, immer wieder oder gestellt,
- 37:29sagen wir mal so, ob es jetzt verkauft, verkaufen, verkaufen
- 37:31egal. Aber diese Order die dahinter
- 37:34steht, die wurde halt mehrfach quasi dupliziert und es wurde
- 37:38nicht aufgehört weil kein Counting Algorithmus mehr
- 37:40gegriffen hat um zu sagen Halt Stopp, du hast schon genug Order
- 37:44gestellt dafür und das finde ich heftig.
- 37:47Und weißt du, was da richtig spannend bei ist?
- 37:49Weil ich habe mir die Frage gestellt, wie geht das
- 37:51überhaupt, wenn die finanziellen Möglichkeiten gar nicht da sind,
- 37:55so viel zu handeln und habe dabei gelesen, das finde ich
- 38:00super spannend, das quasi. Unternehmen wie die Nightcapital
- 38:06quasi gar keinen Nachweis durch. Dadurch, dass das so schnell
- 38:10gehandelt wird, wird gar nicht geprüft, ob das Kapital
- 38:13überhaupt vorhanden ist, um das Handeln zu können, die können
- 38:16das einfach. Quasi an der Börse stellen ohne
- 38:19Überprüfung. Weil wenn du jetzt als
- 38:21Privatperson handelst, dann wird ja gecheckt, quasi ob du
- 38:23überhaupt so viel finanzielle Mittel hast, gerade um so ne so
- 38:28n Auftrag anzulegen und da bei diesen Geschwindigkeiten
- 38:31passiert das aber nicht, sondern es gibt sozusagen ne Art
- 38:33Vertrauensbasis, dass das schon passt.
- 38:36Also die die Verantwortung, ob das Geld überhaupt da ist, liegt
- 38:39dann komplett bei der Nightcapital und das hat denen
- 38:42ja auch dann das Genick gebrochen, weil das Geld war ja
- 38:45nicht da, was sie jetzt an Aufträgen rausgehauen haben.
- 38:49Das finde ich halt super spannend und auf jeden Fall.
- 38:54Hat ja jetzt dieses Power Pack Modul quasi Gas gegeben und
- 38:58diese Order gestellt. Die wurden gehandelt und durch
- 39:00diesen riesen Marktanteil den sie hatten haben sie richtige
- 39:04krasse Kursschwankungen ausgelöst und diese wohnen dann
- 39:07quasi gehandelt und haben zu Verlusten geführt im Minutentakt
- 39:13von Millionen. Das ist völlig wahnsinnig und
- 39:17auch nur durch die Kunstschwankung die so extrem
- 39:20waren sind die Unternehmen darauf aufmerksam geworden, dass
- 39:24sie irgendwas nicht stimmt, das quasi.
- 39:26CEO von Firma A den CEO angerufen hat von Nightcapital,
- 39:31was denn da bitte los ist und dann irgendwie erst geprüft
- 39:36wurde. Hä warte mal hier stimmt.
- 39:37Doch was nicht, weil es gab halt keinen Monitoring oder sowas
- 39:42gesagt hat. Okay hier also das System hat
- 39:44nicht gemeldet hier gar ne läuft nicht Leute Leute läuft nicht,
- 39:48was ich aber auch interessant finde ist der Punkt, dass du
- 39:51hast ja noch andere Server beziehungsweise andere
- 39:53Algorithmen laufen, das heißt der eine, also diese Algorithmen
- 39:57sind ja. Sensibel darauf umzumerken,
- 40:01kommt es gerade zu einem Markt, also einem Anstieg oder zu einem
- 40:05Abfall? Welche Order muss ich in diesem
- 40:06Moment stellen, also das sind ja adaptive Algorithmen, die
- 40:09versuchen, möglichst frühzeitig zu erkennen und einen Trend
- 40:12mitzunehmen, und jetzt hast du. Richtig in die Suppe spuckt,
- 40:17worauf andere unter Umständen vielleicht sogar noch falsche
- 40:20Trades ausführen, die eigentlich echt Mist sind an der Stelle.
- 40:24Und genau das ist ja passiert, weil der Markt manipuliert
- 40:26wurde, und das ist so, das ist so krass, also du kannst es dir
- 40:29so vorstellen, also wenn du jetzt zum Beispiel auf dem Markt
- 40:32gehst, dann denkst du dir ja okay was?
- 40:34Kaufe ich hier, kaufe ich ah, guck mal Erdbeeren für n Kilo
- 40:38für 5€ oder n erdbeer für Kilo für 100€ denkst du dir so, ich
- 40:42glaub 100€ für n erdbeerpreis ist glaub ich nicht fair, also
- 40:45nehm ich den eher die Erdbeeren für 5,00€ so aber wenn du jetzt
- 40:49quasi also das ist die die Seite des Käufers sag ich mal aber die
- 40:52Seite des Verkäufers ist ja so als würdest du auf als würdest
- 40:55du keine Ahnung. 5 Stände auf dem Markt haben und du gibst
- 40:58jedem deiner Mitarbeiter, also der den Händlern, den Verkäufern
- 41:02gibst du ein Handbuch und der sagt sich, guck mal hier, das
- 41:04ist das Handbuch so arbeite mal nach diesem Handbuch und einer
- 41:08kriegt ein Handbuch was überhaupt nicht stimmt.
- 41:11Und er fängt dann auf einmal an, irgendwelche Waren für keine,
- 41:15also Mengen an waren die er hat zu verkaufen für irgendwelche
- 41:19komischen Preise. Kauft auch von anderen andere
- 41:23Händler kaufen von ihm vielleicht und er macht einfach
- 41:26nur irgendein Murks und alle anderen sind sozusagen völlig
- 41:31verwirrt und du denkst dir so hä warte mal.
- 41:32Eben habe ich noch ein Kilo für 5€ bekommen, das kriege ich
- 41:35jetzt gar nicht mehr, jetzt muss ich das für 20 kaufen.
- 41:36Ach guck mal hier für 10 200. Also das ist halt so.
- 41:42Kann man sich das die genau, dass die Systeme sich dann
- 41:46gegenseitig noch mehr beeinflusst haben, dass es quasi
- 41:49die Schwankungen wurden ausgelöst?
- 41:51Die neuen Systeme haben gesagt, Oh hier ist n Trend, jetzt
- 41:54müssen wir, jetzt müssen wir Aufträge raushauen, weil das
- 41:56müssen wir mitnehmen und die kaputt.
- 41:59Der kaputte Server hat gesagt du willst einen Auftrag, du kriegst
- 42:0250, du kriegst 100 und dadurch ist es ja noch viel mehr
- 42:06aufgeschwungen alles völlig irre und noch ein richtig cooles
- 42:09Sidenote. Schlecht fürs Unternehmen, aber
- 42:13auch Sonnenparadebeispiel was? Machst du in dem Moment die
- 42:17Firma hat sich gedacht, es muss das Update sein, alles lief
- 42:20letzte Mal noch und haben quasi innerhalb von diesen 45 Minuten
- 42:26gesagt. Okay wir revidieren das Update
- 42:30und spielen quasi die alten Version wieder aus, bis zu dem
- 42:34Zeitpunkt übrigens bis zu diesem Zeitpunkt wurden ungefähr 150
- 42:38Aktien in diesem. Falschen in diesem in diesem
- 42:42katastrophalen Zustand gehandelt, sag ich jetzt mal ne
- 42:44oder in diesem ne so, also 150 verschiedene 150 verschiedene
- 42:49Aktien. Genau.
- 42:50Also das war wirklich ne Riesennummer und der Wiltze ist,
- 42:53dass sie jetzt quasi. Die Version zurückgesetzt haben
- 42:59und. Die Config aber war wie sie war.
- 43:02Das heißt, RLP war aktiviert und niemand hat da in dem Moment
- 43:09dran gedacht, dass es ja die powerpack Komponente quasi
- 43:11wieder aktiviert und die fehlerhaft ist, weil die Tests
- 43:14waren ja alle Grün, das heißt vorher war nur Nummer 5 der
- 43:18Übeltäter und nach diesem Zurücksetzen ist das ganze Halt
- 43:22noch mal potenziert, das heißt die anderen Server haben dann
- 43:24auch gesagt, so immer raus damit, so dass es quasi abnormal
- 43:29Anstieg die Verluste und. Am Ende dann quasi den Stecker
- 43:33gezogen hat, weil zu dem Zeitpunkt, wo dann alle auf
- 43:37einmal, also alle Server quasi falsch reagiert haben, wurden
- 43:40nicht nur 150 Aktien, sondern halt fast weltweit alle Aktien
- 43:45von diesem Unternehmen falsch quasi behandelt.
- 43:48Und das ist was für ein Ausmaß das hat.
- 43:52Und weil du gerade gesagt hast, da wurde dann der Stecker
- 43:55gezogen. Irgendwann wurde halt glaub ich
- 43:57was hast ich glaub das hattest du vorhin auch gesagt, der CEO
- 44:00oder so meinte dann zu dem technischen Bereich ne meinte
- 44:04dann so ja könnt ihr mal bitte den Killswitch betätigen und die
- 44:08haben sich gedacht haben wir nicht wir haben keinen
- 44:10Killswitch die Möglichkeit jetzt drauf ein also eingreifen zu
- 44:14können so auf die Schnelle genau also mit einem Knopfdruck zu
- 44:17sagen okay das war's jetzt sondern halt wirklich dann
- 44:19nochmal manuell oder nach und nach alle Server einzeln
- 44:23runterzuschalten das ist schon heftig.
- 44:26Ja, und da sind halt sehr, sehr viele.
- 44:29Also wie soll ich sagen, also es sind halt so viele Ereignisse
- 44:33aufeinander gefolgt, die dazu geführt haben, dass man sich
- 44:35denken kann, OK, ist ja echt schon krass unwahrscheinlich,
- 44:38dass das alles so passiert ist. Aber wenn die sag ich mal, die
- 44:43Wahrscheinlichkeit da ist, dass es passieren kann, sagt man ja
- 44:46so schön, dann passiert es auch und es ist auch in diesem
- 44:48Unternehmen passiert und hat am Ende dafür gesorgt, dass dieses
- 44:52Unternehmen pleitegegangen ist. Also die Neid Capital gibt es
- 44:56auch nicht mehr in der Form, das heißt, es gab noch so
- 44:59verschiedene Investmentrunden, also Finanzierungsrunden,
- 45:03deswegen ist es auch eine Night Capital Group geworden, weil
- 45:05Investoren versucht haben, das Unternehmen zu retten.
- 45:08Ich glaube, es sind dann wirklich 400000000
- 45:10Reingeflossen, das hat aber auch nicht gereicht so.
- 45:13Dass es am Ende zu einer Übernahme kam, von einem anderen
- 45:16Unternehmen und ja, irgendwie quasi diese Grundstruktur
- 45:21nightcapital in einem anderen Unternehmen noch weiter lebt,
- 45:24aber das Unternehmen an sich mit dieser, mit diesem
- 45:27Alleinstellungsmerkmal so dominant gewesen zu sein in
- 45:30diesem Markt, hat halt, sage ich mal in diesem Jahr aufgehört zu
- 45:35existieren, und das finde ich halt extrem krass, wie ein
- 45:38Update dafür gesorgt hat. Vor allem jemand.
- 45:41Also ein Unternehmen was 20 Jahre Marktführer war mit
- 45:45Softwarelösung, ja mit mit mit Softwarelösung und ein Software
- 45:49Bug hat sie aus dem Leben geschossen, das ist schon krass
- 45:53und ich meine man kann sich jetzt hinstellen und sagen okay
- 45:57aber es sind halt Zufälle passiert so das sind doch also
- 46:01solche Zufälle sind halt Zufälle so blöd gelaufen so hoffentlich
- 46:05passiert es nie wieder, aber ich hoffe, dass man schon einige
- 46:08Learnings daraus ziehen kann. Ja, und die würde ich auch gerne
- 46:12mal mit dir zusammenfassen, bevor wir die Folge beenden.
- 46:14Wir haben jetzt auch sehr lange darüber gequatscht, aber ich
- 46:15muss sagen, es ist spannend, ich finde es auch super
- 46:17beeindruckend, also un schockierend zugleich,
- 46:21schockierend zugleich ist ein extrem cooles Beispiel und auch
- 46:24kein Wunder, wenn wir zu den Learnings kommen, dass in dieser
- 46:27ganzen Dev ops Bewegung, wir haben ja auch eine Dev Ops
- 46:30Reihe, liebe Zuhörer und lieber Zuhörer, falls sich die Themen,
- 46:33die wir hier auch thematisieren oder in dieser Folge
- 46:35angesprochen haben, weiter interessieren, dann hört er
- 46:37gerne mal rein, auf jeden Fall die Dev Ops Bewegung und auch
- 46:41dev Ops Teams nehmen. Quasi diesen Glitch.
- 46:45Von der also diesem Software Bug immer als Beispiel dafür, warum
- 46:49Dev Ops so verdammt wichtig am Ende ist.
- 46:51Weil. Fangen wir mal mit dem Punkt an
- 46:56das Deployment. Wir gehen jetzt mal noch nicht
- 46:59auf die Softwareentwicklung ein. Ich möchte mal erst mal kurz
- 47:01noch mal über das Deployment reden, wenn wir nämlich bei dev
- 47:03ops sind. Du Rollst das jetzt aus, fängst
- 47:07manuell an, haben wir ja gesagt, da können Fehler passieren,
- 47:11Menschen machen Fehler, da hat sich der Mitarbeiter oder das
- 47:15Team damals gedacht, ja, das können wir so nicht machen, wir
- 47:17müssen das automatisieren. Punkt für Dev Ops ne, haben Sie
- 47:21sich auch gedacht? Ja, wir automatisieren das,
- 47:23haben dann ein Skript geschrieben, was nicht, was
- 47:27quasi das bitte. Was nicht so richtig getestet
- 47:29wurde. Was nicht getestet wurde.
- 47:32Kein Punkt Richtung Deathrops, da haben Sie es denn halt schon
- 47:35vergeigt. Ne, weil am Ende ist man davon
- 47:38ausgegangen, dass das System den Zustand hat, wie man ihn
- 47:41erwarten würde, aber man konnte es nicht nachweislich sehen, es
- 47:44gab kein Feedback dazu und das ist ja auch genauso dieser dev
- 47:47ops Ansatz, dass du auch ein Feedback kriegst.
- 47:49Hat das alles funktioniert, wurde das automatisiert nochmal
- 47:53geprüft was wir haben wollen, wird quasi nur deployed wenn
- 47:57alles okay ist. Ja.
- 48:00So, du brauchst einen. Monitoring, um zu sehen, was.
- 48:06Fehlt hier eigentlich oder was geht schief, wenn was schief
- 48:07geht und eine Art. Observability um zu sagen okay,
- 48:10wenn was fehlgeschlagen ist, dann musst du auch relativ
- 48:13schnell erkennen können, wo ist es denn fehlgeschlagen bei und
- 48:16da sehe ich nämlich auch ein riesen riesen Kritikpunkt an der
- 48:20ganzen Sache, es hat 45 Minuten gedauert um irgendeine Reaktion
- 48:24durchzuführen und das war halt einfach zu lange und hat das
- 48:27Unternehmen quasi in den Ruin getrieben, also wirklich in die
- 48:29Insolvenz. Bei fehlendem, weil es ja bei
- 48:32fehlendem Monitoring, wenn du wenn du dir anguckst, dass es
- 48:35wurde erst überprüft ob. Lass uns mal experimentelle
- 48:39Systeme abschalten, dann wurde gesagt, OK, dann lass uns.
- 48:41Dann haben die in den Debug Logs nachgeguckt, relativ lange
- 48:44irgendwann nach 20 Minuten 30 Minuten haben die dann
- 48:47mitgekriegt, OK, das ist wirklich dieses Marssystem und
- 48:49dann haben die es zurückgerollt. Und dann haben Sie nicht mal
- 48:54festgestellt, dass die Konfiguration ja aber noch
- 48:56falsch war im Verhältnis zur alten Version, solche Sachen ja
- 48:59genau, und das ist einfach für so eine Software, die so
- 49:03sensibel ist, weil es wirklich um sehr, sehr viel Geld geht,
- 49:06innerhalb von Bruchteilen einer Sekunde ist das einfach viel,
- 49:09viel zu lange, also wirklich ganz, ganz schlechtes Monitoring
- 49:13zu der Zeit gewesen. Ich denke, dass es auch in dem
- 49:15Folgeunternehmen oder in dem Zusammenschluss, der jetzt
- 49:17existiert, wahrscheinlich viel, viel besser läuft, weil man
- 49:20daraus gelernt hat, aber zu der damaligen Zeit war das natürlich
- 49:23eine absolute Katastrophe, ich habe auch noch sowas gelesen wie
- 49:26es. Gab noch so ein paar
- 49:27automatisierte Mails, die aber irgendwie im Verteiler
- 49:30untergegangen sind oder im Spam gelandet sind, weil sie nicht
- 49:33hoch priorisiert waren. Wo sowas drin stand wie?
- 49:38Power Pack activated. Das wirklich?
- 49:41Da kam noch so ne alte Mail von früher, die irgendwie mal so als
- 49:44Monitoring implementiert wurde. So Pass auf hier das alte Modul
- 49:48das an, aber es wurde einfach ignoriert und das find ich halt
- 49:52so krass an der ganzen Sache. Also das sind mal so die Dev ops
- 49:56Punkte die man da quasi von der Infrastruktur auf besonders her
- 50:00mal ansprechen müsste. Magst du mal mit den Punkten für
- 50:03die Softwareentwicklung an sich weitermachen, wo da so unsere
- 50:07Kritikpunkte wären oder Learnings?
- 50:09Also es gab ja wohl auch Tests. Wie gesagt, ich frage mich aber
- 50:13zum Beispiel, ob sie auch Test driven entwickelt wurden, weil
- 50:17wenn du zum Beispiel dir im Vorfeld zum Beispiel, nehmen wir
- 50:21mal dieses dieses Skript was auf Server verteilt wurde und du
- 50:24schreibst deine Anforderungen in diesen Tests nieder und sagst
- 50:28okay was passiert denn, wenn jetzt zum Beispiel der Server
- 50:31ordentlich deployed, dann sollte man sich beim Test Driven
- 50:34Development halt eben auch auf Seiten der Tests Fragen als
- 50:37nächstes, was passiert denn, was sind alles Eventualitäten, was
- 50:41passiert denn, wenn der Server nicht.
- 50:44Also das nicht auf den Server installiert werden kann das
- 50:46Update und dann muss man sich ja im nächsten Zug überlegen.
- 50:49Wenn du diesen Test hast. Was ist denn die
- 50:52Erwartungshaltung, was passiert? Steht dann irgendwo alles klar
- 50:56Server 5 hinten rechts in der Ecke wurde erfolgreich geupdatet
- 51:00oder steht da sowas wie hier? Gab es gerade ein Problem?
- 51:04Lassen zum Beispiel Sachen, wo ich mir denke das.
- 51:06Kann ja die Software an sich ja nichts für, wenn quasi der
- 51:08Server aus ist, ist er aus, dann passiert er nichts und dann ist
- 51:11ja auch kein Fehler entstanden, sondern eher in diesem ganzen
- 51:14Deployment Schritt wie du meintest.
- 51:15Da muss irgendwie eine Meldung hochkommen.
- 51:17Konnte nicht alle Server erreicht werden, beispielsweise
- 51:20wenigstens sowas was ganz minimalistisches, dass du
- 51:23einfach nicht das Gefühl von Sicherheit bekommst, obwohl
- 51:25eigentlich was schief gegangen ist?
- 51:27Genau das heißt, du musst dich auf diese Tests verlassen, dann
- 51:29was du meintest Tests löschen, wenn sie rot sind und du aber
- 51:32eigentlich. Dir denkst OK, die Software ist
- 51:34irgendwie depricated. Genau nachgucken, was lösch ich
- 51:38hier eigentlich, was passiert hier eigentlich, welche Tests
- 51:41fliegen aus meiner Software raus und wenn dann na ja, lösch halt
- 51:46eben auch die entsprechende Software zu diesen Tests
- 51:48tatsächlich raus, ansonsten funktioniert das nicht, dann
- 51:50kommen wir zum nächsten Punkt, hatten wir schon mal ein
- 51:52bisschen angesprochen, sowas wie.
- 51:56Eine Clean Architecture vielleicht an dieser Stelle,
- 51:58dass du bestimmte Module, die du einbaust, halt eben auch
- 52:00modular, wie es halt eben so schön heißt.
- 52:02Das heißt Ja Power Pack Modul, das sollte man dann auch modular
- 52:07in die Software irgendwie einklinken, wenn du es über
- 52:09einen Fleck ausschalten kannst. Nur mal so als Beispiel und was
- 52:12du angeschnitten hattest. Vorhin war noch mal so wie was
- 52:14wie Code Reviews oder Peer Reviews, dass du zum Beispiel
- 52:17per Programming arbeitest oder wenigstens bei einem Change.
- 52:21Gerade in solchen Bereichen halt auch wirklich einfach mal ein
- 52:25Code Review machst, am Ende mit wem, wenn du schon alleine daran
- 52:28arbeitest, dann so einer Software.
- 52:30Das sind jetzt so die Punkte, die mir da auf jeden Fall helfen
- 52:33helfen. Einfallen, die da quasi n
- 52:36bisschen fehlgeschlagen sind. Und wenn du dann vielleicht noch
- 52:39n bisschen weitergehst, könntest du sagen OK Dokumentation
- 52:42vielleicht, was macht was, unter welchen Umständen wird irgendwas
- 52:46getriggert, ist aber gerade auf developerment Ebene bei mir auch
- 52:50irgendwie, zumindest für mich persönlich in den Tests
- 52:53verankert. Ist jetzt nicht, ich rede jetzt
- 52:55nicht von Dokumentation auf Anwendungsebene, sondern auf
- 52:58Entwicklerebene Development. So ein letzter Punkt, den du
- 53:04vorhin schon angerissen hast. Das finde ich auch noch gut,
- 53:08dass man nochmal zu erwähnen ist.
- 53:09Natürlich auch so eine Art Config Management zu sagen, hey,
- 53:11ich kann aber dieses Konfigurationswort, was wir
- 53:15jetzt gerade verwenden, nicht mit diesem Softwarestand, den
- 53:18ich zurückgesetzt habe, verwenden, also dass man da
- 53:21hätte auch absichern können, dass passend zu dieser Version
- 53:25auf dem Server niemals quasi eine Confinc verwendet werden
- 53:30kann, die das Power Pack Modul aktiviert, das wäre.
- 53:33Auch eine Maßnahme gewesen. Also selbst wenn der Code noch
- 53:36in der Software bleibt, weil man sagt, es ist zu aufwendig, da
- 53:39muss man wenigstens sicherstellen, dass dieses Modul
- 53:42nicht mehr aktiviert werden kann.
- 53:44Wenn ich schon sage, so Tests sind rot, das ist eigentlich
- 53:47Brick, das ist halt kaputt so das Modul immer blöd gesagt, da
- 53:51muss ich auch sagen, dass das nicht mehr aktiviert werden
- 53:53kann, auch wenn es durch irgendwelchen komischen Zufälle
- 53:55ist. Aber es darf halt einfach gar
- 53:57nicht mehr möglich sein, richtig?
- 53:59Genau. Und bevor wir jetzt die Folge
- 54:02einmal noch mal kurz abschließen, weil ich glaube,
- 54:04jetzt haben wir den Fall ziemlich aufgearbeitet, was ich
- 54:08interessant finde, ist und ich glaube, das kann man sich immer
- 54:11fragen, sollte sich jeder Fragen, gerade wenn es um
- 54:14kritische Softwareanwendungen geht, und das hat auch ist so
- 54:17eine Kleine, so ein kleines Learning, was auch als warnendes
- 54:20Beispiel, also genau dieser Fall als warnendes Beispiel für
- 54:23Handelsunternehmen heutzutage genutzt wird, dass sich und wie
- 54:27gesagt, das kann sich jeder immer bei kritischen
- 54:29Softwareanwendungen fragen, was ist das Schlimmste, was
- 54:32passieren könnte. Diese Frage beantworten und
- 54:36demnach seine Software auch gestalten.
- 54:38Richtig. Und dann kannst du anfangen,
- 54:39deine Software überhaupt zu schreiben.
- 54:43Guter Punkt, vielen Dank. Paris war hat mir sehr sehr viel
- 54:46Spaß gemacht, ja mir auch, ist auch ein absolut geiler Fall
- 54:50muss ich sagen, ich habe mich auch richtig auf die Folge
- 54:52gefreut. Also ich habe es mir
- 54:55durchgelesen, dachte Wow, was also was kann denn alles noch
- 55:00passieren? Also je mehr du dich da in
- 55:03dieses Thema rein gräbst, desto spannendes.
- 55:05Das eigentlich. Und deswegen hat es mir sehr
- 55:07viel Spaß, diese Folge hier mit dir aufzunehmen und das ganze
- 55:09Mal einmal darzulegen. Vielen Dank dafür, Tino Bitte
- 55:15und in diesem Sinne würde ich auch sagen, liebe Zuhörerin,
- 55:17lieber Zuhörer, ich hoffe. Oder wir hoffen, dass sie diese
- 55:20Folge natürlich auch wieder gefallen hat.
- 55:22Lass uns auf jeden Fall n like da, wenn es so ist auf den
- 55:25entsprechenden Plattformen, wo du sie gerade hörst.
- 55:27Und wenn du Anmerkungen zu dieser Folge hast, du vielleicht
- 55:31meinst Ey, das war doch anders, das hab ich anders recherchiert
- 55:35oder anders gelesen, dann lass uns gerne auf jeden Fall diese
- 55:37Informationen auf unserer Podcast Mail zukommen, auch zum
- 55:40Beispiel Feedback, genauso gerne darüber.
- 55:43Und wenn dir dieser Podcast insgesamt gefällt oder dir das
- 55:47Projekt Coding Buddies gefällt, das auch eine kleine Spende da,
- 55:50darüber freuen wir uns, wir können unseren Content weiterhin
- 55:52verbessern. In dem Sinne empfiehlt den
- 55:55Podcast gerne auch noch 2 deiner Freunde.
- 55:57Wäre der Hammer und in dem Sinne der Hammer.
- 56:01Das würde uns super freuen und in dem Sinne macht's gut bis zur
- 56:05nächsten Folge Eure Coding. Bunnys gemeinsam besser.
- 56:10Was?