Vertrauen des Senior-Programmierers zurückgewinnen [geschlossen]

21

Mein Chef hat herausgefunden, dass ich nicht so schlau bin, wie er dachte.

Ein Beispiel aus meiner Erfahrung:

Ich bin ein Junior-Programmierer und arbeite in einem Team von zwei Personen, meinem Chef (Senior-Programmierer) und mir.

Ich wurde beauftragt, eine interne Webanwendung für das Unternehmen zu entwickeln, in dem wir arbeiten. Ich habe das Back-End zum Front-End geschrieben (das Datenbankdesign war bereits vorhanden und die Servertechnologie wurde ausgewählt). Er überprüfte regelmäßig meine Fortschritte, indem er die Webanwendung in Aktion beobachtete und war zufrieden, dass sie herauskam. Als ich die Web-App beendet hatte, war er zufrieden damit, wie gut das Endprodukt ausgefallen ist.

Vor ein paar Tagen hat er sich für den Code interessiert, und ich habe ihm gesagt, welche Technologien ich verwendet habe (für das Front-End), und hier ging es nach Süden. Für das Frontend der Web-App habe ich ein Javascript-Framework (Backbone.js) verwendet. Auf die Frage, warum ich so etwas machen würde. Meine Antwort war, dass ich das Gefühl hatte, dass das Framework ziemlich gut in diese App passt und mir helfen würde, den Code besser zu strukturieren, als wenn ich ihn von Grund auf neu geschrieben hätte.

In diesem Beispiel lautet meine Frage also:

Wenn Sie ein erfahrener Programmierer sind und das Vertrauen in die Fähigkeiten Ihres Junior-Programmierers verloren haben, was möchten Sie von Ihrem Junior sehen, um das Vertrauen wiederzugewinnen?

EDIT : Vielen Dank für die tollen Antworten und das unterstützende Feedback!

fbynite
quelle
4
Ich kenne die App nicht, aber ein geeignetes Framework scheint oft eine bessere Entscheidung zu sein, als selbst etwas zu schreiben, besonders wenn Sie ein Anfänger sind. Lassen Sie sich von solchen Kommentaren nicht entmutigen. Das heißt, Sie sollten auf jeden Fall versuchen, Ihren Code von Grund auf als Übung für ein Haustierprojekt zu schreiben.
Sebastiangeiger
50
Denken Sie jemals, dass Ihr Senior nicht so schlau ist, wie Sie glauben? a) Wenn er Ihr Vorgesetzter war und nicht wusste, welches Framework Sie verwenden, scheiterte er an seiner Rolle als Vorgesetzter. b) Wenn er den Wert der Verwendung eines Frameworks, bei dem eines verdient ist, nicht erkennen kann, ist er auch dort gescheitert.
GroßmeisterB
5
@ jmort253, Nein, aber er war verärgert darüber, etwas Neues lernen zu müssen.
Fynite
17
Red Flag! ® ... er war verärgert darüber, etwas Neues lernen zu müssen. Ich bin seit 1973 in diesem Spiel und ich glaube, ich musste jeden Monat im Durchschnitt eine neue Technologie und / oder ein neues Werkzeug lernen . Ich bin im Grunde ein Server-Typ, aber in den letzten 3 Monaten musste ich aufgrund von Projekten wie Bootstrap, Enyo und "Single Page App" -Frameworks die Arbeitsweise von JS-Frontends völlig überdenken Server unterstützt sie.
Peter Rowell
3
Sie haben es hier gut gemacht, aber Sie müssen nur eine "Backbone.js" anbauen. Hör auf, dich darum zu kümmern, was ein "älterer" Programmierer denkt.
Kaz

Antworten:

27

Wenn ihm das von Ihnen erstellte Produkt gefallen hat, Sie aber Backbone nicht mehr nutzen können, müssen Sie sich beide über den gewünschten Tech-Stack unterhalten.

Als Entwickler sollten wir Tools verwenden, die leicht verfügbar sind, und folglich unseren Arbeitsfluss reibungslos gestalten. Wenn er erwartet hätte, dass Sie das Front-End von Grund auf neu aufbauen, hätte er dies ausdrücklich und mit gutem Grund tun müssen.

Die Tatsache, dass er das Produkt anfangs genossen hat, ist ein Beweis dafür, dass Sie es gut gemacht haben und "schlau" genug sind.

Sie haben es gut gemacht. Sprechen Sie mit Ihrem Senior und sehen Sie, was er von Ihnen erwartet.

duggiefresh
quelle
15

Er scheint mir nicht sehr "hochrangig" zu sein, um so ein Urteil zu fällen. Ich neige immer dazu, ein geeignetes Framework anstelle des Anti-Patterns "Reinvent the Square Wheel" zu verwenden. Wenn er wirklich älter wäre, würde er den Wert eines guten Rahmens verstehen und kennen. Bestenfalls würde ich erwarten, dass er Backbone.js Wahl gegenüber einem anderen MVC-JavaScript-Framework und viel früher in Frage stellt. Er hat es nicht geschafft, dich als Junior richtig zu betreuen und zu überprüfen und dir auf dem richtigen Entwicklungsweg zu helfen (in seinen Gedanken).

Es hört sich so an, als ob Sie bei der Entwicklung des Projekts die richtige Wahl getroffen haben, da ihm die Richtung fehlt (Annahme) und Sie darauf hinarbeiten, ein kompetenterer Entwickler zu sein. Ich würde denken, dass es wertvoll sein könnte, ihm Ihre Wahl des Frameworks zu erklären, warum Sie ein Framework für angemessen hielten, und darauf hinzuweisen, dass das Projekt durchgeführt wurde und zu seiner Zufriedenheit, auch weil gut dokumentierte und unterstützte Frameworks verwendet wurden. Wenn Sie keine Fortschritte machen können, hat es vielleicht keinen Wert, in seinen Augen besser zu erscheinen. Das können nur Sie beantworten.

Akira71
quelle
5

Die Mehrheit der Antworten und Kommentare hat die richtige Vorstellung, dass Sie und der Senior eine Art Diskussion benötigen und dass es wichtig sein kann, dass Sie Ihre Entscheidungen verstärken und verteidigen, auch wenn Ihr Senior Ihren Entscheidungen nicht zustimmt .

Um Ihre Frage zu beantworten, was ich als Senior sehen möchte:

Ich würde gerne sehen, ob meine Nachwuchsentwickler aufstehen und seine Entscheidungen verteidigen können, auch wenn sie leicht enttäuscht sind. Wenn ich mit dem Produkt zufrieden wäre, aber nicht mit der Implementierung, dann würde ich von den Junioren erwarten, dass sie darauf hinweisen, dass ich bei der Übergabe des Produkts in meinen Spezifikationen präziser hätte sein sollen. Ich möchte, dass sie sich behaupten können, aber auch zugeben, dass sie möglicherweise nicht die richtige Wahl getroffen haben, falls dies der Fall sein sollte.

PS: Ich muss erwähnen, dass ich ein Senior bin, der es liebt, auf professioneller Ebene als falsch erwiesen zu werden, da dies mir die Möglichkeit gibt, etwas Neues zu lernen. Und ich möchte wissen, wie andere in meinem Team Dinge tun, damit es am Ende eines Sprints / einer Aufgabe keine / weniger Überraschungen gibt.

