Wie man Programmierer davon überzeugt, die Grundregeln zu befolgen

20

Es gibt mehrere Regeln, die ich Programmierer immer wieder auffordern muss, sehr oft zu befolgen. Sie schreiben Code und wenn es funktioniert, ist die Arbeit für sie erledigt. Die meisten Grundregeln könnten sein:

  • Änderungen übernehmen
  • Schreiben Sie keine Modellprobleme in View oder Controllern
  • Vermeiden Sie Hardcoding

Kannst du mir etwas über deine Erfahrungen erzählen? Wie schaffen Sie das?

Listen Sugra
quelle
2
Sie sollten auf programmers.stackexchange.com fragen. Machen Sie Code-Reviews? Haben Sie ein Code-Review-Tool wie Crucible? Ich würde empfehlen, gründliche Codeüberprüfungen durchzuführen und darauf zu bestehen, dass alle Probleme gelöst werden, bevor andere Arbeiten ausgeführt werden.
15
Sie können versuchen, den Pferdekopf auf dem Bett zu lassen, das bei Godfather funktioniert hat.
Gaurav
4
Ich hatte großen Erfolg mit Hochspannung. Ihr Kilometerstand kann variieren.
Tim Post
2
@ Tim: Eine aufgerollte Zeitung ist umweltfreundlicher
Steven A. Lowe
@Steven, ich denke es wäre. Zuerst verwenden Sie die Zeitung neu und bereiten sie dann erneut auf. Ich nehme an, es gibt eine Kunst, Einschüchterung zu begrünen.
Tim Post

Antworten:

6

Alle Wissensarbeiter müssen aufgefordert werden, qualitativ hochwertige Arbeit zu leisten. Die Qualität leidet, wenn sie das Gefühl haben, dass ihnen willkürliche Zeitbeschränkungen auferlegt werden. Warum nicht einfach Dinge machen, die "gut genug" sind, wenn alle daran interessiert sind, die Spezifikationen zu erfüllen und die Fristen einzuhalten?

Ihre Beschwerdeliste ist ein Symptom für ein Unternehmen, das nur kurzfristige Ziele erreicht und keinen Wert auf hohe Qualität legt. Führen Sie ein Fünf-Sterne-Hotel oder eine Raststätte?

JeffO
quelle
1
+1, um darauf hinzuweisen, dass dies ein kulturelles Problem ist und vom Standpunkt der Motivation aus angegangen werden muss.
Alex Feinman
Es ist beides eine Frage der Unternehmenskultur, auf die JeffO anspielt. Aber manchmal wird diese Kultur von Grund auf neu erfunden, wenn Programmierer und Entwickler keine Vision für Qualitätscode oder für die Notwendigkeit davon haben. Als sie in der Informatikschule waren, hätten ihre Professoren sie einige Male auf die Seiten ihres Kopfes schlagen sollen.
Robert Bristow-Johnson
@ Robertbristow-Johnson - Guter Punkt.
JeffO
14

Um die Grundregeln befolgen zu können, müssen sie die Regeln kennen und ihnen zustimmen.

Der Weg, dies zu handhaben, besteht darin, gemeinsam ein Kodierungsrichtliniendokument zu erstellen , mit dem sich jeder einverstanden erklären kann. Versuchen Sie nicht, sie dazu zu zwingen, es wird nach hinten losgehen, wenn Sie dies tun.

Stellen Sie also das Team zusammen und arbeiten Sie an einer gemeinsamen Definition Ihrer Grundregeln!

Tun Sie es als Workshop, in dem alle Stimmen gehört werden. Timebox es, um endlose Diskussionen zu vermeiden. Sie versuchen, mehrere Köpfe zusammenzubringen, und möchten die Bühne mit der positiven Bemerkung eröffnen, dass Sie alle respektvoll und aufgeschlossen sein sollten (das Schreiben von Code ist persönlich ...).

Diese Richtlinien sollten lebendig geändert werden, wenn das Team der Ansicht ist, dass etwas hinzugefügt oder geklärt werden sollte.

Martin Wickman
quelle
2
Obwohl ich zustimme, stimme ich auch nicht mit "Versuchen Sie nicht, dies auf sie zu erzwingen, es wird nach hinten losgehen, wenn Sie dies tun." - Letztendlich ist es unerheblich , ob sich jemand auf die Grundregeln einigt oder nicht . Der Chef macht die Regeln, folgt ihnen oder findet einen anderen Job. Wir sind nicht so besonders, dass das Arbeitgeber-Arbeitnehmer-Verhältnis nicht zutrifft.
Steven Evers
12

Was ist deine Rolle? Wenn Sie nur ein anderer Entwickler sind, der ein besonderes Interesse an der Codequalität hat, verfügen Sie wahrscheinlich nicht über die Berechtigung, diese Ideen an das Management weiterzugeben, um Codestandards festzulegen, die eingehalten werden sollen / müssen gefolgt. Wenn Sie ein Manager / Teamleiter / Architekt sind und über eine gewisse Autorität verfügen, können Sie diese Praktiken selbst festlegen. Richten Sie ein Standarddokument und einen Codeüberprüfungsprozess ein, um diese Probleme zu beseitigen.

Es wird kein magischer Schalter sein, den Sie einschalten können. Es wird ein langsamer Prozess sein und niemals zu 100%. Das war sowieso meine Erfahrung.

RationalGeek
quelle
1
Zustimmen. Dies ist eine politische Frage, keine technische.
Und alle Kodexstandards müssten zumindest teilweise von der Gruppe vereinbart werden. Tools wie StyleCop helfen dabei.
Job
Mein Chef versucht, seine "Codequalität" zu verbessern, aber sie hebt einfach nicht ab, weil die Leute nicht daran glauben. Macht zu haben ist nicht immer die Antwort.
IAdapter
@ 0101 Sehr wahr. Die Energie hilft, die Anzeige zu drücken. Die Nachricht muss so erstellt werden, dass sie akzeptiert und befolgt wird.
RationalGeek
7

Es muss eine sinnvolle Kombination aller bisherigen Antworten sein. Wenn Sie von einer Gruppe intelligenter Leute (Entwickler) sprechen, müssen Sie ihnen letztendlich Gründe nennen, warum das Verhalten wichtig ist, und ihnen ausreichend Kontrolle darüber geben, wie dieses Verhalten implementiert wird, damit sie es richtig machen können. Mandate von oben sind in der Regel ein Problem für kluge Köpfe, denn wenn sie sich nicht darauf geeinigt haben, dass das Problem ein Problem ist, verbringen sie wahrscheinlich mehr Zeit mit der Erledigung des Mandats als mit der Befolgung der Regel.

Hier sind einige meiner Taktiken:

Änderungen bestätigen:

Zunächst muss sich das Team darauf einigen, wann und was zu begehen ist. Unabdingbar ist ein Build-Setup, das Sinn macht, damit die Leute sich nicht zurückhalten, nur weil sie nicht wissen, wo sie etwas ablegen sollen. Und ein Konsens darüber, wann und wie oft Sie einchecken sollten. "Brechen Sie nicht den Build" ist eine naheliegende gute Regel, aber wie wird das überprüft und wem wird davon erzählt? Eine andere Grundlinie ist "es wird nicht gemacht, wenn es nicht eingecheckt ist".

Die meisten Entwickler, die ich kenne, checken gerne den Code IF ein:

  • Das Einchecken ist einfach
  • Der Synchronisationsprozess ist einfach (Berücksichtigung von Änderungen anderer Entwickler)
  • Änderungen zu sehen und zwischen Versionen zu wechseln ist einfach

Eine Sache, die mir kürzlich aufgefallen ist, war, dass das Einchecken häufiger und weniger schmerzhaft wurde, als wir uns auf ein neues CM-Tool vorstellten. Unser Team ist Vorreiter bei Rational Team Concert, das zuvor Clearcase verwendet hat. Ich möchte keine Werbung für Tools machen, aber die neue Welle von Streaming-Checkins mit vielen kleinen, schnellen Zusammenführungen macht es verlockender, früh und häufig einzuchecken.

Wenn Entwickler für die Beseitigung von CM-Schmerzen verantwortlich sind, erhöht sich in der Regel die Anzahl der Eincheckvorgänge.

Architektur einhalten - Modellprobleme in Views und Controllern nicht schreiben

Ich stelle das in den allgemeinen Klumpen von "die Architektur richtig machen". Ich bin damit einverstanden, wer auch immer Peer Reviews gesagt hat - der Gruppendruck ist dafür groß. Eine der Möglichkeiten, wie ich im Allgemeinen sehe, wie sich Menschen für Best Practices in diesem Bereich engagieren, ist, wenn ihre Kollegen sie fragen, warum sie es anders gemacht haben (der nicht so richtige Weg). Im Allgemeinen wird die "Warum" -Frage die Menschen auf den Weg bringen, sich selbst darüber klar zu werden, warum sie es anders hätten tun sollen. Wenn die Leute einen guten Grund für die Best Practice haben, ist es viel einfacher, daran festzuhalten.

Wenn eine Person formal mit einer Entscheidung verknüpft ist, kann es einfacher sein, Fehler in diesem Bereich zuzuweisen. Wenn also eine Person für die Behebung von Fehlern in einem Bereich mit fehlerhaftem Design verantwortlich ist, muss vorher etwas richtig gemacht werden Sie können zu etwas Neuem übergehen und Aufregendes kann ein großer Motivator sein.

Vermeiden Sie Hardcoding

Ich beginne mit klaren Codierungsstandards und der Integration einer Codierungsstandardüberprüfung in Peer Reviews. Hard Coding ist eines der Dinge, die leicht ein Kontrollkästchen auf einer Peer-Review-Agenda sein können.

Ich befürchte, dass dies die einzige Sache ist, bei der ich gesehen habe, dass es die Rolle des Teams ist, die zur Durchsetzung der Regel führt. In Teams, die ich geleitet habe, lassen wir im Allgemeinen niemanden weitermachen, bis er die Kommentare aus einer Peer-Review seines Codes korrigiert hat. "Keine harte Kodierung" ist ein häufiger Peer-Review-Kommentar.

Im Allgemeinen

Ich denke, mit fast jedem Best Practice müssen Sie Ihre Schlachten auswählen. Kein Team wird absolut perfekt. Aber Sie können Ihre Hauptschmerzpunkte im Auge behalten und sie in Gruppen angehen. Ich denke, es wird die Rolle des Führers, wirklich zu wissen, was für ein Problem das Team hat, im Gegensatz zu einer nervigen Eigenart eines bestimmten Individuums.

Wenn es Ihrem Team nicht gelingt, ein bestimmtes Best Practice zu bewerkstelligen, muss die erste Frage lauten: "Wie viel Schaden verursacht dies?" Wenn die Antwort "minimal" ist, dann ist es wahrscheinlich die Zeit nicht wert. Einige bewährte Methoden sind für bestimmte Systemtypen am relevantesten - obwohl sie insgesamt gut sind, lohnen sie möglicherweise nicht den Kampf um Systeme, bei denen die Praxis nicht häufig auftritt oder ein wesentlicher Teil des Systems ist.

Ist die Antwort auf "Wie viel Schaden?" ist "VIEL !!!", dann können Sie damit beginnen, dem Team zu zeigen, dass all diese Schmerzen und Leiden beseitigt werden können, indem Sie diesen einen Schwachpunkt in Best Practices festlegen. Die meisten Menschen sind glücklich, Schmerzen und Leiden zu vermeiden, und es ändert sich der Dialog von "Mach das, weil ich es dir gesagt habe" zu "Wir haben uns dazu entschlossen, weil es besser ist".

bethlakshmi
quelle
Langer Kommentar, aber Ihr Ansatz ist fantastisch. Um die Menschen dazu zu bringen, sich an diese Richtlinien zu halten, müssen sie glauben, dass dies von Vorteil ist. Es würde mich interessieren, einige Beispiele zu hören, wie dies für Ihr Team funktioniert hat.
jmort253
Mein Lieblingsbeispiel ist die Einrichtung einer konsistenten Testumgebung. Ich musste keinen richtigen Weg durchsetzen. Ich hatte einen Verantwortlichen für das Installationsdokument. Ich sagte: "Es ist alles, was Sie tun können, um einen Installationsmechanismus zu erstellen, der eine konsistente Installation gewährleistet. Jeder kann Sie nerven, wenn die Installation durcheinander gerät." In weniger als einem Monat hatten wir ein solides Tool und ein sehr kurzes Dokument. Und das Tool wurde als Shortcut auf jedem Desktop installiert. Ich brauchte keine Durchsetzung, eine ordnungsgemäße Installation war bereits der Weg des geringsten Widerstands. Jetzt ist es unser Ziel, die Verknüpfung zu entfernen und sie so zu automatisieren.
Bethlakshmi
6

Code-Review. Akzeptieren Sie nur gut geschriebenen Code, der keine Fehler enthält.

Sorantis
quelle
3
Das ist keine Lösung für das zugrunde liegende Problem. Verschwenden Sie keine Zeit mit Codeüberprüfungen, wenn Sie stattdessen das Grundproblem beheben könnten.
Martin Wickman
Wenn Sie sie zwingen können, Dinge immer wieder zu überarbeiten, werden sie aufgrund ihrer inhärenten Faulheit im Laufe der Zeit anfangen, sich anzupassen.
David Thornley
Einverstanden, müssen die Menschen nur verantwortlich sein und ihre Arbeit tun, ohne es zu erfahren. Die Codeüberprüfung nach jeder Änderung ist eine enorme Zeitverschwendung.
jmort253
5

Mindestens :

  • Erleichtern Sie ihnen das Befolgen von Codelines (Tools wie Resharper, StyleCop).

Wählen Sie außerdem aus, was basierend auf Ihrer Organisation, den Entwicklern und Ihrer Rolle im Team funktioniert.

  • Lassen Sie sie regelmäßig Fehler beheben und Anfragen ändern
  • Koppeln Sie das Programm mit einem erfahrenen Entwickler
  • Codeüberprüfungen auf konstruktive Weise
  • Code-Komplettlösungen
  • Beginnen Sie mit dem Training, verwenden Sie Bücher wie Code Complete und The pragmatic programmer.
KeesDijk
quelle
5

Meine Rolle ist Manager, aber als kleines Team entwickle ich mich und leite lieber als Trainer.

Auf Elektroden im Stuhl, die mit einem Code-Parser verbunden sind, wurde bereits hingewiesen, aber Programmierer scheinen keine Angst zu haben. Feuern klingt nicht nach einem guten Ansatz, da dies den Verlust wertvoller Vermögenswerte bedeutet.

Ich werde mir all diese Tools ansehen und bin offen für alle anderen, die du mir sagst.

Listen Sugra
quelle
3
Wenn Ihr Vermögen so wertvoll ist, sind diese Themen vielleicht nicht so wichtig? Sie müssen Ihre Schlachten einige Male auswählen und auswählen.
JeffO
Meine Frage ist, was ich habe zu verbessern, das ist schwieriger, aber effektiver als Suchen und Ersetzen
Llistes Sugra
Wenn Sie Leute entlassen, die sich nicht an die Kodierungsregeln halten, verlieren Sie KEIN gutes Vermögen. Sie werden Totholz los.
HLGEM
@HLGEM - Es sei denn, die Person, die sich nicht an die Regeln hält, ist zufällig ein Code-Ninja, der jedes Problem in der Organisation lösen kann. Dr. House hält sich nicht an die Regeln, aber wenn das Krankenhaus ihn entlassen würde, gäbe es viele erfundene Menschen, die sterben würden. en.wikipedia.org/wiki/Gregory_House
jmort253
4

