Wie kann verhindert werden, dass (jüngere) Entwickler falsche Entscheidungen treffen / schlechter Code?

8

Sie können nicht über die Entwickler schweben und alle Entscheidungen, die sie treffen, in Frage stellen, z. B. architektonische Entscheidungen, massive Codefiles (5k LOC), keine Code-Kommentierung oder Dokumentation usw.

Ich verwende einige Check-in-Richtlinien in TFS 2005, wie Changeset Comments Policy, WorkItems, regelmäßige Code-Reviews.

Was funktioniert in Ihrem Unternehmen am besten?

Bisher:

  • Code Bewertungen (von den meisten)
  • Mentoring / Unterricht
  • Paarprogrammierung

Aber niemand erwähnt die Möglichkeiten wie Check-in-Richtlinien, Code-Analyse, Code-Metriken. Benutzt jemand dies als eine Methode, um Junioren zu unterrichten?

    
Ralf de Kleine 21.09.2009, 19:17
quelle

11 Antworten

22

Code-Bewertungen

Wenn Sie Überprüfungen coden, lernen sie schneller, sehen die Best Practices und so weiter. An deinem Ende wirst du in der Lage sein zu sehen, was sie tun und mehr Kontrolle darüber zu haben, um sicherzustellen, dass sie nicht alles zerstören. Wenn sie schließlich wissen, dass ihr Code überprüft wird, werden sie härter arbeiten, um es besser zu machen.

Es gibt viele Posts über diese hier auf SO , werfen Sie einen Blick !

    
marcgg 21.09.2009, 19:18
quelle
9

Sie könnten eine paarweise Programmierung versuchen.

koppeln Sie den Jr. Dev mit jemandem, der älter ist, der bei den Code-Problemen helfen würde und den Neuling in die Kultur, Standards usw. seines neuen Heims "einweihen" würde.

    
Muad'Dib 21.09.2009 19:24
quelle
8

Warum verhindern? Es ist wichtig, dass Juniorentwickler ihre eigenen Fehler machen, von denen sie lernen können. Was Sie wirklich wollen, ist ein Weg, um zu verhindern, dass diese Fehler schwerwiegende Auswirkungen haben, und dies ist in der Regel durch strenge Code-Reviews machbar.

    
shoosh 21.09.2009 19:22
quelle
5

Sie können es nicht verhindern, wenn Sie nicht die Hand am Netzkabel des Terminals halten. Wenn Ihr VCS Niederlassungen unterstützt, sollten Sie regelmäßig die Zweigstellen der Juniorentwickler überprüfen, um sicherzustellen, dass sie auf dem richtigen Weg sind. "Periodisch" hängt von der Größe der Aufgabe und dem Verlauf des Entwicklers ab.

    
John Millikin 21.09.2009 19:20
quelle
3
  

Wie viel Zeit würden Sie (r Unternehmen) im Durchschnitt pro Person für Mentoring ausgeben?

  • 3-6 Stunden (Einführung in die Software / Produkt) am ersten Tag.
  • 1-2 Stunden pro Tag (Fragen beantworten) für die nächste Woche oder zwei.
  • 2-4 Stunden pro Woche (Code Reviews) danach für die nächsten Monate.
ChrisW 21.09.2009 19:40
quelle
3

Holen Sie sich eine Kopie von Code Complete und teilen Sie jedem Junior-Entwickler mit, dass er mindestens eine Stunde pro Tag lesen soll.

Nein, noch besser, mach das für ALLE Entwickler.

    
Konamiman 22.09.2009 06:55
quelle
2

Code Bewertungen (wie von Marcgg erwähnt), Mentoring, Paarung mit erfahrenem Personal, Training.

Geben Sie ihnen eine Chance zu lernen und sogar Fehler zu machen, aber auf eine Weise, dass sie sich unterstützt fühlen.

    
klabranche 21.09.2009 19:23
quelle
2

Etwas, was Sie tun können, um eine gute Programmierpraxis zu erzwingen

  • Regelmäßige Code-Überprüfung
  • Tool-Verwendung wie (Nachschärfer oder, falls möglich, andere) (für .net)
  • Verwendung bestimmter Vorlagen für die Codierung (kann Teil des Anleitungspakets sein)
  • Verwendung von FxCop / stylecop (angepasst an Ihre Anforderungen) (für .net).
  • TFS-Check-in-Richtlinien (einschließlich benutzerdefinierter Check-in-Richtlinien gemäß Ihrer Anforderung) Ein Beispiel finden Sie hier Benutzerdefinierte TFS-Check-In-Richtlinie
  • Periodisches Training von besseren Programmierpraktiken in verschiedenen Bereichen wie UI, Web, Scripting, Performance, Exception Handling und anderen Bereichen, die Ihnen wichtig erscheinen mögen.

Aber der wichtigste Teil ist die regelmäßige Überprüfung durch Senior Tech. Mitglieder des Teams. Um ein Beispiel zu geben, können Sie auch Peer-Programmierung für einige kritische Module durchführen.

Bitten Sie die Teammitglieder, einige der von SO-Mitgliedern empfohlenen Bücher zu lesen Welches Entwicklungsbuch hat Sie als Entwickler am meisten beeinflusst?

Ein unmittelbares Buch, das mir in den Sinn kommt, ist

alt text http://images.amazon.com/images/P/0735619670.01._SX140_SY225_SCLZZZZZZZ_.jpg alt text http://images.amazon.com/images/P/0132350882.01._SX140_SY225_SCLZZZZZZZ_.jpg alt text http://images.amazon.com/images/P/0131857258.01._SX140_SY225_SCLZZZZZZZ_.jpg alt text http://assets3.pragprog.com/images/covers/190x228/pad.jpg

Lassen Sie sie immer wieder gute Praktiken lesen, damit dies zur Gewohnheit wird.

Das sind nur meine Gedanken :) Einige davon beschäftige ich in meiner derzeitigen täglichen Arbeit.

    
rajesh pillai 22.09.2009 07:06
quelle
1

Bringen Sie ihnen die Vorteile bei. Ich bin sicher, Code-Reviews würden auch helfen. Lasst sie auch aus ihren Fehlern lernen.

    
Daniel A. White 21.09.2009 19:19
quelle
1

Wenn Sie die Zeitpläne für Ihre Projekte schätzen, können Sie die Erfahrung Ihres Entwicklungsteams miterleben. Lass sie Fehler machen, berichtige sie und lerne daraus.

    
Pete Kirkham 21.09.2009 19:20
quelle
1

FxCop , das mit Check-in-Richtlinien und / oder kontinuierlicher Integration verwendet wird, kann helfen. Es ist jedoch kein Ersatz für manuelle Code-Reviews und Mentoring.

    
TrueWill 21.09.2009 23:49
quelle

Tags und Links