Mein Kollege ist ein netter Kerl, aber seine Leistung ist unterdurchschnittlich. Sag ich es meinem Chef? [geschlossen]

24

Ich war vor ungefähr drei Monaten mit einem Projekt befasst, das bis dahin von einem einzelnen, neu eingestellten Entwickler entwickelt wurde, weil es ins Hintertreffen geriet. Um fair zu sein, das Projekt ist eine Schnittstelle zu einem Medizinprodukt, das viele Feinheiten aufweist und relativ komplex ist. Daher war es aus Managementsicht wahrscheinlich eine schlechte Entscheidung, eine Person in das Projekt einzubeziehen, die keine Erfahrung im Unternehmen hatte.

Wie auch immer, als ich anfing daran zu arbeiten, wurde mir klar, dass ... nun, es hat überhaupt nicht funktioniert. Die Benutzeroberfläche sah gut aus, aber sie hat eigentlich nicht viel getan, und was sie tat, war, dass sie falsch gemacht wurde. Um ehrlich zu sein, war ein Großteil davon auf die Tatsache zurückzuführen, dass dieser Entwickler nicht richtig darauf vorbereitet war, eine Schnittstelle zu unserem Gerät zu schreiben. Ich stellte jedoch auch schnell fest, dass der vorhandene Code spröde und äußerst schwierig zu warten war.

Jetzt behaupte ich nicht, der beste Programmierer der Welt zu sein. Ich arbeite mit vielen sehr intelligenten Leuten zusammen, die bessere Entwickler als ich sind. Ich versuche jedoch sehr, Code zu schreiben, der so einfach wie möglich und robust ist. Ich teste meine Checkins. Wenn ich sehe, dass mein Code unordentlich wird und sich schlecht verarbeiten lässt, ändere ich ihn. Ich habe ein paar Gespräche mit meinem Kollegen geführt, um ihm zu helfen, besseren Code zu schreiben. Das ist etwas schwierig, weil a) er über 20 Jahre Erfahrung auf dem Gebiet hat und ich nur 5 Jahre, und b) er als sogenannter "UX-Experte" angestellt wurde und andere ihn als einen erfahrenen Menschen ansehen.

Das heißt, ich sehe es einfach nicht. Er ist ein sehr netter Kerl und vernünftig, prüft aber immer wieder fragilen Code, arbeitet nur in den optimistischsten Fällen, und 9 von 10 Fällen behebe ich Fehler in seiner Arbeit. Sein Code wirkt nur amateurhaft und er hat offensichtlich nicht die Erfahrung, die er angeblich hatte, als er eingestellt wurde. Es ist zu einem Zeitpunkt gekommen, an dem die zusätzlichen Stunden, die ich damit verbringe, seinen Code zu überarbeiten und seine Fehler zu beheben, mich gefordert haben. So wie ich es sehe, habe ich zwei Möglichkeiten:

  1. Tu nichts, mach meinen Hintern kaputt, um sicherzustellen, dass dieses Produkt pünktlich und robust ist, und warte darauf, dass er in Zukunft versagt (ich werde nach der ersten Veröffentlichung nicht mehr mit ihm an diesem Projekt arbeiten.)
  2. Erzählen Sie meinem Chef von seiner Leistung. Mein Chef ist ein vernünftiger Mann, aber ich finde es einfach unangenehm, diesen Ansatz zu wählen. Ich mag es nicht (mangels eines besseren Ausdrucks), meine Mitarbeiter zu "verprügeln", und ich weiß nicht, wie er es nehmen wird.

Also, das war es auch schon. Ich habe versucht, dies mit meinem Kollegen durchzuarbeiten, indem ich erklärte, warum seine Implementierung nicht funktioniert oder wie sein Code wartungsfreundlicher gemacht werden könnte, aber er macht weiterhin dieselben Fehler. Ich bin sehr interessiert zu hören, wie andere mit ähnlichen Situationen umgegangen sind, insbesondere die derzeit im Management tätigen Personen. Vielen Dank im Voraus für alle Ratschläge, die Sie mir geben können.

LostInCode
quelle
3
Wäre es nicht viel einfacher, wenn er kein netter Kerl wäre? Es ist wirklich beschissen, in deiner Situation zu sein ... Ich habe keine wirklichen Ratschläge, ich befand mich in einer ähnlichen Situation, aber er hatte keine Bedeutung für das Wort "nett". Was also zu tun war, war äußerst klar und wurde sofort vom Management unterstützt, als ob sie nur nach einer Ausrede suchen würden. Aber jemand, den du wirklich magst, das ist hart. Viel Glück.
Yannis
1
@Yannis Rizos: ja ja das würde es bestimmt. Ich mag den Typen, und ich würde es hassen, dazu beizutragen, dass er möglicherweise seinen Job verliert, aber er scheint einfach nicht auf die Erwartungen zugeschnitten zu sein, die an einen Entwickler in einem kleinen Unternehmen gestellt werden, das viel leistet. Ich habe nur 5 Jahre Erfahrung und wurde hier nie mit einer "Junior" -Aufgabe betraut. Ich habe vom ersten Tag an Hardware-Interfaces geschrieben und es war großartig.
LostInCode
Was ist UX? .....
@ Thorbjørn Ravn Andersen: UX bedeutet normalerweise Benutzererfahrung
Matt Ellen

Antworten:

24

Ich würde zumindest die Möglichkeit in Betracht ziehen, dass, wenn er als UX-Typ eingestellt wurde, niemand wirklich großartigen Code von ihm erwartet - sie können erwarten, dass sein Code nur ein Prototyp sein sollte, der die UX beschreibt, und Es liegt an anderen Programmierern, darauf basierenden Produktionscode zu schreiben.

Nun, ich sage natürlich nicht , dass ist der Fall, aber es würde mich nicht so furchtbar überraschend zuzuschlagen. Zumindest nach meiner Erfahrung ist es nicht selten, dass UX-Leute hauptsächlich Dinge wie Prototypen und Storyboards produzieren. Wenn überhaupt, wenn der Typ wirklich speziell als UX-Spezialist engagiert wurde, bin ich schockiert über die Vorstellung, dass er überhaupt Code eincheckt. Ich bin mir ziemlich sicher, dass ich das noch nie gesehen habe.

Wenn der Typ wirklich ein UX-Spezialist ist, besteht die Heilung möglicherweise nicht darin, ihn dazu zu bringen, besseren Code zu produzieren, sondern ihn ganz aus der Codierung herauszuholen (zumindest alles andere als Prototypen). Wenn er ehrlich gesagt gut im UX-Design ist, liegt der wahre Fehler wahrscheinlich darin, ihn überhaupt zu bitten, Produktionscode zu schreiben. Stattdessen sollte er (höchstens) in einer UX-Prototyping-Sandbox arbeiten, in der sein Ergebnis verwendet wird, um die nächste Runde des real produzierten Codes zu steuern, der jedoch nie als Produktionscode eingecheckt wurde.

Jerry Sarg
quelle
Ich dachte ein bisschen darüber nach und wunderte mich. Ich war nicht in den Einstellungsprozess involviert und von ihm wurde definitiv erwartet, dass er programmiert, aber vielleicht hatte er als UX-Typ nicht viel Erfahrung mit Programmierung. Das heißt, es ist ein bisschen schwer zu glauben, da er seit über 20 Jahren Software entwickelt und in den 80ern nicht viel "UX" los war.
LostInCode
Nein, aber wenn er 10 Jahre lang wenig programmiert hat, kann er ziemlich verrostet sein (vor allem, wenn er anfangs noch ein bisschen schwach im Programmieren war). OTOH, wenn Sie mehr als 90 Stunden in der Woche arbeiten, haben Sie auf jeden Fall berechtigten Grund, mit Ihrem Chef zu sprechen, obwohl ich mich eher darauf konzentrieren würde, dieses Problem zu beheben, als auf die Schwäche dieses Mitarbeiters.
Jerry Coffin
18

