Code-Qualität verbessern: So überzeugst du dein Team vom Refactoring! Christian Schroedel https://www.youtube.com/watch?v=w2lt_f2kSII Transkript (automatisch erstellt) 0:00 das ist Kunigunde kneberkek Kunigunde hat ein Problem in unsere codeb festgestellt zum Glück hat sie bereits einen möglichen Lösungsansatz dafür 0:10 erarbeitet ja wie bekomme ich meine Lösung am besten in unser Projekt um das Thema anzugehen brauchen wir jetzt vor allem eines die volle Unterstützung 0:22 unseres Teams und wie überzeuge ich die anderen von meiner Lösung um zu veranschaulichen wie wie wir unser Team an Bord holen spielen wir heute zusammen 0:33 ein fiktives Meeting mit einer Dauer von 45 Minuten mal zusammen durch für den outcome dieses Meetings setzen wir uns drei Ziele das Problem und seine 0:45 Auswirkungen sind verstanden unser Lösungsansatz ist verstanden worden und wir haben weitere Schritte vereinbart undich ich am besten in unserem 0:57 konkreten Beispiel handelt es sich um langwierige bildzeiten für pull requests oder checkins in unseren Sourcecode bevor wir mit dem ersten Punkt beginnen 1:09 müssen wir über etwas reden was wir alle leider in der Realität viel zu häufig machen und zwar zu Beginn des Meetings als allererstes die Lösung für das 1:21 Problem zu präsentieren aber ich habe die Lösung schon gefunden wenn wir das tun laufen wir war von Beginn an ein Großteil 1:32 unserer meetingteilnehmer zu verlieren oder anders gesagt abzuhängen deutlich besser ist es das Problem zuerst einmal rudimentär zu 1:43 beschreiben um ein gemeinsames Verständnis herstellen zu können wir verzichten dabei bewusst darauf ins Detail zu gehen und beschränken uns nur 1:54 auf das Wichtigste und absolut dringlichste was die anderen Teilnehmer verstehen m und was wäre das 2:03 z.B in unserem Fallbeispiel sprechen wir darüber dass sich die bildzeiten in unserem Projekt drastisch erhöht haben konkret geht es um einen bildstep dessen 2:17 Zeit auf einmal doppelt so lang geworden ist um automatisierte Tests auszuführen dabei erwähnen wir hier bewusst nicht welche Tests denn jetzt genau dafür 2:28 verantwortlich sind das ist fürs erste Verständnis noch überhaupt nicht notwendig zur Selbstkontrolle um nicht zu sehr ins Detail abzudriften geben wir 2:39 uns für diesen Abschnitt mal genau 5 Minuten Zeit wenn auch du eine konkrete Frage zu einem deiner Softwareprojekte hast schreib doch gerne in die 2:48 Kommentare und lass ein Abo da um kein Video zu verpassen gut dann stelle ich sicher dass die mich eigentlich alle verstehen um alle von Anfang an 3:01 abzuholen achten wir bewusst darauf dass wir simple und nicht zu technische Sprache verwenden werfen wir von Beginn an nur mit Fachausdrücken um uns laufen 3:13 wir Gefahr dass wir sehr schnell Teammitglieder verlieren die noch nicht so tief in der Materie drin stecken wie wir selbst unser Ziel ist es stehs dass 3:24 alle im Meeting ein Verständnis von dem Problem haben und emsam darüber diskutieren können nachdem wir erfolgreich alle Teilnehmer auf einen 3:35 gemeinsamen Kenntnisstand gebracht haben beschreiben wir als nächstes wie sich das Problem überhaupt auf unser Projekt auswirkt wir planen auch für diesen Teil 3:45 des Meetings nicht mehr als 5 Minuten Zeit ein wie beschreibt man die Auswirkungen denn möglichst nachvollziehbar um die Auswirkung 3:54 möglichst greifbar zu machen lassen wir an dieser Stelle vor allem Zahlen und Fakten für sich selbst sprechen wie viel Zeit kostet dieses Problem uns jeden Tag 4:07 wie oft tritt das Problem während unserer täglichen Arbeit eigentlich auf und wenn man beides multipliziert wie viel Zeit kostet uns das Problem 4:18 geschätzt jede Woche dabei handelt es sich bewusst um schätzwererte Schätzwerte die dennoch ein realistisches Bild zeichnen 4:30 für unser feilbeispiel jeder Bild dauert auf einmal eine Stunde länger entwickler müssen eine Stunde länger da drauf warten ob die Änderungen die sie gemacht 4:42 haben überhaupt das gewünschte Resultat zfolge hat während dieser Zeit kann der Entwickler selbstverständlich an anderen Themen weiterarbeiten dennoch muss er 4:53 immer ein Auge auf den noch laufenden Bild haben ob er noch mal etwas nachbessern muss nehmen wir mal an der Kontext Switch und das generelle warten 5:04 auf den noch laufenden Bild Kosten den Entwickler jedes Mal und 10 Minuten jetzt ist es so dass ein Entwickler den Bild durchschnittlich viermal am Tag neu 5:16 anstoßen muss bis sein Feature dann endlich mal durchgelaufen ist und gehen wir mal weiter davon aus dass es zehn Entwicklern in dem Team allen genau 5:27 gleich geht vier Bilds pro Tag mal 10 Entwickler mal 10 Minuten 5 Tage er gibt genau 2000 Minuten Entwicklungszeit die wir 5:42 jede Woche verlieren das ist ja eine ganze Menge Zeit unser Ziel ist es Aufmerksamkeit für das Problem zu schaffen 5:52 Aufmerksamkeit wollen wir vor allem bei den Entscheidungsträgern schaffen im besten Fall wird unser Teammanager auf das Problem da dururch aufmerksam dann 6:01 gewinnt das Thema im Umkehrschluss auch deutlich schneller an Fahrt wenn es darum geht ein wichtiges Problem zu lösen gehen wir mal davon aus 6:10 dass wir nun ein gemeinsames Verständnis für das Problem und dessen Auswirkungen bei allen Beteiligten geschaffen haben a dann kann ich ja jetzt end meine 6:21 Lösung vorzeigen Stopp Stopp Stopp Stopp Stopp Stopp auch hier wchen wir alle gerne einen wieder Ken den Fehler wir fangen sofort nachdem wir das Problem 6:33 erklärt an damit an unsere Lösung vorzustellen dabei ist es so unendlich wichtig dass wir den Teilnehmern auch genügend Zeit für Verständnis Fragen und 6:46 eventuelle Rückfragen zu dem Problem und seinen Auswirkungen zulassen ach die vielen Fragen die sind ja immer so anstrengend und gleichzeitig sind diese 6:57 Rückfragen auch für uns von großen Vorteil durch eine souveräne Beantwortung von Verständnisfragen oder konkreten Rückfragen können wir auch die 7:08 Akzeptanz dafür steigern dass es sich hier wirklich um ein ernstzunehmendes Problem handelt besucht jemand schon bereits über die möglichen Lösungen für 7:17 das Problem zu reden wiegeln wir ihn ab und verweisen ihn auf später bis wir das Gefühl haben dass alle Teilnehmer im Meeting das Problem verstanden haben wir 7:28 sind nun bereits bei Minute 20 unseres Meetings angelangt und haben noch immer nicht über die möglichen Lösungen gesprochen für das Problem und erst 7:38 jetzt beginnen wir wirklich über unsere Lösungsansätze und Strategien zu reden um das Problem zu lösen ja endlich bin auch Zeit unsere Lösungsstrategien und 7:51 Maßnahmen stellen wir kurz und knapp vor wir stellen unsere Lösungsstrategie mit möglichst vielen Bildern und Diagrammen da und verzichten dabei s weit wie 8:04 möglich auf Text oder sogar codechnipsel für unser Fallbeispiel bieten sich z.B sehr gut Diagramme an die die Reduzierung der bildzeit durch unseren 8:17 Lösungsansatz klar und deutlich illustrieren eine weitere gute Möglichkeit ist wenn wir eine Art Zeitstrahl aufmalen können den wir 8:28 vorsehen bis wir unsere Lösung wirklich umgesetzt haben und werend wir unsere Lösungsansätze präsentieren gehen wir dabei vor allem gezielt auf die 8:40 Rückfragen ein die wir vorher in dem Meeting bekommen haben dadurch steigern wir automatisch die Akzeptanz für unseren Lösungsansatz a fr da habe ich 8:54 immer passende Antwort parat immer einew parat zu haben macht sich eine gründliche Vorbereitung auf das Meeting bezahlt wir können uns wie 9:06 folgt Schritt für Schritt auf mögliche Rückfragen vorbereiten wir kennen unsere meetingteilnehmer und verstehen ihre Rolle im Team wir wissen was für die 9:18 Beteiligten Stakeholder besonders wichtig ist wir rekapitulieren welche fragen wir uns im Vorfeld selbst gestellt haben und wie wir sie für uns 9:29 antworten können je besser wir auf Rückfragen vorbereitet sind umso souveräner werden wir und unsere Lösung von den anderen meetingteilnehmern 9:39 wahrgenommen nachdem wir unsere Lösung vorgestellt haben folgt nun die Stunde der Wahrheit das Feedback aus dem Team da habe ich immer Angst vor unsere 9:53 präsentierte Lösung wird unweigerlich Diskussionen nach sich ziehen und das ist auch richtig und gut so wir räumen diesen Diskussionen 10:03 möglichst viel Zeitraum ein und Tun selbst währenddessen vor allem eins zuhören und die anderen reden lassen durch gezieltes zuhören erhalten 10:17 wir nämlich sehr schnell Feedback ob unser Lösungsansatz bereits schon auf ausreichend Akzeptanz stößt und an welchen Stellen wir noch ein wenig 10:28 nacharbeiten müssen und was W meinem Lösungsansatz nicht vertrauen je besser wir unseren Lösungsansatz mit Begründungen und Argumenten untermauern 10:41 können desto mehr Vertrauen werden ihm auch unsere Kollegen schenken im Idealfall haben wir nämlich die wichtigsten Fragen im Vorfeld bereits 10:52 durch eine eene prototypische Umsetzung unseres Lösungsansatz bereits beantwortet in unseren Demonstrator können wir dann demonstrieren wenn wir 11:03 nur selektive Tests ausführen in jedem Bild für die codeanteile die sich auch wirklich verändert haben dass wir uns dadurch jede Menge Zeit sparen können 11:14 und anhand unserer prototypischen Umsetzung können wir den Meeting Teilnehmern auch gleichzeitig ein Gefühl vermitteln wie viel Aufwand denn hinter 11:25 dieser Lösung eigentlich steckt mit diesen Erkenntnissen in der Hinterhand können wir selbstbewusst auftreten und kritische Rückfragen schnell und 11:35 souverän beantworten aufkommende Bedenken können wir dadurch so schnell es geht entkräften so dass Zweifel erst gar nicht aufkommen wir haben 11:46 Diskussionen in unserem Meeting bis zu diesen zeitkt bewusst offen und viel laufen lassen zum Abschluss unseres Meetings folgt nun der wichtigste Punkt 11:59 die nächsten Schritte vereinbaren ja na ja wie geht's jetzt weiter diese nächsten Schritte können je nach meetingverlauf sehr unterschiedlich 12:10 ausfallen hier mal ein paar mögliche Szenarien wie die nächsten Schritte aussehen können es bestehen noch offene Fragen der Beteiligten um das Problem an 12:22 sich oder unseren Lösungsansatz vollständig verstehen zu können der Zeit Rahmen für das geplante Vorgehen muss noch geklärt werden es bestehen noch 12:34 Zweifel an der technischen machtbarkeit unseres Lösungsansatzes und hier noch ein gut gemeinter Ratschlag wir dürfen nicht 12:45 enttäuscht oder gar entmutigt sein wenn wir unsere Kollegen nicht sofort von unserem Lösungsansatz überzeugen konnen es ist völlig normal dass manche 12:56 Vorhaben die ein oder andere meetingrunde mehr benötigen wenn wir dann mal alle überzeugt haben geht es als nächstes darum im Team gemeinsam die 13:07 ersten Arbeitspakete zu schnüren damit wir auch die ersten Taten folgen lassen können unabhängig von den vereinbarten nächsten Schritten haben wir heute einen 13:20 großen Schritt getan um Kunigundes geplante Modernisierung wirklich in die Tat umsetzen zu können ich habe jetzt ein viel besseres Gefühl was die Leute 13:31 von meiner Idee halten und auch deine Kollegen haben sicher eine Menge dazu gelernt und freuen sich sicher schon darauf dass sie 13:41 das Problem bald los sind wenn du dich noch fragst wie du dir solche Lösungsstrategien am effektivsten selbst erarbeiten kannst dann empfehle ich dir 13:53 als nächstes dieses Video hier anzusehen