David 'der kahle Ingwer'
quelle
Gute Antwort, aber Sie haben nicht erwähnt, dass er die Entwicklung nicht geleitet hat (keine
Codeüberprüfung
@ BЈовић - Danke. - Ich habe es nicht getan, weil ich glaube, dass Sie als Senior nicht der einzige sind, der handelt. Wenn ein Junior eine Führungsrolle in der Entwicklung erwartet oder deren Mangel bemerkt, sollte er den Senioren darauf aufmerksam machen. Wenn der Senior dann beschließt, die „Führung“ nicht zu übernehmen, sind er die ihm zugewiesene Position und das Gehalt nicht wert. : P
David 'der kahle Ingwer'
3

Zunächst muss dies als Chance gesehen werden, nicht als Misserfolg. Die Erwartungen stimmen offensichtlich nicht überein, und es ist nicht klar, woher das kommt, was passieren muss, um alles wieder auf Kurs zu bringen und dergleichen.

Zweitens, wenn Sie dies als einen aktuellen Fehler ansehen oder nicht so schlau sind, wie Sie denken, dass dies Machtverhältnisse schafft, die Sie nicht wollen. Wenn Sie also Entscheidungen treffen, von denen Sie glauben, dass sie vertretbar sind, müssen Sie bereit sein, sie bis zu einem gewissen Punkt zu verteidigen.

Ich stimme duggieawesome zu, dass Sie ein Gespräch führen möchten, aber das reicht nicht. Sie müssen darauf vorbereitet sein, Ihre Designideen zu diskutieren, zu erklären, warum Sie das getan haben, was Sie getan haben, und die Argumentation zu verteidigen. Sie müssen auch akzeptieren, dass es nicht nur eine richtige Antwort gibt und dass der leitende Programmierer möglicherweise triftige Gründe dafür hat, ein anderes Design zu bevorzugen, und dass Sie bereit sein möchten, auf diese Gründe zu hören, ohne zuzugeben, dass Ihre Entscheidungen schlecht fundiert waren auf das, was du wusstest (es sei denn, du entscheidest, dass du es besser wissen solltest, und das ist dann eine andere Sache).

Denken Sie daran, dass Design normalerweise eine Frage der Kompromisse ist. Sie möchten bereit sein zu diskutieren, was die Kompromisse sind, und sehen, was Sie beide tun können, um sicherzustellen, dass Sie zukünftige Design-Kompromisse diskutieren können. Vielleicht erwarten Sie beide nur, dass Sie mehr auf derselben Seite sind als Sie? Vielleicht ist Ihr Chef ein Idiot (es kann manchmal vorkommen)? Vielleicht haben Sie wirklich eine Entscheidung getroffen, die falsch war, wenn Sie die Anforderungen kannten? Gehen Sie jedoch offen und mit Zuversicht in die Sache und seien Sie bereit, wirklich darüber zu sprechen.

Bearbeiten: Ich möchte etwas hinzufügen, um klug zu sein. Die klügsten Leute, die ich kenne, sind Leute, die glauben, von jedem etwas zu lernen. Menschen, die abgeschottet sind und glauben, dass es nur einen richtigen Weg gibt, treffen in Bereichen wie Design keine einfallsreichen Entscheidungen und können die Dinge nicht so miteinander verbinden, wie es Menschen können, die bereit sind, von jedem zu lernen. Sich darauf einzulassen und bereit zu sein, Ideen auszutauschen und sogar zu verbreiten, ist ein Zeichen dafür, dass man klug und selbstbewusst ist. Unterschiede im Design müssen nicht unbedingt eine Sache sein, die besser ist als die andere. Unter der Annahme kompetenter Designer werden unterschiedliche Designs unterschiedlich optimiert.

Chris Travers
quelle
3

Ich bin der allgemeinen Meinung, dass Sie nichts falsch gemacht haben. Als leitender Entwickler hätte er sich dafür interessieren sollen, wie Sie die Anwendung und die Ergebnisse entwickelt haben. Nach Abschluss eines Projekts zu kommen und zu sagen, dass er es nicht mag, wie es gemacht wurde, ist für ihn nicht sehr professionell.

Aber um Ihre Hauptfrage zu beantworten: Wie können Sie die Meinung eines Senioren über Sie zurückgewinnen, nachdem diese möglicherweise verloren gegangen ist? Fragen Sie zuerst, wie sie das Gefühl haben, dass Sie es hätten tun sollen. Stellen Sie Fragen, wenn Sie nicht verstehen, und machen Sie sich Notizen. Zeigen Sie, dass Sie lernen wollen.

Zweitens, wenn bei Ihrer nächsten Aufgabe etwas aus der Beschreibung herausgefallen ist, überlegen Sie sich Ihre Ideen und lassen Sie sie vom leitenden Entwickler ausführen. Fragen Sie nicht direkt, wie es geht, denn dies wird ihrer Meinung nach nichts an Ihnen ändern. Wenn Sie sich jedoch eigene Ideen und Lösungen einfallen lassen, fragen Sie sie, ob Sie auf dem richtigen Weg sind. Dies zeigt ihnen, dass Sie es versuchen und über die Fähigkeiten verfügen, um die Arbeit zu erledigen. Dies kann so einfach wie eine kurze E-Mail sein, die sagt: "Hey, ich plane, x zu verwenden, wenn ich y tue . Irgendwelche Gedanken?"

Drittens, wenn sie mit dem Kopf nachsehen, wie es Ihnen geht, lassen Sie sie nicht gehen, ohne sich Ihren Code anzusehen.

Öffnen Sie grundsätzlich die Kommunikationswege. Ihr leitender Entwickler scheint nicht der Typ zu sein, der an Ihnen oder Ihrem Code hängt. Sie müssen sich also steigern und die Person sein, die kommuniziert. Es ist besser für alle Beteiligten, herauszufinden, dass etwas nicht ursprünglich eher früher als später gedacht wurde.

Tyanna
quelle
2

Eine Sache, die Sie sofort herausfinden müssen, ist, ob er entmutigt ist, weil Sie Ihre Wahl des Frameworks nicht umfassend verteidigen konnten, oder ob Sie ein Framework verwendet haben.

Im ersten Fall ist es wichtig, dass Sie lernen, Code von Drittanbietern für die Einbeziehung in ein Projekt zu bewerten und auszuwählen, und dass Sie diese Entscheidung Ihren Vorgesetzten gegenüber artikulieren und darauf vorbereitet sind, mit Recht darauf zu reagieren. Dies ist eine schwierige Fähigkeit zu lernen, aber es kommt mit Erfahrung. Es ist auch eine gute Fähigkeit zu lernen, da Sie, sobald Sie eine Drittanbieter-Bibliothek in ein Projekt einbinden, eine Komponente einführen, die von den anderen Entwicklern möglicherweise nicht vollständig verstanden wird, über die sie keine vollständige Kontrolle haben und die möglicherweise Fehler enthält. Sicherheitslücken und andere Dinge, die sie beachten müssen.

Wenn er enttäuscht ist, weil Sie es nicht von Grund auf neu geschrieben haben, ist das eine ganz andere Sache. Es kann sein, dass er guten Grund hat, von der Verwendung von Frameworks (wie den oben beschriebenen) abzuraten, oder dass möglicherweise eine Firmenrichtlinie dagegen besteht oder die Auswahl der Frameworks, die Sie erstellen können, eingeschränkt wird. Auf jeden Fall hätte er Ihnen das mitteilen sollen und die Tatsache, dass er keinen Fehler von seiner Seite angezeigt hat. Auf der anderen Seite kann es sein, dass er nur einen Fall von Framework-Vorurteilen hat, denn trotz der Probleme, zu denen Frameworks führen können, haben sie auch große Vorteile, wie Sie sicher wissen. Er könnte einfach denken, dass Sie alles selbst machen sollten, auch wenn dies bedeutet, dass Sie die Arbeit, die aufgrund des "Not Invented Here-Syndroms" bereits erledigt und öffentlich verfügbar gemacht wurde, wiederholen müssen.

Dass er nicht erklärt hat, warum er von Ihnen für die Verwendung eines Frameworks enttäuscht ist, ist sicherlich ein Versagen seiner Seite, effektiv zu kommunizieren. Er hat dich zurückgelassen und dich gefragt, was du falsch gemacht hast, wenn die Antwort "nichts" sein könnte. Er hat Sie auch dazu veranlasst, sich selbst in Frage zu stellen, und das wird Sie in Zukunft weniger geneigt machen, Ihre eigene Initiative zu ergreifen. Wenn es eine Eigenschaft gibt, die sich ein guter Programmierer nicht leisten kann, dann mangelt es an Initiative. Und obwohl ich mir sicher bin, dass es unbeabsichtigt ist, schadet seine Haltung der Moral, da er plötzlich das Lob für eine Arbeit zurückzieht, die er über ein kleines Detail dessen geleistet hat, wie Sie die Aufgabe erledigt haben.

Nur weil er der Senior-Programmierer ist, macht ihn das nicht unfehlbar.

GordonM
quelle
2

Ihr Kommentar, der besagt, dass der Chef verärgert ist, dass er etwas Neues lernen muss ...

Wenn es nicht mehr gibt, was Sie nicht erwähnt haben, würde ich mich über IHN ärgern.

Das Erlernen neuer Technologien ist ein wichtiger Bestandteil unserer Arbeit, und jedes Team sollte sich dem Lernen und der Selbstverbesserung widmen.

ABER das Management hat andere Sorgen. Sie haben Termine zu erfüllen, sie haben begrenzte oder keine Schulungsbudgets.

Aus Sicht des Man-Managements könnte es sich um eine andere Person handeln, die an Ihrer Stelle an Phase 2 Ihres Projekts arbeitet. Möglicherweise hat Ihr Chef ein Ohr für diese Arbeit, und er weiß, dass diese Person jetzt eine Lernkurve für etwas Neues hat.

Und jetzt ein ABER auf dem vorherigen ABER ....... das ist die Schuld deines Chefs. Wenn Sie neu und jünger sind, sollte er zumindest eine Anleitung geben. In geringerem Umfang hätten Sie auch nach Anleitungen für die zu verwendende Technologie fragen können.

ozz
quelle
2

Wenn Sie ein erfahrener Programmierer sind und das Vertrauen in die Fähigkeiten Ihres Junior-Programmierers verloren haben, was möchten Sie von Ihrem Junior sehen, um das Vertrauen zurückzugewinnen?

Angesichts der Tatsache, dass Sie gesagt haben, dass er nicht lernen wollte, wie man das von Ihnen verwendete Framework verwendet, sollte die Frage lauten: " Wenn Sie ein leitender Programmierer sind und die Fähigkeit verloren haben, von Ihrem zu lernen Junior-Programmierer, was solltest du tun, um dich selbst in Ordnung zu bringen? "

Als professioneller Entwickler hören Sie nicht auf zu lernen. Je. Wenn Sie dies tun, werden Sie stagnieren. Und das könnte in einigen Bereichen in Ordnung sein. Das Bankwesen verfügt über eine Vielzahl von Legacy-Systemen, die gewartet werden müssen, sodass Kenntnisse über alte Systeme, die sich sehr langsam bewegen, in Ordnung sind. Ein Freund von mir hat COBOL für eine Bank bearbeitet, um herauszufinden, dass der Quellcode, den er reparierte, seit etwa 30 Jahren nicht mehr angerührt wurde (und der ursprüngliche Autor war unser COBOL-Dozent an der Universität) neue sachen lernen, da alte systeme in neue systeme integriert werden müssen.

Zurück zu Ihrem Senior-Entwickler. Sie sagten, " er war verärgert darüber, etwas Neues lernen zu müssen ", und meiner Meinung nach läutete das ein paar ziemlich laute Alarmglocken.

Ich lerne immer. Obwohl ich wirklich möchte, dass mein Arbeitgeber jedes Jahr meine Bildungsrechnung abholt, kommt es selten vor, dass er etwas ausgibt, das meinem tatsächlichen Bedarf entspricht, aber ich weiß, dass ich beschäftigungsfähig bleiben muss, damit ich irgendwo in der Region von 2000 GBP ausgeben kann GBP (ungefähr $ 3000 USD) für meine eigene Ausbildung jedes Jahr.

Wenn Ihr Vorgesetzter keine neuen Dinge lernt, fängt er an, schlechte Entscheidungen zu treffen (vielleicht sind es bereits Entscheidungen), und die Qualität des Codes, mit dem Sie zu tun haben, sinkt, weil er in einer Sackgasse steckt und keine Lust hat aus dieser Furcht.

Einer der besten Entwickler, mit denen ich je zusammengearbeitet habe, war ein Junior-Entwickler, der alle möglichen Dinge kannte, die ich noch nie gesehen hatte. Er brachte so viel mit, dass ich oft überfordert war. Aber ich schätzte seine Bemühungen und wurde nie von irgendetwas "entmutigt". Es hat mich gefreut, dass er sich die Zeit genommen hat, alle Möglichkeiten zu schätzen und dem Team vorzustellen. Er leitet jetzt ein Team und erzählt mir immer wieder von Entwicklern, die Dinge auf den Tisch bringen und was er von ihnen lernt.

Ihr leitender Entwickler muss etwas lernen. Sie müssen lernen, keine emotionalen Worte (wie "Entmutigen") zu verwenden, um ihre eigenen Unzulänglichkeiten zu verbergen, da dies das Vertrauen anderer stören wird. Sie müssen neue Frameworks lernen (auch wenn sie nicht das ganze lernen können, was es tut und wie es ein Problem löst, und wenn sie es in Zukunft brauchen, können sie die Zeit in tieferes Lernen investieren). Und sie müssen lernen, dass sie einen Job haben, bei dem sie ständig lernen müssen.

Colin Mackay
quelle