Ich versuche eine Regel zu haben, nach der ich meinen Chef immer über Dinge informiere, die das Projekt betreffen. Positiv und negativ ... und in solchen Fällen versuche ich, Dinge wie den Code der Person vorzuwerfen, die ihn geschrieben hat. Es hört sich viel weniger so an, als würden Sie einen Mitarbeiter verprügeln, sondern vielmehr, als würden Sie versuchen, die Qualität des Produkts zu verbessern.

Aus Sicht des Managements gibt es drei Möglichkeiten, mit Mitarbeitern in dieser Situation umzugehen:

  1. Beherrsche ihre Schwächen
  2. Spielen Sie mit ihren Stärken
  3. Werde sie los (nicht wirklich deine Wahl)

Beherrschen Sie ihre Schwächen, indem Sie Hilfe von außen in Anspruch nehmen.

Hey Boss, ich mache mir ein bisschen Sorgen um den Zustand des Codes ... er ist ziemlich zerbrechlich und bricht viel. Es wird einige Arbeit erfordern, um es in einen Zustand zu bringen, in dem ich das Gefühl habe, dass man ihm vertrauen kann. Gibt es eine Möglichkeit, einen der Architekten für ein oder zwei Tage auszuleihen, um zu sehen, ob wir ein gutes Design entwickeln können?

Sie möchten nicht, dass sich eine andere Person dem Projekt anschließt, sondern möchten für kurze Zeit mehr Experten-Input. Erstellen Sie alle benötigten Dokumente, UML-Diagramme und Codefragmente, wenn der Architekt dies wünscht. Sie werden sehen, in welchem ​​Zustand sich der Code befindet, und dann lässt Ihr Chef jemanden Ihre Meinung wiederholen.

Aus dem Meeting wird hoffentlich ein besseres Design hervorgehen, dem sowohl Sie als auch der andere Entwickler folgen können, ohne dass er viel davon vermasselt. Das ist es, was in vielen Fällen entworfen und spezifiziert wird: Den Schaden, den schlechte Entwickler anrichten können, reduzieren.

Spielen Sie mit ihren Stärken

Hey Boss, ich arbeite mit dem Code für Projekt x und es ist großartig. Andererseits könnte der Code einiges an Arbeit vertragen. Ich denke, das Projekt wäre besser dran, wenn [ux guy] sich mehr auf das UX konzentrieren könnte, während ich einige Umgestaltungen vornehme, um es in einen stabileren Zustand zu bringen. Sobald das UX stabil ist, könnte Projekt b wahrscheinlich seinen Midas-Touch verwenden.

Hier wird Ihr Chef wahrscheinlich durchschauen. dass du ihm sagst, dass der andere Entwickler nicht sehr gut ist ... aber zumindest bist du kein Arschloch. Und wenn er ehrlich gesagt wirklich gut in der UX-Arbeit ist, findet er möglicherweise eine stabile Position, die sich auf jedes Projekt stützt und es vom Standpunkt der Benutzerfreundlichkeit aus großartig macht. Ich stelle mir vor, dass es ihm auch so besser gefallen würde.

Steven Evers
quelle
+1 Für technische Daten und Diagramme, die den Schaden reduzieren, den schlechte Entwickler anrichten können. Wie wahr es ist.
maple_shaft
+1, um den Fokus auf schlechten Code zu legen, anstatt das Schuldspiel zu spielen. Internecine-Konflikte wirken sich immer negativ auf den Zeitplan und die Codequalität im Allgemeinen aus.
TMN
9

Hören Sie auf , seine Fehler wiederholt zu beheben. Er wird nicht lernen; Ich weiß, ich würde nicht.

Das Programmieren ist weitgehend eine logische Aufgabe, beinhaltet aber auch das Speichern von Daten. Wenn Sie häufig allgemeinen Code schreiben, erinnern Sie sich daran, wie Sie die Lösung das letzte Mal implementiert haben , anstatt alles erneut herauszufinden. Wenn er nie den richtigen Code implementiert hat, kann ich sehen, warum er dieselben Fehler wiederholt.

Zeigen Sie ihm, was er falsch gemacht hat, und beheben Sie es vielleicht beim ersten Mal. Lassen Sie ihn für alle weiteren Vorkommnisse desselben Vorfalls das Update implementieren, das Sie ihm gezeigt haben.

Craige
quelle
5

Ich wäre aus ein paar Gründen sehr vorsichtig:

  1. Wie sind Sie sicher, dass Sie nach der ersten Veröffentlichung nicht mehr mit ihm zusammenarbeiten werden? Ihr Management könnte sich denken: "Was für ein Team, sehen Sie, wie sie diese Großartigkeit zusammen gebracht haben!" und will dich zusammenhalten.

  2. Wenn Sie zu Ihrem Chef gehen, wie technisch möchten Sie versuchen, Ihre Position zu erklären? Wie viel Dokumentation haben Sie über die schlechte Leistung Ihrer Mitarbeiter?

Das wären die Fallstricke, die ich von dem notieren würde, was Sie gefragt haben. Ich würde vorschlagen, dass Sie ihn nach dem Code fragen und herausfinden, ob er Rechtfertigungen dafür hat, warum es so ist. Vielleicht läuft er im Kreis, während er es programmiert, was einige Probleme verursacht. Der Kreis ist der Ort, an dem Sie etwas codieren, und dann durch eine Reihe von Änderungen fast genau an dem Punkt enden, an dem Sie begonnen haben, als die Änderungsliste eines anderen am Ende abgebrochen wurde. Ich war in solchen Situationen, in denen sich Änderungen ändern und Änderungen rückgängig machen, die ziemlich schnell müde werden.

JB King
quelle
Ja, ich hatte ähnliche Gedanken. Ich habe Angst , tatsächlich von Nummer 1 , wenn ich nicht etwas zu meinem Chef sagen , weil ich bin ehrlich gesagt nicht ein Fan der 90+ Stunden - Wochen ich Putting wurde in diese Sache richtig zu machen. Ich hätte kein Problem damit, meinem Chef zu zeigen, was ich meine, und er würde die Probleme erkennen, aber ... ich weiß nur nicht, wie ich davonkommen werde, wenn ich es tue. Ich habe versucht, dies mit meinem Kollegen auf höfliche, hilfreiche Weise zu klären, aber er macht immer wieder die gleichen Fehler. Danke für die Eingabe.
LostInCode
5

Was sind die Konsequenzen, wenn Sie nicht alle Arbeiten wiederholen und das Projekt einfach scheitern lassen? Die Konsequenzen für dich meine ich.

Sicherlich ist jemand von seinem Erfahrungsniveau und seiner Position nicht zufällig dorthin gekommen. Entweder ist seine Arbeit nicht so schlecht, wie Sie es wahrnehmen, oder seine gesamte Karriere setzt sich aus Menschen wie Ihnen zusammen, die ihn mit sich herumtragen.

Wenn Sie mehr als 50 Stunden pro Woche an einem Projekt arbeiten, ist dies ein schwerwiegender Fehler. Sie können sich selbst in Verlegenheit bringen, indem Sie die PM nicht darauf aufmerksam machen oder das Projekt verlassen. Ich bin ein starker Befürworter der Arbeit SMARTER, nicht HÄRTER.

Arbeiten Sie mit einem Smart 50, und wenn das Projekt nicht funktioniert, dann IST ES NICHT IHRE SCHULD. Wenn es an seiner Inkompetenz scheitert und sie dich beschuldigen, dann ist das wahrscheinlich nicht die Umgebung, für die du sowieso arbeiten möchtest.

So viele Freunde von mir arbeiten GUT über die typischen 40 / Woche an einem schlecht verwalteten Projekt, weil sie Angst vor dem Scheitern haben, wenn sie nicht wissen, wie wenig das Scheitern ODER der Erfolg sich direkt auf Ihre gesamte Karriere auswirkt.

Über 80% der Projekte scheitern, das ist keine Schande.

maple_shaft
quelle
+1 für liebevolle Annäherung und für 69% der erfundenen
Statistiknummern
@ Kawas, LOL, ich vermutete diese Statistik aber aus dem Gedächtnis. Ich habe irgendwo gelesen, dass fast 80% der Projekte insofern als gescheitert gelten, als sie 1) zu teuer waren, 2) zu wenig oder 3) den Abgabetermin nicht eingehalten und zu spät abgeschlossen haben.
maple_shaft
Ich habe Entwickler mit 20 Jahren Erfahrung gesehen, die überhaupt nicht codieren können. Und arbeiten Sie keine intelligenten 50 Stunden pro Woche, es sei denn, Sie haben ernsthafte Chancen oder werden weit über dem Markt bezahlt. Arbeiten Sie mit einem Smart 40 und starten Sie eine Jobsuche, wenn dies nicht ausreicht.
Kevin Cline
4

Es wird als Peer Review bezeichnet. Ihr Manager erwartet dies von Ihnen und muss wissen, wo die Zeit seines wertvollen Entwicklers verbracht wird. Ich bin überrascht, dass er das noch nicht weiß - aber ich habe schon wieder Schlimmeres gesehen.

Sprich nicht mit ihm in Bezug auf den anderen, sondern in Bezug auf die tägliche Arbeit, die du tust. Wenn das heißt, seinen Code zu zerstören, dann soll es so sein. Gehen Sie mit Check-in-Links usw. bewaffnet, um eine Art Beweis für Ihre tägliche Arbeit zu geben. Ihr Manager möchte vielleicht genau das von Ihnen - er bringt die 20 Jahre UX ein und Sie erhalten den robusten Code. Anstatt Drahtmodelle zu erstellen, schreibt er nur Code auf Prototypebene. Sprechen Sie mit Ihrem Manager.

Und ich hoffe, Sie wurden nicht als Babysitter eingestellt. Viel Glück.

Subu Sankara Subramanian
quelle
3

Wird das Projekt früher gestartet, wenn Sie seine Arbeit nicht neu schreiben / wiederholen mussten? Hilft es, das Budget zu unterschreiten? Sie müssen nicht verprügeln, um Ihre Bedenken privat zu äußern. Hier machen die meisten Leute einen Fehler, sie beklagen sich, ohne Lösungen anzubieten.

Gibt es bestimmte Empfehlungen, die Sie Ihrem Chef anbieten können, um das Ergebnis zu verbessern? Bessere Dokumentation? Robuste Benutzertests? Ihr Ziel ist es, das Unternehmen, das Projekt, Ihren Kollegen und sich selbst erfolgreich zu machen. Wenn Sie so tun, als gäbe es kein Problem, ist dies für drei der vier ein Fehlschlag - und Sie sind nicht der Glückliche.

Ray Mitchell
quelle
1

Sie müssen so schnell wie möglich zu Ihrem Chef gehen und ihm klar sagen, was Sie hier gesagt haben.

Zunächst einmal ist dies ein medizinisches Gerät. Könnte jemand verletzt werden oder sterben, wenn es einen Bug gibt? Der Code, von dem das Leben oder die Gesundheit der Menschen abhängt, muss so robust wie möglich sein, und darf nicht von einem Optimisten für das Best-Case-Szenario geschrieben werden.

Okay, setzen Sie meinen Ex-Manager-Hut auf ... Sie haben keine Ahnung, ob Ihr Chef davon weiß oder wie er darauf reagiert, wenn es ihm neu ist. Aber wenn er es nicht weiß, muss er es, und Sie sollten ihn nicht erraten, indem Sie diese Informationen verbergen. Wenn er mit Ihrem Kollegen, der auf diese Weise codiert, einverstanden ist, wird er Sie informieren.

