Frage:
Wie gehe ich mit inkompetentem Blei um?
Lost
2016-02-06 00:32:55 UTC
view on stackexchange narkive permalink

Okay, wir sind ein Zwei-Personen-Team, das direkt an unseren Direktor berichtet. Ich habe 4-5 Jahre Erfahrung und mein Teamkollege hat mehr als 20 Jahre Erfahrung. Aus offensichtlichen Gründen ist er meine Führung. Wir sind beide Programmierer und interagieren direkt mit unseren Kunden.

Nun, ich schätze seinen Codierungsstil überhaupt nicht. Meiner Meinung nach lautet sein Code 'Schnell und schmutzig' . Dies kann nur meine Meinung sein und hat möglicherweise nichts mit den Fakten zu tun. Ich versuche jedoch, mich von den Projekten fernzuhalten, an denen er arbeitet, damit ich nicht etwas verteidigen muss, mit dem ich nicht einverstanden bin.

Bisher hat es für mich geklappt. Letzte Woche ging sein Projekt jedoch in die Luft und aus irgendeinem Grund gab er vor, beschäftigt zu sein, und ich musste den Code reparieren.

Nun, da mein Regisseur alle sofortigen Codeänderungen in der Produktion genehmigen muss. Er hatte die Gelegenheit, es sich anzusehen und war ziemlich unzufrieden mit der Tatsache, dass es Probleme in der Produktion gibt und dass die Qualität des Codes wirklich nicht so gut ist.

Nun, wieder möchte ich nicht Um gleichzeitig mit dem Zeigen der Finger zu beginnen, möchte ich nichts verteidigen, mit dem ich nicht einverstanden bin. Ich hatte keine Ahnung, was ich sagen sollte, wenn der Code und das System stark kritisiert wurden.

  • Ich möchte kein schlechter Teamplayer sein und ein Schuldspiel spielen.
  • Außerdem möchte ich nicht, dass mein Chef glaubt, ich hätte eine Rolle beim Schreiben eines solchen gespielt Code von geringer Qualität.

Wie übermittle ich diese Nachricht?

