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:
- 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.)
- 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.
quelle
Antworten:
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.
quelle
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:
Beherrschen Sie ihre Schwächen, indem Sie Hilfe von außen in Anspruch nehmen.
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
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.
quelle
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.
quelle
Ich wäre aus ein paar Gründen sehr vorsichtig:
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.
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle