Wie man schlechte Arbeitspraktiken von Mitarbeitern vermeidet

Hallo, ich arbeite in der Webentwicklung. Ich habe die Verantwortung für die Durchführung eines Projekts. Ich habe einige Junioren, denen ich Aufgaben delegiere, und sie erledigen es. Dieser Fluss scheint mir in Ordnung zu sein.

Aber wenn ich in den Code schaue, finde ich einige Dinge, die nicht dort sein sollten. Einige Praktiken müssen nicht vorhanden sein. Ich bin kein Ninja-Programmierer, aber ich kann schlechte Gewohnheiten erkennen.

Mit schlechter Praxis meine ich nicht falsch, der Code wird wie erwartet funktionieren, aber ich bin irgendwie OCD und es irritiert mich manchmal, weil es die Leistung der App einschränken kann.

Ich habe zwei Möglichkeiten, das anzugehen:

  1. Lassen Sie die Arbeit so, wie sie ist, und sagen Sie ihnen, sie sollen nicht noch einmal wiederholen, da die aktuelle Version gut funktioniert.

  2. Korrigieren Sie alles selbst oder weisen Sie sie an, es zu korrigieren, aber dieser Ansatz wird einige Zeit in Anspruch nehmen und zu Projektverzögerungen führen.

Wie soll ich hier vorgehen oder gibt es dafür eine andere Lösung?

Was ist die dritte Option? Du zählst nur zwei auf.
Sind diese Leistungsgrenzen wirklich wichtig? Leistung ist nicht das alleinige Gut. Wartbarkeit ist ebenfalls wichtig, auf lange Sicht oft wichtiger, und das kann einen Code erfordern, der klar und nicht auf den Tod getrimmt ist. Und eine unendliche Leistungsverbesserung von etwas, das ein Tausendstel der Laufzeit ausmacht, ist nur eine Verbesserung der Laufzeit um 0,1 %; Optimieren, was wirklich nicht wichtig ist, ist eine Verschwendung von Mühe, die besser woanders eingesetzt wird.
@Kilisi korrigierte Zählung
Code-Reviews natürlich (1!). Aber Codierungsstandards würden auch helfen. Wenn es nicht hilft, dann vielleicht die Programmierung mit jedem von ihnen der Reihe nach koppeln?

Antworten (5)

Erstellen Sie ein Dokument mit Codierungsstandards für Ihr Team, in dem Sie festlegen, was akzeptabel ist und was nicht.

Lassen Sie dann nur zu, dass Code in den Master-Branch Ihres Quellcode-Repositorys gemergt wird, nachdem dieser Code einer Codeüberprüfung unterzogen wurde. Sie können Tools wie StyleCop verwenden, um bestimmte Regeln automatisch durchzusetzen, aber wenn Sie sich hinsetzen und Codeüberprüfungen durchführen, wirken Sie in Ihrem Team sympathischer.

+1 für die Festlegung von Codierungsstandards ist dies unerlässlich, um einen gemeinsamen Codestil für Unternehmen durchzusetzen, und funktioniert wirklich gut.
Ja, Junior-Entwickler erkennen möglicherweise nicht, dass sie schlechte Praktiken anwenden, da „der Code funktioniert“. Sie können auch den Code der Arbeitselemente überprüfen lassen, um auf diese Probleme hinzuweisen.
@AndrewBerry Ein perfektes Beispiel, das ich gerne verwende, ist eines, bei dem ein Entwickler ein neues ORM verwendet hat, ohne es vollständig zu verstehen, und es funktionierte in der Entwicklung und als es zum ersten Mal in Produktion ging, einwandfrei, aber aufgrund der gewählten Ansätze 2 Jahre später es war von ein paar kleinen Abfragen bei jedem Seitenaufruf auf 130.000 SQL-Abfragen bei jedem Seitenaufruf gestiegen. Und das lag ausschließlich an der Datenmenge, die die Website in dieser Zeit angesammelt hatte – das schlechte Verständnis bedeutete, dass alle Daten für jede einzelne Abfrage in den Speicher gezogen wurden. Eine Codeüberprüfung hätte das aufgedeckt ...
Mein Wissen über StyleCop ist begrenzt, aber Sonar(Qube) ist auch eine gute Option für die Überwachung des Codestils mit einigen raffinierten Funktionen.

Da Sie Teamleiter sind....

Erstens ... hatten Sie irgendwelche Best Practices für die Codierung? Wenn nicht, ist der schlechte Code Ihre Schuld.

Zweitens … führen Sie Code-Reviews durch, entweder formell oder informell? Wenn nicht, dann ist der schlechte Code wieder Ihre Schuld.

Drittens ... ist der Code tatsächlich schlechte Praktiken oder einfach nicht Ihre bevorzugte Methode, Dinge zu tun? Da Sie sagten, ".. weil es die Leistung der App einschränken kann", scheint dies zu implizieren, dass es nicht kaputt ist, nur nicht so, wie Sie es wollen.

Unabhängig davon, um Ihre Frage zu beantworten, NEIN ... Sie nehmen die Änderungen nicht selbst vor. Sprechen Sie mit PM und wenn es Zeit und einen echten Bedarf gibt, lassen Sie den Entwickler, der den Code geschrieben hat, die Änderung vornehmen und erklären, warum er benötigt wird. Sie klingen wie ein „perfektionistischer“ Programmierer, also schauen Sie sich ehrlich den Code und sich selbst an und fragen Sie, ob Sie nicht nur wollen, dass die Dinge auf Ihre Weise erledigt werden, oder ob es wirklich schlechter Code ist. Seien Sie sich bewusst, dass es ein sicherer Weg ist, den Respekt und das Verlangen, Ihnen zuzuhören, zu verlieren, wenn Sie die Arbeit von jemandem kritisieren, nur weil es nicht so gemacht wird, wie Sie es tun würden.

Guter Code und ein Qualitätsprodukt sind nicht Ihre einzige Verantwortung gegenüber dem Unternehmen; Sie sollten auch Ihr Team unterrichten und bewegen.

Die meisten Programmierer sind daran interessiert, guten Code zu schreiben, und haben Ideen, wie man das am besten macht. Darin sind sie sich nicht immer einig. Das Ziel sollte nicht sein, sie dazu zu bringen, genau das zu tun, was Sie sagen – abgesehen von allem anderen können Sie zweifellos auch von Ihrem Team lernen.

Natürlich möchten Sie sich an gute Standards halten, und dazu gehört, dass das Team Code auf konsistente Weise schreibt, anstatt dass jeder sein eigenes Ding macht. Wie Sie bereits erwähnt haben, sind einige Praktiken technisch besser als andere, und Sie sollten die guten in Ihre Richtlinien aufnehmen.

Dies kann auf verschiedenen Wegen erreicht werden. Ich würde folgendes vorschlagen:

  1. Teilen Sie Ihrem Team mit, dass einige Codierungsstandards erforderlich sind. Sie können wahrscheinlich einige Richtlinien online finden, die Sie als Ausgangspunkt verwenden können. Bitten Sie Ihr Team, dazu Feedback zu geben, und erlauben Sie ihm, Praktiken hinzuzufügen, von denen es aus eigener Erfahrung weiß, dass sie gut sind.
  2. Richten Sie ein Treffen ein, um Ihren Richtlinienentwurf durchzugehen und fertigzustellen. Es wird sicherlich einige Dinge geben, die kontrovers sind, und Sie müssen eine ausreichende Diskussion zulassen, sich dann aber mit einer Entscheidung abschließen. Selbst wenn eine Entscheidung gegen etwas verstößt, das einem der Entwickler am Herzen liegt, haben sie den Trost, dass sie konsultiert wurden und eine vernünftige Diskussion stattgefunden hat.
  3. Lassen Sie das Team Code-Reviews durchführen. Idealerweise ist dies keine hierarchische Sache, sondern ein Teammitglied hilft dem anderen, sich an die Standards zu halten, und macht vielleicht Vorschläge für Designverbesserungen. Sie können auch Pair Programming in Betracht ziehen, aber viele Teams kommen ohne es gut aus.

Versuchen Sie so viel wie möglich, als Wegbereiter für Ihr Team zu fungieren, um qualitativ hochwertigen Code zu produzieren. Sie werden den damit verbundenen Respekt zu schätzen wissen

Wenn Sie die Befugnis haben, können Sie Richtlinien für die Programmierung festlegen und die Juniors bitten, sich daran zu halten.

Wenn Sie nicht die Befugnis haben, können Sie nicht viel tun. Sie können es selbst beheben oder den Manager bitten, mit ihm zu sprechen. Aber wenn Sie letzteres tun, sollten Sie Richtlinien aufschreiben, es hat keinen Sinn zu sagen, dass es falsch ist, es sei denn, Sie können ihnen den „richtigen“ Weg zeigen.

Wie die anderen gesagt haben, gibt es eine Reihe guter Praktiken, die so ziemlich für alle Sprachen/Frameworks existieren und im Netz dokumentiert sind, und sie sind ein Werkzeug, das Sie bei der Codeüberprüfung unterstützt.

Wenn Sie die Befugnis, aber nicht die erforderlichen Fähigkeiten haben, um ein ordnungsgemäßes Dokument mit Best Practices durchzusetzen, delegieren Sie es an jemanden. Ich ziehe es vor, keine Best Practices durchzusetzen, als sie von jemandem zu bekommen, der nicht wirklich versteht, wovon er spricht, besonders wenn es um Leistung geht .

Mit schlechter Praxis meine ich nicht falsch, der Code wird wie erwartet funktionieren, aber ich bin irgendwie OCD und es irritiert mich manchmal, weil es die Leistung der App einschränken kann.

Geht es nur um die Leistung?

Wenn ja, empfehle ich Ihnen, Ihrem Validierungsprozess einen geeigneten Datentest hinzuzufügen, falls Sie ihn noch nicht haben. Unter ordnungsgemäßen Datentests verstehe ich Daten, die in ihrem Umfang mit der erwarteten Realität übereinstimmen. Wenn Sie zum Beispiel eine Webanwendung machen, könnten Sie festlegen, dass jede grundlegende Aktion weniger als eine Sekunde dauern sollte, ein komplizierter Nachtjob weniger als eine Stunde? Wenn der Test fehlschlägt, gibt es etwas zu graben.

Wenn es schließlich einen speziellen Code gibt, der in Bezug auf die Leistung für Sie wirklich falsch aussieht und der Leistungstest auf hoher Ebene für Sie nicht ausreicht, isolieren Sie ihn in einem Komponententest, führen Sie ihn gegen einen riesigen generierten Datensatz aus und sehen Sie sich selbst das Ergebnis.

Is that only about performance ?Er meint wahrscheinlich so etwas wie verwenden var myVariable = "abc";statt let myVariable = "abc";oder möglicherweise so etwas wie Parameter als einzelne lange Zeile beibehalten, anstatt nach jedem Komma einen Zeilenumbruch hinzuzufügen.
@JuhaUntinen it irritates me sometimes because it may limit the performance of the appscheint mir ziemlich klar zu sein.