Ich bin "der Neue" in der IT-Abteilung eines kleinen Produktionsunternehmens. Wir haben ein kleines Team von 3 Anwendungsentwicklern + 1 Datenbankentwickler/DBA-artige Rolle. Ich bin seit ein paar Monaten hier, also bin ich an dem Punkt angelangt, an dem ich angefangen habe, das Vertrauen und die Anerkennung meiner Kollegen zu gewinnen.
Während meines Vorstellungsgesprächs wurde viel darüber gesprochen, agiler werden zu wollen. Es wird noch viel darüber geredet , aber nichts dagegen unternommen. Um ehrlich zu sein, ist es mir egal, ob wir „agil“ sind oder nicht, aber wir müssen wirklich anfangen, einige Dinge zu tun, die nur Best Practice sind, agil oder nicht. Dinge wie Unit-Tests und Code-Reviews. Ja, lassen Sie uns zuerst mit diesen beiden gehen, da sie das größte Preis-Leistungs-Verhältnis bieten.
Jetzt habe ich Code, den ich berühre, getestet, bevor ich ihn ändere. Teilweise, weil ich die Vorteile gesehen habe, und teilweise, weil ich Angst davor habe, irgendetwas in einer Legacy-Codebasis zu beschädigen. Mein Vorgesetzter ist sehr zufrieden damit. Er hat es mir selbst gesagt. Der Rest des Teams scheint die Idee von Tests und geschlossenen Check-Ins zu mögen, hat aber nichts unternommen, um diese Dinge tatsächlich zu tun . Ich denke, es könnte daran liegen, dass sie einfach nicht wissen, wie, aber es ist möglich, dass sie denken, "sie haben keine Zeit". (Der Teil, keine Zeit zu haben, ist übrigens völlig falsch. Das Management weiß, dass es sich um eine Investition im Voraus handelt, die sich auszahlt, und unterstützt die Bemühungen vollständig.)
Es ist ehrlich gesagt ein bisschen frustrierend für mich, so viel Gerede zu hören, aber keine Aktion von meinen Teamkollegen zu sehen. Wie kann ich als Neuling sie in Aktion bringen, ohne die Federn zu zerzausen? Ich will nicht dieser Typ sein .
Dies ist kein Duplikat der vorgeschlagenen Frage, da dieser Typ gefragt hat, ob/wie er seine Ideen vorantreiben soll. Dies sind nicht meine Ideen (obwohl ich ihnen offensichtlich zustimme). Meine Frage dreht sich darum, wie ich meine Kollegen dazu bringen kann, ihren Worten Taten folgen zu lassen .
Es ist ehrlich gesagt ein bisschen frustrierend für mich, so viel Gerede zu hören, aber keine Aktion von meinen Teamkollegen zu sehen. Wie kann ich als Neuling sie in Aktion bringen, ohne die Federn zu zerzausen? Ich will nicht dieser Typ sein.
Die Verwendung von Ausdrücken wie „großes Gerede“ und „dränge sie“ kann dich tatsächlich zu diesem Typen machen , also willst du nicht dorthin gehen.
Erwägen Sie, Ihren Vorgesetzten zu fragen, ob es für Sie in Ordnung wäre, eine Präsentation zu einigen der Praktiken zu erstellen, die Sie für wichtig halten. Einige Unternehmen führen während des Mittagessens "Brown Bag Talks", bei denen solche Themen üblich sind.
Wenn Sie angenommen werden, können Sie darüber sprechen, was Sie vorschlagen, warum Sie es für wichtig halten (hoffentlich nicht nur, weil Sie der Meinung sind, dass es eine „Best Practice“ ist, sondern mehr darüber, warum es dem Team/Unternehmen in seinem speziellen Kontext zugute kommt) und wie Sie alle können diese Ideen umsetzen.
Versuchen Sie, die ausdrückliche Zustimmung des Managers rechtzeitig zu erhalten, und nutzen Sie dann Ihre Überzeugungskraft, um andere davon zu überzeugen, auf den fahrenden Zug aufzuspringen. Manchmal fängt es gut an, ein Pilotprojekt vorzuschlagen – oft ist es der einfachste Weg zu Verbesserungen, klein anzufangen.
Der Rest des Teams scheint die Idee von Tests und geschlossenen Check-Ins zu mögen, hat aber nichts unternommen, um diese Dinge tatsächlich zu tun
Wissen sie eigentlich, wie man Unit-Tests durchführt?
Wenn Sie dies noch nie zuvor getan haben, ist es möglicherweise nicht einfach, damit anzufangen. Vor allem, wenn Sie jahrelange Erfahrung damit haben, keine Tests durchzuführen.
Es klingt, als wäre zumindest Ihr gesamtes Team offen für die Idee, ihre Prozesse zu ändern. Ich würde mich darauf konzentrieren, sicherzustellen, dass Sie wissen, warum sie nichts tun. Ich vermute, es ist entweder ein allgemeiner Widerstand gegen Veränderungen oder ein Mangel an Verständnis dafür, wie man Dinge tut.
Wenn es ein Mangel an Wissen ist, können Sie Möglichkeiten in Betracht ziehen, dabei zu helfen. Ein guter Weg könnte sein, jemanden um Hilfe zu bitten und eine Art Paarprogrammierung zu machen, wenn Sie mit Code arbeiten, den Sie nicht (so vollständig) verstehen. Sie können besprechen, was Sie tun, und sehen, ob Sie mit der anderen Person dort Tests schreiben können, in denen Sie erklären, was Sie tun.
Beachten Sie, dass es nicht unbedingt dasselbe ist, einen Test geschrieben zu sehen (Code Review) und zu wissen, wie man an das Schreiben eines Tests herangeht.
Wenn es nur ein Problem ist, dass wir gerne darüber reden und hip klingen, ohne etwas zu tun, könnten Sie versuchen, wenn dieses Gespräch stattfindet, sehr spezifische, praktische Dinge vorzuschlagen oder nach ihnen zu fragen (anstatt sich nur über mangelnde Codeüberprüfung oder Komponententests zu beklagen , auch):
Um Code-Reviews praktikabel zu machen, brauchen Sie ein System, das sie erleichtert. Zum Beispiel wie GitHub es mit Pull Requests macht oder wie GitLab mit Merge Requests. Ich habe tolle Dinge über Gerrit gehört, aber ich habe es nicht benutzt. Installieren Sie eines davon oder ähnliches (zunächst auch nur auf Ihrem eigenen PC), sonst ist es einfach nicht praktikabel.
Hier ist ein Beispiel für die Einführung von Codeüberprüfungen bei einem Kollegen, der GitHub verwendet.
Implementieren Sie eine einigermaßen interessante Änderung in einem Zweig und lassen Sie absichtlich einige Fehler ein. Erstellen Sie einen Pull-Request und bitten Sie einen Teamkollegen, ihn freundlicherweise zu überprüfen. Setzen Sie sich zu ihm, zeigen Sie ihm Ihren Fehler und wie er einen Kommentar in die entsprechende Zeile eingeben kann. Führen Sie ihn durch den Rest Ihrer Änderungen, wenn er irgendwelche Bemerkungen macht, bitten Sie ihn, sofort einen Kommentar einzugeben. Nachdem Sie alle Änderungen gemeinsam überprüft haben, kehren Sie zu Ihrem Schreibtisch zurück, übernehmen Sie die Korrekturen und geben Sie sie weiter. Die früheren Kommentare werden aus dem Pull-Request entfernt. Bitten Sie ihn, einen weiteren Pass zu machen, falls er noch etwas findet. Wiederholen Sie dies, bis er nichts findet und der Pull-Request akzeptiert werden kann.
Zeigen Sie es auch anderen Teamkollegen, weisen Sie ihnen weiterhin Pull-Requests zu und ermutigen Sie sie, dasselbe mit Ihnen zu tun. Hoffentlich setzt sich die Praxis durch.
Der Prozess ist bei GitLab (kostenloser Klon von GitHub) genau gleich, aber sie nennen Pull Requests Merge Requests. Ich weiß nicht, bei Gerrit und anderen würde ich mir vorstellen, dass es ähnliche Funktionen gibt.
Wir haben diese Idee in den letzten 3 Jahren bisher in zwei Teams umgesetzt. Es ist die beliebteste Methode, die wir implementiert haben. Die Leute, die es machen, lieben es und schicken mir gelegentlich Zusammenführungsanfragen, selbst nachdem ich zu einem anderen Team gewechselt bin. In meinen neuen Teams versuche ich, die Praxis genau so zu verbreiten, wie ich es oben beschrieben habe.
Was Unit-Tests angeht:
Was die Verbesserungen der Codequalität betrifft:
Beachten Sie das gemeinsame Muster in den beiden obigen Beispielen:
All diese Ideen sind so kleine und einfache inkrementelle Änderungen, dass sie wirklich einfach zu verkaufen sind.
Anpassen und eine an Ihre Umgebung angepasste Variante verwenden.
Markus Rogers
Dieser Typ
Markus Rogers
Dieser Typ
Francine DeGrood Taylor
Dieser Typ