Ich bin vor vielen Jahren auf eine solche Situation gestoßen. Ein "Networking-Guru" und ich arbeiteten als Auftragnehmer an einem Proof-of-Concept. Tatsächlich brachte er kaum etwas zustande und meistens machte er Patzer. Eines Tages sagte uns unser Chef, dass wir eine Demo vor uns hätten. Bald bekam der "Networking-Guru" eine Menge vertraulicher Anrufe, und er sagte mir schließlich, dass er vor der Demo aufbrechen würde, um einen weiteren Vertrags-Gig zu machen. Sobald ich unseren Chef in Ruhe lassen konnte, erzählte ich ihm davon. Er hat den "Netzwerk-Guru" abgeladen und jemanden hinzugezogen, den ich empfohlen habe und der in drei Tagen mehr Code herausgebracht hat als der "Guru" in drei Monaten. Die Demo war ein Riesenerfolg - aber wenn ich geschwiegen hätte, wäre das Projekt völlig gescheitert.

Bob Murphy
quelle
1
Ich würde auch vorschlagen, dass der Autor seinem Manager mitteilt, wofür er die Zeit verwendet.
Ramhound
0

Ja, sag es deinem Chef. Dann wirst du sehen, ob du nicht derjenige bist, der nicht da ist. Es ist die Aufgabe des Managers, zu wissen, wie das Team arbeitet, und wenn der Chef es noch nicht bemerkt hat, kümmert er sich vielleicht nicht so sehr wie Sie um die richtige Codierung - wie viele, viele Orte, an denen ich schon war.

Und unter all den verschiedenen Arbeitsplätzen ist das schon eine große Zahl, wenn ich eine Hand voll (was 5 bedeutet) Freunde von allen habe. Sie hatten alle nette Jungs und Mädels, aber Sie werden keine Freundschaft verlieren, wenn Sie Ihren Job machen - wenn Sie sie verlieren, ist das eine gute Sache. In Ihrem Fall würde er den Job mehr schätzen als Sie.

Zugegeben, es ist kein Versuch, ihn feuern zu lassen. Es zeigt nur Ihre Besorgnis über das Wohlergehen des Projekts, weshalb Sie alle da sind (oder sein sollten).

Schließlich haben Sie versucht, mit ihm zu sprechen, und wenn Sie nichts unternehmen, riskieren Sie tatsächlich Ihren Job dort.

cregox
quelle
2
Ich habe nicht erwähnt, dass ich schon oft versucht habe zu erklären, warum sein Code nicht funktioniert oder wie er besser sein könnte. Leider wiederholt er immer wieder die gleichen Fehler.
LostInCode
Ich hatte das gleiche Problem mit einem anderen Teammitglied, obwohl es glücklicherweise ein "kleines" Klassenprojekt war. Versuchen Sie, ihn während der Arbeit am Code zu unterrichten, indem Sie ihn mit dem Pairing-Programm verbinden. Dies lässt ihn hoffentlich einige seiner Fehler selbst sehen, anstatt dass Sie sagen, dass dies falsch ist. Er kann auch sehen, wie jemand von der Firma arbeitet.
Jonathan
Seien Sie vorsichtig, wenn Sie zu besorgt über das Projekt erscheinen. Viele Orte leiden unter fest verankertem Management und oft sind sie mehr besorgt über Ihre Loyalität zu sich selbst über die des Projekts. Sie selbst sehen das Projekt möglicherweise nicht so wichtig wie Sie, weshalb sie sich möglicherweise nie darum gekümmert haben, die schlechte Leistung der anderen Entwickler in den Griff zu bekommen.
maple_shaft
@LostInCode Ja, und mein Rat wurde nicht viel besser, selbst nachdem ich ihn vollständig bearbeitet hatte, um ihn mit den neuen Informationen abzugleichen. Ich bin wohl Chandler.
Cregox