Wenn Sie ein Team sind, ist sein Code Ihr Code und Sie sind gleichermaßen für alle Teile jedes Systems verantwortlich. Wenn Sie sich nicht so verhalten, sind Sie kein Team.
Nebenbei bemerkt, der Titel Ihrer Frage deutet darauf hin, dass Sie mit dieser Person niemals effektiv umgehen können. Ihr Titel weist darauf hin, dass Ihnen ein grundlegendes Maß an Respekt fehlt, das für eine positive Interaktion erforderlich wäre.
`Ich habe 4-5 Jahre Erfahrung und mein Teamkollege hat mehr als 20 Jahre Erfahrung. Aus offensichtlichen Gründen ist er mein Anführer. ": Nein, das ist es nicht. Ich habe Entwickler mit 4-5 Jahren Erfahrung getroffen, die einem anderen Entwickler mit mehr als 20 Jahren Erfahrung die Hosen abschneiden können.
Wenn Ihr Direktor den Produktionscode genehmigen muss, bedeutet dies, dass er den "schnellen und schmutzigen Code" Ihres Leads gemäß den Unternehmensstandards als akzeptabel ansieht?
@JimG. Bitte missbrauchen Sie die Codesyntax nicht für Anführungszeichen. Kursiv in Kombination mit regulären Anführungszeichen ist die bevorzugte Methode zum Zitieren in Kommentaren.
Entweder ist diese Person der Teamleiter und daher für die Codequalität verantwortlich, oder Sie sind gleichberechtigt und berichten an denselben Manager. In keinem Szenario sollten Sie seinen schlechten Code verteidigen müssen. Abstimmung zum Schließen.
Ich denke, dass einige Leute Annahmen darüber treffen, wie Dinge am Arbeitsplatz des OP getan werden können. Es ist absolut nicht allgemein gültig, dass in einem Team jeder "gleichermaßen verantwortlich" für das Produkt ist. Das OP sollte im Rahmen der Situation festlegen, was er kann, und sich während der Crunch-Zeit des Fixes nicht beschweren, ABER das bedeutet nicht, dass er die Verantwortung für die Arbeit der anderen Person übernehmen muss, wenn er danach gefragt wird.
Mögliches Duplikat von [Was kann ich tun, um die mangelnde Anstrengung eines Mitarbeiters sichtbarer zu machen?] (Http://workplace.stackexchange.com/questions/23165/what-can-i-do-to-make-a-coworkers- mangelnde Anstrengung sichtbarer)
Fünf antworten:
user52889
2016-02-06 02:08:09 UTC
view on stackexchange narkive permalink

Arbeiten Sie nicht mehr in Silos.

Je mehr Sie die Kultur haben, "auf der Hälfte der Codebasis zu bleiben", desto wahrscheinlicher ist es, dass:

  • Code wird schief gehen, weil niemand Fragen stellt.
  • Es wird lange dauern, bis Sie Code finden und verstehen, wenn etwas schief geht.
  • Sie können nicht erklären, warum Design Es wurden Entscheidungen getroffen.
  • Sie brechen am Ende etwas anderes, wenn Sie den Code "reparieren", den Sie noch nie gesehen haben.
  • Sie sehen am Ende so aus, als würden Sie ihn nicht verstehen.

Da Sie gerade herausgefunden haben, dass Sie das Schuldspiel spielen, ob Sie wollen oder nicht: Letztendlich wird Ihre Antwort auf "Ich weiß nicht, das ist nicht meine" hinauslaufen Code ".

Im Moment können Sie versuchen, etwas diplomatischer zu sein:

Ich fürchte, ich bin damit nicht vertraut Teil der Codebasis.

Das ist nicht wirklich mein Stil, aber vielleicht hatte (Teamleiter) einen Grund, es so zu codieren.

Sie haben nicht Recht hineinspringen und kritisieren. Wenn Sie unterschiedliche Stile haben, ist es durchaus möglich, dass die Art und Weise, wie der Code geschrieben wird, Vorteile bietet, die Sie einfach nicht sehen. Selbst wenn nicht, hat Ihr Direktor diesen Code vermutlich schon einmal genehmigt und möglicherweise Ihren Lead eingestellt. Bieten Sie stattdessen verschiedene Methoden an: "Ich hätte diese zu einer Methode kombiniert" usw. In dieser Situation gibt es keine "gute" Antwort, sondern konzentrieren Sie sich auf die praktischen Aspekte, um den Fehler zu beheben und die Version zu testen und bereitzustellen.

... aber das wird beim nächsten Mal nicht funktionieren.

Sie haben immer noch eine Menge 'Problemcode', den Sie bis dahin ignoriert haben jetzt, kann es sich aber nicht leisten, weiter zu ignorieren. Ihr Teamleiter ist möglicherweise nicht über die Codequalität besorgt, aber wenn sein Code das nächste Mal umfällt, werden Sie gefragt, warum Sie das Problem nicht behoben haben.

  • Führen Sie Codeüberprüfungen durch.
  • Versuchen Sie, den Code des anderen zu dokumentieren, Randfälle zu erklären usw.
  • Stellen Sie sicher, dass Ihr gesamter Code getestet wird. Führen Sie die Codeabdeckung für Ihre Tests aus.
  • Teilen Sie Aufgaben so auf, dass einer von Ihnen Tests schreibt und der andere Code erzeugt, der die Tests erfüllt. Rollen tauschen.
  • Wenn eine neue Entwicklung ansteht, bitten Sie darum, Aufgaben zugewiesen zu werden, die Sie dazu zwingen, mit Code zu arbeiten, den Sie zuvor noch nicht verwendet haben.

Auch wenn Sie dies tun Setzen Sie sich am Ende nicht den dunkelsten Bereichen der Codebasis Ihrer Kollegen aus. Sie werden zumindest anfangen, genügend Muster in den Dingen zu bemerken, die Ihr Kollege tut, um Fehler beim nächsten Mal schneller zu diagnostizieren.

Ich habe noch keinen Weg gefunden, "schnelle und schmutzige" Codierer an Bord zu bringen, um Tests für ihren Code zu schreiben. Damit diese Antwort nützlicher ist, möchten Sie möglicherweise einige Vorschläge dazu machen.
Es gibt zwei Arten von "schnellen und schmutzigen" Codierern, auf die ich stoße. Diejenigen, die unerfahren sind und keine besseren Wege kennen. Dieser Typ kann trainiert werden. Dann gibt es die erfahrenen "schnellen und schmutzigen" Programmierer, die auch keine besseren Wege kennen, aber denken, dass ihr Weg optimal ist. Immerhin gibt es keine Zeit, dieses neue Fangled-Zeug namens Design zu verwenden. Daher ist die Ausbildung wertlos, weil sie der Meinung ist, dass sie die Lehrer sein sollten. Wie auch immer, ich habe selbst nicht herausgefunden, wie ich mit diesen Leuten umgehen soll. Über 20 Jahre und immer noch versuchen :(
jimm101
2016-02-06 01:17:56 UTC
view on stackexchange narkive permalink

Ehrliche, direkte Kommunikation ist in Ordnung. Bringen Sie Lösungen, keine Probleme. Sie können mit Ihrem Chef die folgenden Punkte ansprechen:

  1. Sie haben festgestellt, dass das Problem mit dem Produktionscode vermeidbar war.
  2. Ihr Fix hat das Problem behoben - aber nicht Erstellen Sie stabilen, wartbaren Code.
  3. Empfehlen Sie Codeüberprüfungen, um zukünftige Probleme zu vermeiden.
  4. ol>

    Codeüberprüfungen sind magische Orte, an denen Nachwuchsentwickler neue Techniken und Best Practices in die Produktion einführen können, ohne die Federn zu zerzausen. Der Fokus liegt auf dem Code, nicht auf der Person. Lassen Sie sich nicht über das aktuelle Beispiel hinaus herablassen, überanweisen oder verallgemeinern. Geben Sie einfach an, dass es für diesen speziellen Fall ein nützliches Muster gibt, mit dem Sie Erfolg hatten. Seien Sie genau über ein einzelnes Problem, das bei jeder Änderung auftreten kann. "Wenn wir dies ändern, geht Speicher verloren. Wenn wir dies ändern, schlägt dies bei schlechten Eingaben wie dieser, die zuvor aufgetreten sind, ordnungsgemäß fehl." In umstrittenen Situationen wie diesen "drehen Sie den Code" - jeder überprüft den Code, aber die Person zu Ihrer Linken in der Besprechung nimmt die Änderungen vor (oder die nächstgrößere oder den nächsten Geburtstag usw.). Jeder profitiert davon und niemand verliert zu diesem Zeitpunkt das Gesicht - obwohl Menschen, die die meisten Änderungen benötigen, im Laufe der Zeit offensichtlich werden.

"Einfacher Zustand, dass es für diesen speziellen Fall ein nützliches Muster gibt, mit dem Sie Erfolg hatten." - Der Name dafür ist Lehren.
@JoelEtherton Danke ... Ich habe den Wortlaut überarbeitet. Grundsätzlich geht es mir darum, keine Vorlesungen zu halten oder Unterricht zu halten, als ob er nichts wüsste. Die einfache Angabe von "Muster A funktioniert hier" funktioniert, aber "Muster A ist der Ort, an dem Sie dies und das tun. Die Vorteile sind dies. Es ist in diesem oder jenem Fall gut. Sie können erkennen, wann Sie ... [etc] verwenden müssen. ". Das ist die Konnotation von "lehren", die ich wollte.
Ich kann das graben. Ich wollte nur darauf hinweisen, dass Codeüberprüfungen von unschätzbarem Wert sind, aber es geht darum, offen zu sein, dass es eine bessere Idee gibt.
Code-Bewertungen sind nicht magisch. Einige Entwickler sind sehr defensiv und das wird sich bei einer Codeüberprüfung nicht ändern.
user8365
2016-02-06 01:52:44 UTC
view on stackexchange narkive permalink

Beheben des Problems

Sie können entweder den gleichen "Codierungsstil" fortsetzen und die unmittelbaren Probleme beheben oder sich die Zeit nehmen, um die allgemeinen Probleme zu beheben, die dies verursachen Codesatz. Ihr Chef muss sich entscheiden. Deshalb bekommt er das große Geld.

Hoffentlich gibt es eine Art Postmortem zu diesem Problem, und Ihr Team muss entscheiden, ob Sie dem anderen Entwickler erlauben, mit der schnellen und schmutzigen Programmierung fortzufahren

Auch hier muss Ihr Chef entscheiden, wie er vorankommen soll. Ich weiß nicht, warum Ihr Chef einen scheinbar höheren Standard für die Codierung des sr-Programmierers nicht erzwingt. Die technischen Schulden mussten letztendlich von allen bezahlt werden.

Alles, was Sie tun können, ist Vorschläge zu machen und Ihr Bestes zu geben, angesichts der Einschränkungen der Entscheidungen Ihres Chefs.

Martin York
2016-02-06 01:30:02 UTC
view on stackexchange narkive permalink

Wenn Sie als Team arbeiten, sind Sie beide für die Qualität des Codes verantwortlich (auch wenn Sie ihn nicht geschrieben haben). Der gesamte Code sollte auf Code überprüft und ein Konsens erzielt werden.

Wenn Sie Probleme haben, einen Konsens zu erzielen, installieren Sie automatisierte Tools, um die Validierung durchzuführen. Lassen Sie nur Commits zu, die die automatisierte Validierung bestehen.

Wie

  1. Angenommen, dieser Code war nicht Ihr Projekt.
  2. Sie haben nur den spezifischen Fehler (nicht das gesamte Projekt / die gesamte Datei) behoben, um Instabilität zu vermeiden.
  3. Schlagen Sie vor, wie die Prozesse insgesamt verbessert werden können.
  4. ol>
Jim G.
2016-02-06 03:15:58 UTC
view on stackexchange narkive permalink
  • Treffen Sie sich mit Ihrem Direktor und erklären Sie Ihre konstruktive Uneinigkeit mit dem Codierungsstil Ihres Teamleiters. Verwenden Sie Takt.
  • Bereiten Sie sich auf etwa 3 Codierungs-, Architektur- oder Prozessbeispiele vor, die Ihre Sichtweise unterstützen.
  • Abhängig von der Art der Situation und der Persönlichkeit des Teams Sie möchten möglicherweise den Teamleiter in dieses Meeting einbeziehen.
  • Erläutern Sie Ihren Standpunkt, aber streiten Sie sich nicht mit Ihrem Direktor. Hören Sie auf seine / ihre Meinung. Seien Sie bereit, die Besprechung in weniger als einer Stunde abzuschließen.
  • Verlassen Sie die Besprechung. Beende deinen Tag. Nach Hause gehen. Zu Abend essen. Schlafen Sie ein.
  • Bewerten Sie während Ihres Arbeitswegs am nächsten Arbeitstag Ihr Meeting mit Ihrem Direktor. War er / sie fair?
    • Wenn 'Ja' (auch wenn er / sie nicht mit Ihrem Standpunkt einverstanden war), dann seien Sie bereit, Ihre Arbeitsweise anzupassen (andere Leute haben mit einigen großartigen Antworten geantwortet Ratschläge).
    • Wenn 'Nein' oder wenn Sie das Gefühl haben, dass Sie nicht mit diesem Teamleiter koexistieren können, haben Sie zwei Möglichkeiten: 1. Fragen Sie Ihren Direktor, ob Sie in eine andere Abteilung wechseln können. 2. Beginnen Sie mit der Suche nach einem neuen Job.

Weitere Informationen finden Sie unter Ratschläge zur Suche nach einem neuen Job:

  • Verfolgen Sie diese Option nur als letzten Ausweg.
  • Versuchen Sie am Arbeitsplatz (und im Leben im Allgemeinen) nach besten Kräften, den Standpunkt der anderen Person zu sehen.
  • Aber letztendlich sollten Sie sich nach einem neuen Job umsehen, wenn Sie nicht in der Lage sind, Dinge zum Laufen zu bringen. Das Leben ist einfach zu kurz und es gibt viele Codierungsjobs.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...