Es gibt drei Möglichkeiten, um dieses Problem zu beheben:

  1. Statische Analyse des Quellcodes zur Überprüfung auf Probleme mit der Codierungskonvention. Verwenden Sie Tools wie cppcheck und solche von Grammatech . Wikipedia hat eine gute Liste: http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis . In der Regel verfügen die meisten Versionsverwaltungssysteme über Hooks, mit denen Sie direkt beim Einchecken nach solchen Problemen suchen können. CVS-Hooks finden Sie unter folgendem Link: http://goo.gl/F1gd2 . Nichtbeachtung bedeutet fehlgeschlagenes Einchecken und mehr als 3 Fehler bedeuten, dass sich der Entwickler dem Team erklären muss.

  2. Während des Codierungsprozesses selbst werden Probleme an den Entwickler gemeldet. Ein guter Weg, dies zu tun, sind benutzerdefinierte Skripte, die in die IDE Ihrer Wahl integriert sind. Überprüfen Sie diesen Link aus: http://goo.gl/MM6c4

  3. Folgen Sie agilen Prozessen und stellen Sie sicher, dass die Codeüberprüfung Teil des Sprints ist

Fanatic23
quelle
1
+1, ich habe Commit-Hooks, die alles ausführen, was durch Splint (und mehrere andere Lints) geändert wurde, sowie Tools, um sicherzustellen, dass ich nicht unnötigerweise Header einbinde, und um sicherzustellen, dass Einrückungen Tabulatoren sind, keine Leerzeichen usw.
Tim Post
Technische Lösungen helfen nicht, wenn die Entwickler nicht verpflichtet sind, sie zu verwenden.
Robert Harvey
2

Hier ist mein 3-Stufen-Plan:

  1. Feuern Sie die Programmierer ab
  2. Stellen Sie einige Software-Ingenieure ein
  3. ...
  4. Profitieren!

: D

Im Ernst, wenn sie nicht daran glauben, etwas anderes als Code zu schreiben, brauchen Sie ein abgerundeteres Team. Eine Programmiererin, in der ich gearbeitet habe, hat verschiedene Verzeichnisse auf dem Computer als CM verwendet. Wir haben uns fast ein Jahr lang mit ihrem Programmierer gestritten (da Änderungen beim Kopieren und Einfügen von altem Code zu Fehlern führen würden). Wir haben sie schließlich einfach gefeuert.

Stephen Furlani
quelle
2
  1. Machen Sie sie darauf aufmerksam, wenn sie gegen Grundregeln verstoßen.
  2. Warten Sie, bis sie Fehler gefunden haben, die sie einfach nicht finden können, oder bis sie mit einer Funktionsanforderung konfrontiert werden, die sie aufgrund ihres unflexiblen Codes einfach nicht implementieren können.
  3. Erinnern Sie sie an das, was Sie vorher gesagt hatten.
  4. Lassen Sie sie für eine Weile in ihrer eigenen Scheiße ertrinken.
  5. Nehmen Sie sich Zeit, um den fraglichen Code umzugestalten, die Fehler zu isolieren / Infrastruktur bereitzustellen, um neue Funktionen zu integrieren. Nehmen Sie sich etwas Zeit, um zu erklären, was Sie getan haben.

Alternativ ist es das grausamste, aber sehr überzeugendste, ihnen eine extrem schlecht geschriebene Codebasis zu überlassen, wenn ein enger Zeitplan eingehalten wird. : D
Lassen Sie sie zur Abwechslung eine gut geschriebene Codebasis mit einem engen Zeitplan beibehalten.

Im Allgemeinen bedeutet die mangelnde Bereitschaft, bestimmte Standards anzupassen, einen Mangel an Erfahrung in der Teamarbeit.

Am Ende lernen die Menschen nur aus Fehlern. Beheben Sie NIEMALS Probleme, die auf der Sturheit einer anderen Person beruhen. Wenn es für das Projekt wirklich wichtig ist (dh Ihr Unternehmen wird verklagt, wenn Sie nicht innerhalb von N Tagen liefern), stellen Sie es zuerst aus dem Projekt.

back2dos
quelle
Ich liebe es. Tolles Rezept, um jemanden dazu zu bringen, dich zu hassen. ;)
Roman Zenka
@ Roman Zenka: Möglicherweise ja. Aber wenn die Wahl zwischen gehasst und frustriert ist, weil Sie ein NNPP im Team haben, bevorzuge ich die erste Option;)
back2dos
Zu diesem Zeitpunkt müssen sie von der Gehaltsliste gestrichen werden.
JeffO
Daran habe ich tatsächlich gearbeitet! Und sie hassen mich nicht. Die Schlussfolgerung ist, dass jeder sich in seiner eigenen Scheiße wohl fühlt. Und das macht diese Aufgabe so schwierig.
Llistes Sugra
1

Ich denke, Sie als Programmierer werden Ihre Einstellung zu diesen von Ihnen angesprochenen Themen erst ändern, wenn Sie erkennen, dass diese Dinge zu einem Nutzen oder Vorteil für Sie führen werden. Erkläre ihnen, warum sie diese Dinge tun sollen. Lassen Sie sie die Vorteile noch besser erleben.

Flo
quelle
1

Stellen Sie einen professionellen Software-Ingenieur ein. Und dann am schwächsten feuern. Dann ersetzen Sie langsam diejenigen, die nicht adoptieren können. Solche Leute zu haben, kann langfristig mehr Schaden als Gewinn bringen.

Die Hauptidee dabei ist, dass der Fachmann den größten Teil seiner Arbeit erledigt und andere entlassen werden, was nicht zu einer Verringerung der wertvollen Humanressourcen führt.

Konstantin Petrukhnov
quelle
1
Dies ist eine großartige Möglichkeit, um einen Mangel an Führungsqualitäten und die Fähigkeit, weniger erfahrene Personen zu betreuen, auszugleichen. Wenn Ihre Überredungskünste scheitern, fangen Sie einfach an, alle Leute zu feuern, die nicht mit Ihnen übereinstimmen.
jmort253
@ jmort253, Wenn ich eine Chance habe, würde ich jeden Programmierer feuern, der sich nicht regelmäßig zur Versionskontrolle verpflichtet. Aus Autorenwörtern geht hervor, dass ALLE Programmierer sehr unerfahren sind und nicht lernen und sich verbessern wollen.
Konstantin Petrukhnov
1

Es ist ein bisschen ekelhaft, aber ich habe Code Complete für ein paar Monate im Badezimmer liegen lassen. Ich bin nicht sicher, ob es effektiv war, aber es schien zu der Zeit eine gute Idee zu sein.

Peter Turner
quelle
0

Was sind die Konsequenzen für die Nichteinhaltung der Regeln und die Belohnungen für die Einhaltung der Regeln? Wenn die Antwort die gleiche ist - nichts - viel Glück, wenn ich etwas Traktion bekomme. Ich schlage einen abgestuften Ansatz vor. Nehmen Sie sie zuerst zusammen und besprechen Sie, ob sie die Regeln einhalten. Der nächste Schritt besteht darin, sie in Codeüberprüfungen einzuschließen. Sie können auch Karotten und Peitschen probieren. So etwas wie jeder, der eine Akte über Nacht ausgecheckt lässt, muss Donuts zum nächsten wöchentlichen Treffen mitbringen. Eine Karotte kann jeder sein, der die Regeln für einen ganzen Monat befolgt und ein Wochenende in Vegas bekommt. Für zwei.

Oder feuern Sie den schlimmsten Täter und lassen Sie den Rest ausschwitzen.

