Dieses Thema bezieht sich auf Webentwicklung / Softwareentwicklung; Die Frage kann sich jedoch auf andere Fachgebiete beziehen, in denen ein jüngerer Mitarbeiter technisch versierter ist als ein Senior mit mehr Erfahrung.
Ich arbeite in einem Team, in dem das absolute Ausmaß der verwendeten objektorientierten Programmierung Vererbung ist . Prozeduraler Code wird in Klassenmethoden platziert. Es gibt wenig bis gar kein Typehinting in Methodensignaturen, keine Namespaces oder Schnittstellen - (ich weiß, richtig)? - Dies hat zu Legacy-Code geführt, der schwer zu pflegen und für neue Mitarbeiter (Junioren) sehr schwer zu erlernen und zu bearbeiten ist. Nur die Person, die es geschrieben hat, weiß wirklich, wie es funktioniert.
In einem technischen Meeting zu einem neuen Projekt gehe ich davon aus, dass jede Diskussion über gute OO-Praktiken (Entwurfsmuster usw.) höchstwahrscheinlich mit „es ist zu komplex“ beantwortet wird. Zu komplex mit 5 Klassen oder mehr.
Ich bin höflich, ruhig, respektvoll und ehrlich, genau wie der leitende Entwickler – er ist ein Freund. Infolgedessen glaubt er ehrlich, dass alles, was über die Vererbung hinausgeht, beim Programmieren "zu komplex" ist, und ich glaube ehrlich, dass das nicht der Fall ist - ich habe in der Vergangenheit Code geschrieben, der "einfach funktioniert", da er von mir vollständig getestet wurde und einwandfrei funktionierte Veröffentlichungstag, und der Code des Seniors erforderte einige Korrekturen.
Wie kann ich eine gute objektorientierte Lösung vorschlagen, die architektonisch solide und in diesem Meeting „sinnvoll“ ist, aber das Problem „es ist zu kompliziert“ vermeiden (wenn es wirklich nicht so ist, ist er nur daran gewöhnt, im prozeduralen Stil zu codieren) . Ich habe den größten Respekt vor meinem Senior, aber ich möchte den schrecklichen, prozeduralen Code (in Klassen) vermeiden, den unsere Legacy-Anwendung jetzt hat.
Wie kann eine jüngere Person mit viel weniger Erfahrung, aber deutlich mehr Antrieb (die diese Konzepte gelernt und mehrfach in die Praxis umgesetzt hat) einen älteren davon überzeugen, dass dies der beste Weg ist, mit angemessenem Respekt und Fingerspitzengefühl?
Du zeigst es ihnen.
Ich war an vielen Orten, an denen ich Leute schulen musste, und im Laufe der Jahre habe ich festgestellt, dass es nicht reicht, über Dinge zu reden. Die Leute werden auf ihre Erfahrungen zurückgreifen, und ihrer Erfahrung nach macht die objektorientierte Programmierung (OO) die Dinge zu komplex. Was Sie tun müssen, ist ihnen Wert zu zeigen .
Nehmen Sie ein Problem, das sie haben und kennen, und lösen Sie es so, wie Sie es tun würden. Zeigen Sie ihnen, wie Ihre Lösung einen Mehrwert gegenüber dem bietet, was sie wissen. Dies gibt ihnen eine Grundlage zum Lernen und Ihnen beiden eine konkrete Diskussionsgrundlage statt einer theoretischen, die viele sofort verwerfen werden.
Aber das allein reicht (für die meisten Menschen) nicht aus. Ihre Lösung wird immer noch zu kompliziert aussehen , da neue/neuartige Konzepte für die Menschen ausnahmslos mehr Arbeit bedeuten als das, was sie wissen. Der nächste Schritt besteht darin, ein relativ einfaches Beispiel zu nehmen und sie dazu zu bringen, es tatsächlich zu verwenden . Wenn Sie ein leitender Entwickler wären, würde ich sagen, dass Sie etwas OO-Code implementieren und andere Fehler darin beheben lassen. Als Junior-Entwickler bin ich mir nicht sicher. Für einige Leute kann der Versuch, sie dazu zu bringen, zu einem Codecamp zu gehen oder an einem Hobbyprojekt zu arbeiten, ein interessanter Anreiz sein. Möglicherweise müssen Sie jedoch einige Funktionen in einer OO-Manier implementieren und den Senior damit arbeiten lassen (Bugfixes, Erweiterungen usw.).
Meiner Erfahrung nach glauben die Leute erst wirklich, wie einfach/gut etwas sein kann, wenn sie es selbst benutzt haben.
SJuan76
gnasher729
DJ Clayworth
James
Keschlam
James