SnoopDougieDoug
quelle
Eeep! Sie haben einen Sole-Checkout-Typ von VCS? Geh mit dem Jahrhundert, Mann!
David Thornley
0

Lassen Sie sie unter den Folgen leiden, die Sie vermeiden möchten, indem Sie diese Regeln anwenden. Nur so können sie wirklich verstehen, warum Sie fragen, z. B.: Machen Sie ein kleines, kontrolliertes Durcheinander, das sie korrigieren müssen.

dukeofgaming
quelle
0

Wenn diese Crew wirklich Probleme beim Einchecken von Änderungen hat, sich an die Trennung von Bedenken hält und keine magischen Konstanten fest programmiert , würde ich die gesamte Crew abfeuern und sie durch echte Programmierer 1 ersetzen, die sich so schnell wie möglich um ihr Handwerk kümmern. Sei es einer nach dem anderen oder eine Menge, die ich nicht sagen kann, aber diese Joker müssen gehen.

Die Art der Codierung, die Sie beschreiben, eignet sich für Einweg-Skripts, die nur einmal verwendet werden können. Es ist nicht so, wie man eine echte Anwendung erstellt. Wenn sie als professionelle Programmierer bezahlt werden, ist es ihre Aufgabe, so etwas zu wissen.


1 Dies wird oft als Scherzbegriff für imaginäre Personen verwendet, die ihren Code direkt in Binärform oder in etwas ähnlich Lächerlichem schreiben. Hier scherze ich nicht. Ich bin ein ziemlich unerfahrener Programmierer und ich würde diese Dinge nicht erfahren müssen, weil mir mein Handwerk am Herzen liegt. Dies sind keine echten Programmierer, mit denen Sie es zu tun haben.

Aaronasterling
quelle
Ich bin mit allem einverstanden, außer dem feuernden Teil. Wir wünschen Ihnen viel Glück beim Löschen aller anderen wichtigen Aufgaben, an denen Sie als Manager arbeiten, einschließlich der Einhaltung von Fristen und Meilensteinen für Ihre Kunden, um Ihr gesamtes erfahrenes Personal durch Personen zu ersetzen, die Code kommentieren können, aber keine Domänenkenntnisse haben.
jmort253
0

Die Aufgabe eines Managers ist es, nicht der Freund des Mitarbeiters zu sein, manchmal muss man der Bösewicht sein. Das Erzwingen von Codierungsstandards und -verpflichtungen, die Verweigerung der Einhaltung von Proscibed-Architekturen, die Nichtverwendung vorgeschriebener Tools usw. sind die Zeiten, in denen Sie unbeliebt sein müssen.

Drücken Sie die Richtlinien klar aus. Führen Sie formelle Codeüberprüfungen durch und prüfen Sie, ob die Richtlinien eingehalten werden. Erlauben Sie ihnen nicht, zu einer anderen Aufgabe zu wechseln, bis alle Probleme aus der Codeüberprüfung entschieden sind.

Wenn sich die Richtlinie darauf bezieht, keinen Code festzuschreiben, ist eine schriftliche Warnung erforderlich, wenn sie dies nicht tun können, wenn sie dazu aufgefordert werden. Wenn sie keinen Code schreiben, haben sie für Sie keinen geschrieben.

Wenn sie sich nicht verbessern, nachdem ihnen eine angemessene Chance zur Verbesserung eingeräumt wurde, feuern Sie sie ab. Unprofessionelle Entwickler belasten Ihr Team, egal welche Art von Code sie schreiben. Sie beeinflussen andere mit ihrem Mangel an Professionalität und es ist nicht zu tolerieren. Sie sind keine guten Leute, die man auf jeden Fall behalten kann. Gute Entwickler schreiben ihren Code fest, gute Entwickler folgen Architekturentscheidungen, auch wenn sie ihnen nicht zustimmen, und gute Entwickler schreiben keinen harten Code. Sie werden nichts außer Kopfschmerzen verpassen, wenn Sie die Cowboy-Programmierer loswerden.

HLGEM
quelle