Ich bin Softwareentwickler mit mehr als 1,5 Jahren Erfahrung. Nachdem ich mit meiner Leistung zufrieden war, machte mich der CTO meines Unternehmens zum Teamleiter von 3 neuen Mitarbeitern (2 von ihnen haben kürzlich ihren Abschluss gemacht).
Da ist ein Angestellter, der frischgebackene Absolvent (nennen wir ihn John). John kennt nur einfaches Java und sonst nichts. Jetzt betreue ich sie in einem Front-End-Projekt, das aus Angular besteht. Aber er kennt nicht einmal die Grundlagen von HTML und CSS. Ich sagte ihm, er solle diese Fächer zu Hause von der Codeacademy am Wochenende/in den Ferien lernen. Aber er tat es nicht.
Wenn ich ihnen jetzt etwas Arbeit zuweise, erledigen die anderen beiden Mitarbeiter die Arbeit mit Leichtigkeit, aber John kämpft sogar mit dem Festlegen von Rändern und Polstern. Sein Hauptproblem ist, dass er die Arbeit nicht auf logische Weise erledigt, sondern immer einige zufällige Permutationen und Kombinationen ausprobiert, um seine Egel zu einem erfolgreichen Versuch zu machen, die Arbeit zu erledigen. Ich muss ihn für jede kleine Aufgabe mit dem Löffel füttern. Dies führte zu einer ständigen Verzögerung des Projekts, das meinem Team vom CTO übertragen wurde. Und aufgrund dieser Verzögerung hat mich mein CTO in den letzten Tagen gnadenlos beschimpft.
Ich habe dem CTO nichts gesagt, aber ich habe einmal mit John gesprochen und ihm gesagt, dass Sie die Grundlagen dieser einfachen Themen lernen müssen, sonst werden Sie nicht in der Lage sein, in Angular zu arbeiten. Ich habe ihm sogar gesagt, er solle nach einem Konzept googeln, das er nicht kennt, aber er ist nicht einmal gut darin, auf Google zu suchen.
Jetzt, aufgrund des zunehmenden Drucks und der Schelte meines CTO, denke ich, dass die einzige Lösung, die mir bleibt, darin besteht, dem CTO von ihm und seinen Arbeitsgewohnheiten mit Schätzungen zu erzählen, damit er entscheiden kann, ob John bereit ist zu arbeiten oder nicht.
Ich möchte also fragen, ob dies eine gute Lösung für dieses Problem wäre oder ob es etwas anderes gibt, was ich weiter tun kann, um mit dieser Lösung fertig zu werden?
Bearbeiten: An all die großartigen Leute, die mir in den Kommentaren und Antworten genau dort die Schuld geben, möchte ich sie wissen lassen, dass ich jedem dieser 3 Untergebenen eine einfache HTML-, CSS-, JavaScript- und Angular-Aufgabe gegeben habe, bevor ich das Projekt gestartet habe jeder von ihnen konnte erfolgreich abschließen. Es ist nicht so, dass ich ihnen das Projekt einfach vorgeworfen und ihnen gesagt habe, sie sollen dies und das in Eile erledigen. Dies ist meine erste Erfahrung, ein Team zu führen. Auch habe ich nicht die Macht, ihnen einfach die Trainingsaufgabe oder die eigentliche Projektaufgabe zuzuweisen. Ich tue, was mein CTO mir gesagt hat, und wann immer ich die Entscheidung getroffen habe, sie selbst zu schulen, sagt mir der CTO jedes Mal: „Das Erlernen von HTML, CSS und JavaScript ist nichts, wofür sie Monate aufwenden müssen. Bringen Sie ihnen die Grundlagen in 4 Stunden bei und geben Sie ihnen einen Tag Zeit, um eine einfache Aufgabe zu erledigen, und dann sind sie alle bereit für das Projekt. Ruhe werden sie lernen, während sie das Projekt durchführen. Wir haben nicht so viel Zeit für ihr Training."
Die Ironie dabei ist nun, dass meine Firma die Mitarbeiter nur aufgrund ihres Eignungstests und mit einem extrem einfachen Programmiertest einstellt. Sie sagen den Erstsemestern, dass Sie eine 6-monatige Ausbildung erhalten. Aber in Wirklichkeit dauert dieses Training nicht länger als 1 Woche.
Hier ist also der Teil, der mir lückenhaft erscheint: Sie haben Ihren Mitarbeiter John gebeten, am Wochenende unbezahlte Überstunden zu leisten.
Der Grund, warum es „Arbeit“ ist, liegt darin, dass John das Erlernen von Angular in seiner Freizeit nicht gerne tun würde, weshalb er es noch nicht getan hat (und es weiterhin nicht tut), und es für John persönlich keinen Wert bietet, außer sofern es dem Unternehmen einen Mehrwert bietet. Die Ausführung einer Aufgabe, die nicht zum eigenen Nutzen, sondern zum alleinigen Nutzen des Arbeitgebers erfolgt, wird als „Arbeit“ bezeichnet.
Was "Überstunden" betrifft, so viel sollte klar sein; John arbeitet normalerweise nicht an den Wochenenden, deshalb haben Sie ihn gebeten, außerhalb der regulären Arbeitszeiten zu arbeiten. Das nennt man „Überstunden“.
Was „unbezahlt“ angeht, haben Sie John vermutlich keinerlei Vergütung dafür angeboten, dass er diese Arbeit am Wochenende erledigt, und vermutlich sind Sie auch nicht dazu befugt. Infolgedessen wird John für diese Bemühungen am Wochenende nicht entschädigt. Das nennt man "unbezahlt".
Nachdem wir das klargestellt haben, sollten Sie als Teamleiter und insbesondere als neuer Teamleiter nicht den ersten Eindruck von Ihrem neuen Team haben, „verbringen Sie Ihr Wochenende bitte mit unbezahlten Überstunden“. Das wird für Sie auf Dauer nicht funktionieren. Tu das nicht.
Aus Johns Sicht könnte ich auch eine Frage sehen (und habe in der Vergangenheit viele auf Workplace SE gesehen!), die ungefähr so lautet:
Ich habe kürzlich meinen Universitätsabschluss gemacht und mich bei einem Unternehmen beworben und einen Job bekommen, das einen Backend-Java-Entwickler suchte. Als ich dem Unternehmen beitrat, wurde ich sofort in ein Frontend-Entwicklungsteam mit Angular versetzt. Ich habe keine Erfahrung mit Angular, und sowohl der Interviewer als auch der Personalchef waren sich dessen während des gesamten Interviewprozesses bewusst. Außerdem hat mein Chef aufgrund dieser Umstände von mir verlangt, dass ich am Wochenende unbezahlte Überstunden mache, um meine Wissenslücken aufzuholen. Was soll ich machen?
Darauf, und weil ich diese Art von Fragen in der Vergangenheit gesehen habe, würde die überwältigende Mehrheit antworten: „Unbezahlte Überstunden sind nicht cool, Ihr Unternehmen respektiert Sie nicht, sie haben Sie mit einem Team überrumpelt, das nicht zu Ihren Fähigkeiten passt, einen anderen Job finden". Und das wird John tun.
Wenn Sie John helfen möchten, anstatt ihn zu frustrieren und ihn zum Gehen zu zwingen, können Sie Folgendes tun:
Fordern Sie John (oder sonst jemanden!) nicht auf, unbezahlte Überstunden zu machen. Das ist nicht cool.
Wenn John Angular lernen muss, erlauben Sie ihm, dies während der Arbeitszeit zu tun. Bereiten Sie einige Ramp-up-Aufgaben für ihn vor (kleine Aufgaben, um ihn an das Framework und die Frontend-Entwicklung zu gewöhnen), damit er langsam nasse Füße bekommt und sein Komfortniveau erhöht.
Geben Sie John die Betreuung, die er braucht.
Wenn dies nicht der Fall ist, bitten Sie Ihre Befehlskette, John in ein Team zu versetzen, das tatsächlich die Fähigkeiten nutzt, für die er interviewt und mit denen er eingestellt wurde, und überrumpeln Sie ihn nicht, indem Sie versuchen, einen fähigen Backend-Entwickler in einen schrecklichen Frontend-Entwickler zu verwandeln.
Wenn ich CTO wäre und ein Manager zu mir käme und sagte:
Wir treten nicht auf, weil eines meiner Teammitglieder schlecht in ihrem Job ist
Meine Antwort wäre,
Warum erzählst du mir das? Sie sind der Teamleiter, tun Sie etwas dagegen. Was ist Ihr Plan?
Mit anderen Worten: Zu Ihrem CTO zu gehen und die Verzögerung zu erklären, indem Sie auf Leistungsprobleme in Ihrem Team hinweisen, ist nicht die Lösung – es wird nicht plötzlich etwas ändern oder das Problem lösen. Sie müssen einen Aktionsplan entwickeln und nicht einfach jemand anderem sagen, dass die Person unterdurchschnittlich ist. Ja, Sie möchten vielleicht die Tatsache kommunizieren, dass sie eine schlechte Darstellerin ist, aber die Kommunikation ist nur ein Teil des Prozesses, es ist nicht das, was das alles verschwinden lässt.
Es hört sich so an, als hätten Sie dies bereits halbherzig getan, indem Sie ihr gesagt haben, dass sie etwas über diese Themen lernen muss. Vielleicht möchten Sie über einige andere Optionen nachdenken:
Eine Sache, die für einige neu beförderte Führungskräfte schwer zu verstehen ist, ist, dass Ihre Aufgabe nicht darin besteht , ein Experte für die Aufgaben zu sein, die Ihr Team erledigt. In vielen Umgebungen geht es bei Ihrer Arbeit genauso sehr darum, die Menschen zu führen wie die Arbeit. Das ist ein Menschenproblem. Ja, es können ihre schlechten Fähigkeiten sein, die die Arbeit verzögern, aber aus Sicht des Arbeitgebers ist das genauso Ihr Problem wie ihres.
Aber er kennt nicht einmal die Grundlagen von HTML und CSS. Ich sagte ihm, er solle diese Fächer zu Hause von der Codeacademy am Wochenende/in den Ferien lernen.
Riesige rote Fahne.
Sie (oder Ihr Unternehmen, aber da Sie der Leiter sind, liegt es in Ihrer Verantwortung) geben ihm einen Job, für den Fähigkeiten benötigt werden, die er nicht hat. Sie müssen ihn während der Arbeitszeit schulen, wenn eine Schulung erforderlich ist . Wenn er über seine Fähigkeiten gelogen hat, dann feuern Sie ihn, aber wenn er klargestellt hat, dass er nur Java kann, dann liegen Sie falsch.
Die Lösung ist ganz einfach: Erlauben Sie ihm, diese Themen bei der Arbeit zu studieren und während einer gut durchdachten Zeitbox nichts anderes mit der Arbeit zu tun (zwei oder drei Tage für einen Softwareentwickler, vielleicht mehr für weniger qualifizierte Entwickler).
Ich werde die ausgezeichnete Antwort von dwizum nicht wiederholen, aber ich habe ein paar Dinge hinzuzufügen:
Sein Hauptproblem ist, dass er die Arbeit nicht auf logische Weise erledigt, sondern immer einige zufällige Permutationen und Kombinationen ausprobiert, um seine Egel zu einem erfolgreichen Versuch zu machen, die Arbeit zu erledigen.
Haben Sie versucht, ihm effektivere Problemlösungsstrategien zu zeigen? (Ja, idealerweise würde ein Absolvent wissen, wie man "logisch arbeitet", aber Problemlösungsstrategien sind normalerweise nicht Teil des formalen Lehrplans und werden manchmal nicht so gut gelehrt, wie sie sollten).
Ich habe ihm sogar gesagt, er solle nach einem Konzept googeln, das er nicht kennt, aber er ist nicht einmal gut darin, auf Google zu suchen
Haben Sie versucht, ihm zu zeigen, wie man effektiv googelt?
Beachten Sie auch, dass es für einen Java-Entwickler eine Herausforderung sein wird, Winkelprobleme zu googeln, da die Programmiersprache, die Build-Tools und die Laufzeitumgebung völlig unterschiedlich sind. Das Verstehen eines zufälligen Blogposts eines JavaScript-Entwicklers ist eine Herausforderung, wenn Sie sich mit Webtechnologien nicht auskennen.
Überprüfen Sie Ihre Erwartungen
Ich habe die letzten paar Jahre damit verbracht, erfahrene Java-Teams bei ihren ersten Winkelprojekten zu coachen. Meiner Erfahrung nach waren nur etwa 20 % der Entwickler in der Lage, diese Umstellung ohne Hilfe vorzunehmen. Und ja, obwohl alle an einem professionellen Kurs über Angular teilgenommen hatten und Zugang zu erfahrener Hilfe hatten, wurde der Fortschritt beim ersten Angular-Projekt so verlangsamt, dass das Management nervös wurde.
Zusammenfassung
Ja, wirklich gute Entwickler können sich eine neue Sprache ohne Hilfe aneignen, aber die meisten Entwickler brauchen mehr Hilfe als „Sie müssen die Grundlagen lernen“.
.remove
Methode hat, denke ich. Einige Entwickler sprühen und beten, ohne sich die Zeit zu nehmen, zu verstehen, warum etwas funktioniert.Sie müssen Ihren Job machen.
Entscheiden Sie auf Teamseite, ob es möglich ist, den Underperformer zu betreuen oder nicht. Wenn Sie der Meinung sind, dass sie lernbereit und leistungsfähig sind und die langfristige Leistung Ihres Teams wichtiger ist als die kurzfristigen Kosten eines Mentorings, dann entscheiden Sie sich für ein Mentoring und informieren Sie das Team. Weisen Sie ihnen Aufgaben zu, die angesichts ihres Qualifikationsniveaus realistisch sind, und bewerten Sie sie regelmäßig neu, um zu sehen, ob das Mentoring funktioniert.
Auf der CTO-Seite müssen Sie Ihren CTO realistisch über die Fähigkeiten Ihres Teams informieren. Wenn er versucht, Ihnen zu sagen, dass die Aufgabe einfach ist oder jeder lernen kann, antworten Sie wie folgt:
Sie leiten das Team entsprechend den verfügbaren Ressourcen. Wenn er konkrete Ratschläge hat, wie Sie das Team angemessen führen können, hören Sie ihm gerne zu.
Das Team spielt so, wie es ist. Die Arbeit wird nicht schneller erledigt als sie ist. Es gibt keine magische Peitsche, die du knacken kannst. Ihre Mitarbeiter haben die Produktivität, die sie haben, und Sie können sie nicht auf magische Weise produktiver machen.
Erläutern Sie Ihren Rat bezüglich des leistungsschwachen Teammitglieds. Erklären Sie entweder, dass Sie entschieden haben, dass es am sinnvollsten ist, sie zu betreuen, auch wenn dies kurzfristige Kosten verursacht, oder befürworten Sie, dass sie entlassen werden. Wenn Sie der Meinung sind, dass ein Austausch hilfreich wäre, erklären Sie dies.
Letztendlich müssen Sie dem CTO mitteilen, dass Sie der Meinung sind, dass Sie das Team angemessen führen, die Leistung des Teams jedoch nicht ausreicht, um die geforderten Aufgaben in der gewünschten Zeit zu erledigen. Bieten Sie hilfreiche Optionen an, z. B. mehr Mitarbeiter einzustellen, den Funktionsumfang zu reduzieren und so weiter. Erklären Sie ihm, dass die Bitte um ein besseres Ergebnis nichts an Ihrer Einschätzung ändert, was Ihr Team realistisch erreichen kann.
Was auch immer Sie tun, stimmen Sie nicht seinen Behauptungen zu, dass das Team mehr produzieren kann, und wiederholen Sie dann den Kreislauf, in dem weniger geliefert wird, als der CTO erwartet, gefolgt von rituellen unrealistischen Versprechungen, es in Zukunft besser zu machen.
Die anderen Kommentatoren haben Recht - es liegt in Ihrer Verantwortung, sicherzustellen, dass dieser Entwickler in der Lage ist, in Angular zu entwickeln (weil ihm diese Aufgabe in dem Wissen zugewiesen wurde, dass sein Hintergrund in Java liegt).
Auch ich muss 90-95% seiner Aufgaben alleine lösen und dann lernt er
Lösen Sie NICHT die zugewiesenen Aufgaben dieser Person – es behindert ihren Lernprozess. Wenn sie die Arbeitslast nicht bewältigen können und Sie letztendlich Aufgaben für sie erledigen, würde ich Ihnen vorschlagen, BEVOR Sie dies mit Ihrem CTO besprechen:
Für jemanden, der sich in einer ähnlichen Position befindet, waren diese Schritte (insbesondere 3 und 4) hilfreich, um diesen Mitarbeiter dazu zu bringen, in einem Bereich stärker zu werden, in dem er sich anfangs nicht wohl fühlte. Anstatt die Schuld auf den "leistungsschwachen" Mitarbeiter zu schieben, sollten Sie fragen, warum er angesichts seines Hintergrunds für dieses Projekt eingesetzt wurde oder ob er sich zu irgendeinem Zeitpunkt bewusst war, dass seine Arbeit es erfordert, dass er eine völlig neue Umgebung erlernt.
Als Teamleiter ist ein gewisses Maß an Management der Leistung des restlichen Teams zu erwarten.
Es hört sich so an, als hätten Sie das bisher nur minimal getan – hauptsächlich indem Sie ihnen gesagt haben, sie sollen zu Hause lernen oder es googeln. Und bisher war das nicht besonders erfolgreich, wahrscheinlich, weil es ziemlich wenig hilfreiche Ansätze sind, um einem neuen Teammitglied auf Einstiegsebene beim Einstieg zu helfen.
Ich denke, dass die einzige Lösung, die mir bleibt, darin besteht, dem CTO von diesem Mädchen und ihren Gewohnheiten zu erzählen, mit Schätzungen zu arbeiten, damit er entscheiden kann, ob sie bereit ist zu arbeiten oder nicht.
Letztendlich könnte es dazu kommen - aber wenn ich an der Stelle Ihres CTO wäre, würde ich Sie bitten, eine proaktivere Rolle bei dem Versuch zu übernehmen, das Problem zu lösen, bevor Sie es zu mir bringen.
Nehmen Sie das kämpfende Teammitglied beiseite und führen Sie ein Gespräch mit ihm, sehen Sie, ob Sie a) das Problem an der Wurzel packen und b) daran arbeiten können, es zu verbessern.
Sie müssen nicht groß und brüllend und aggressiv vorgehen – ein guter Teamleiter sollte die Arbeit erleichtern und nicht mit eiserner Faust herrschen.
Anscheinend haben Sie Probleme mit einigen Elementen dessen, woran wir gerade arbeiten. Wie kann ich Ihnen helfen? Können Sie mir sagen, warum Sie kämpfen? Gibt es etwas Besonderes, bei dem Sie das Gefühl haben, dass Sie Hilfe benötigen?
Hoffentlich können Sie dann mit dem Teammitglied zusammenarbeiten, um die Dinge zu verbessern, aber letztendlich funktioniert es vielleicht einfach nicht. Dann können Sie mit dem CTO sprechen und so etwas sagen wie:
[Teammitglied] hat wirklich Mühe, einige Schlüsselelemente der Arbeit zu verstehen. Ich habe mit ihnen gesprochen und wir haben X, Y und Z getan, um die Situation zu verbessern, aber es hat nicht wirklich geholfen, und ich mache mir Sorgen, dass es unsere Fähigkeit beeinträchtigt, die Arbeit unseres Teams zu liefern.
Wie andere bereits angemerkt haben, laufen Ihre Probleme darauf hinaus, dass Sie Ihre Mitarbeiter nicht angemessen schulen dürfen. Sie sollten einen Weg finden, Ihren Vorgesetzten zu zeigen, dass die mangelnde Schulung mehr Stunden gekostet hat, als es gedauert hätte, sie zu schulen . Mit anderen Worten, dass es dem Unternehmen schadet, sie nicht richtig auszubilden.
Erledige nicht die Arbeit deiner Untergebenen für sie. Wenn etwas nicht erledigt wird, weisen Sie die Aufgabe jemand anderem zu. Auf diese Weise soll ersichtlich werden, wie viele Aufgaben Personen in einem bestimmten Zeitraum erledigen. Jetzt können Sie die Arbeitsstunden schätzen, die aufgrund von Qualifikationsunterschieden verloren gehen.
Zusätzlich zur grundlegenden technischen Einführung könnten Sie vorschlagen, Paarprogrammierung zu verwenden, um bei Unterschieden in den Fähigkeiten zu helfen. Dies würde auch als Qualitätskontrollmaßnahme dienen, falls Sie zusätzliche Argumente benötigen, um diese Idee Ihrem CTO zu verkaufen.
Randbemerkungen: Ich musste an meinem früheren Arbeitsplatz neue Technologien lernen, darunter zwei völlig unterschiedliche Programmiersprachen. Obwohl die Chefs beim Ausgeben von Geld Idioten waren, widmeten sie dennoch Ressourcen dem Erlernen dieser Sprachen, einschließlich E-Books, und gaben uns Zeit, große Tutorial-Anwendungen zu implementieren – bei der Arbeit.
Dumme Analogie: Du würdest keine LKW-Fahrer einstellen und sie bitten, in ihrer Freizeit das Fahren von Zügen zu lernen.
Hier ist Ihr Problem: Ihr Team ist nicht in der Lage, die Aufgaben, die es erledigen soll, in der Ihnen zur Verfügung stehenden Zeit zu erledigen. Dass einer Ihrer Kollegen unterdurchschnittlich ist, ist zweitrangig. Es ist ein Problem für sie, es kann im schlimmsten Fall dazu führen, dass sie ihren Job verlieren, aber Ihr Problem ist, dass der Job nicht erledigt wird.
Es gibt zwei Lösungen für Ihr Problem: Verbessern Sie die Arbeit Ihres Teams oder machen Sie dem Management klar, dass Ihr Team nicht leistungsfähig ist und dass es nicht Ihre Schuld ist. An beidem solltest du arbeiten.
Zuerst sprechen Sie mit diesem Kollegen, Sie sagen ihm, dass das Team in Gefahr ist und sie deshalb in Gefahr sind und ihre Arbeit verbessert werden muss. Verbessern geht nur durch Lernen. Geben Sie ihnen bei der Arbeit Zeit zum Lernen (es ist für sie effizienter zu lernen, als minderwertige Arbeit zu leisten, die wiederholt werden muss). Sagen Sie ihnen, dass sie sofort um Hilfe bitten sollen, wenn sie nicht weiter wissen, denn 5 Minuten Hilfe können verhindern, dass zwei Stunden Arbeit verschwendet werden.
Zweitens sagen Sie Ihrem Vorgesetzten, dass dieser Kollege nicht auf der Höhe der Zeit ist. Sagen Sie ihnen, welche Maßnahmen Sie ergreifen, um die Dinge zu verbessern. Sagen Sie ihnen, dass Sie mit kompetenten Mitarbeitern Ihre Aufgaben erledigen würden (wenn das wirklich stimmt), aber Sie haben dies derzeit nicht und es wird Zeit dauern, bis Sie dorthin gelangen. Wenn jemand denkt, dass es zum Beispiel nur Stunden dauert, CSS zu lernen, können Sie ihm sagen, dass Sie respektvoll anderer Meinung sind, und egal, ob Sie zustimmen oder nicht, Sie haben einen Mitarbeiter, der es nicht in Stunden lernt .
Sie können vorschlagen, die Person im Team zu ersetzen, die Ihr Problem nicht wirklich löst.
Ich stimme einigen der oben aufgeführten Antworten nicht zu, insbesondere der Erwartung, dass John Angular/CSS/HTML während der Firmenzeit lernt.
Insbesondere das Gebiet der Technologie ist ein weites Gebiet, und es ist ein Gebiet, das sich ständig verändert. Angular entstand 2010 – ich bin seit 2003 Web Engineer. Als ich anfing, war Angular noch keine Sache. Warum bin ich in meinem Bereich noch relevant? Weil ich es mir zur Priorität gemacht habe, mit den Neuigkeiten der Branche Schritt zu halten und aktuelle Fähigkeiten in relevanten Bereichen zu erhalten.
Ich denke nicht, dass das immer zu 100 % notwendig sein sollte, um eine neue Fähigkeit für die Arbeit im Unternehmen zu lernen, und ich denke nicht, dass das Unternehmen verpflichtet ist, Ihnen diese Zeit zum Lernen zu geben. Wenn Sie auf dem Laufenden bleiben wollen, wenn Sie aktuell bleiben wollen, wenn Sie relevant bleiben wollen, und manchmal wenn Sie Ihren Job behalten wollen, müssen Sie sich und Ihre Fähigkeiten und den Job, den Sie haben, überprüfen und sicherstellen sind ein Spiel.
Ich habe mit dem Entwerfen von Podunk-Websites für Mama und Pop angefangen und arbeite jetzt in einem Team für künstliche Intelligenz, wo ich stark zur Ausrichtung und Entwicklung ihres Technologie-Stacks beigetragen habe und eine AWS-Umgebung verwaltet habe, die es nicht gab Als ich anfing.
Ich habe diesen Job nicht bekommen, indem ich meiner Firma gesagt habe, dass sie mir Zeit geben müssen, um diese Fähigkeiten zu erlernen, während ich bei der Arbeit bin.
Gute Entwickler, und was noch wichtiger ist, gute Ingenieure sind leidenschaftlich daran interessiert, ihr Handwerk zu meistern, und sie verstehen, dass sie mehr als die 40 Stunden, die sie pro Woche arbeiten, mehr in die Technologie eintauchen müssen, die sie täglich verwenden müssen.
Das ist das Gespräch, das ich mit John führen würde – und wenn er kein Interesse bekundet oder versucht, sich zu verbessern, würde ich ihm keine Versetzung anbieten, ich würde ihn entlassen. Entwickler ohne die Leidenschaft, sich selbst zu entwickeln, werden nie mehr sein als das, was sie sind, als Sie sie eingestellt haben.
1) Ihre HR- / Einstellungsleute lassen den Ball fallen, wenn sie Leute einstellen, die nicht einmal die Mindestqualifikationsanforderungen für den Job erfüllen. IE: Wenn er sich mit HTML, Angular usw. auskennen muss, sollte dies in seiner Stellenbeschreibung stehen. Wenn er ohne diese Fähigkeiten eingestellt wurde, bedeutet dies, dass seine Jobbeschreibung entweder schlecht war (was bei der technischen Person in Ihrer Abteilung liegt, die ihm gesagt hat, welche Fähigkeiten benötigt werden) oder bei ihnen (jemanden einstellen, ohne die Fähigkeiten genau zu beachten). benötigt ... einige Nicht-Techniker in der Personalabteilung denken "Oh, dieser Typ ist ein Programmierer, er kann alles programmieren". Und sie stellen eine Person ein, die sich mit SQL auskennt, um Java-Arbeiten zu erledigen ... die Nicht-Techniker haben einfach keine Ahnung .). Wie auch immer, sprechen Sie mit der Personalabteilung und bitten Sie sie, sich zusammenzureißen.
2) Neue Absolventen sind Hit-n-Miss. Die meisten wollen bei ihrem ersten Auftritt on-the-job lernen und dann nach einem Jahr „Erfahrung“ das Schiff verlassen, um einen besseren Job zu bekommen (b/c, wenn sie das erste Graduiertenkolleg absolvieren, geht es nur darum, wie schnell sie es schaffen können mehr Geld ... weil sich die Studentendarlehen nicht von selbst bezahlt machen und das Leben von der Hand in den Mund im College sie geldmotiviert gemacht hat).
Sie müssen wirklich das langfristige Potenzial des Absolventen einschätzen, um zu sehen, ob es sich lohnt, ihn am Arbeitsplatz zu schulen (und es WIRD ein Training am Arbeitsplatz sein, wie andere betont haben ... wirklich motivierte Programmierer werden Dinge an sich erledigen Zeit zum Lernen haben und sich über Trends auf dem Laufenden halten ... aber letztendlich sprechen wir hier über einen Job, und die Leute wollen eine Vergütung für ihre Fähigkeiten, die sie lernen, und ihre Arbeit.)
Auch hier hätten die HR-Leute die langfristige Überlebensfähigkeit der Person mit BS-Fragen wie „Wo sehen Sie sich in 5 Jahren?“ bewerten sollen.
Aber Sie sollten einfach ein Herz-zu-Herz mit dem Kandidaten haben. Wenn sie bescheiden und wirklich motiviert wirken, gute Arbeit leisten und Ihnen gefallen zu wollen, dann müssen Sie sie trainieren und auf den neuesten Stand bringen wertvolles Gut.
Wenn sie sich übermütig oder distanziert verhalten oder sich nicht wirklich darum zu kümmern scheinen, dass sie ins Hintertreffen geraten, werden sie schnell abspringen. Du bist nur ein Sprungbrett für sie, wenn sie an einen anderen Ort gehen.
Setzen Sie sich also einfach für eine halbe Stunde oder eine Stunde mit ihnen in Ihr Büro und fragen Sie sie: "Wo sehen Sie diesen Job hin?" "wo siehst du dich in 5 jahren" etc, etc, etc... sehen was sie denken. Sie wissen bereits, was Sie denken (Sie denken, Sie brauchen jemanden, der jetzt produzieren kann).
Aber Programmierer sind High-End-Wissensarbeiter. Es ist nicht wie Grabenarbeiten, bei denen ein guter Grabenbagger um 1,05 % besser ist als der Durchschnitt. Ein guter Programmierer kann um ein Vielfaches produktiver sein als ein durchschnittlicher Programmierer. Wenn dieser neue Absolvent das Rohmaterial hat, um ein guter Programmierer zu sein (schnell zu lernen, motiviert zu arbeiten, gute Fähigkeiten zur Problemlösung ... spielt es keine Rolle, welche Sprachen er beherrscht, wenn er keinen Grundtrieb hat, etwas zu tun Programmierarbeit).. dann sind sie ein Rohdiamant, der darauf wartet, poliert zu werden.
Die größte Sorge ist, dass Sie mit einem Programmierer festsitzen, der aus CS oder IS kam, weil sie wegen des Geldes in die Studiengänge gegangen sind, nicht wegen der Leidenschaft. Ich bin gerade in einem MIS-Programm am College mit 90% indischen Studenten ... etwa 2/3 von ihnen wollen NICHT dort sein, aber sie sind dort, weil ihre Familie sie dazu gedrängt hat. Sie kümmern sich nicht um Programmierung, Datenverwaltung, Infosysteme, Analytik ... es ist nur ein Job für sie und sie tun das Nötigste, um im Unterricht über die Runden zu kommen (manchmal betrügen sie andere) und wollen einfach nur raus in die Arbeitswelt und mit dem Leben weitermachen und Geld verdienen. Es wird nur ein Job für sie sein. Ich unterhalte mich mit einigen, und sie sagen schnell, dass sie lieber in Kunst oder Literatur oder Sozialwissenschaften arbeiten würden, aber ihre Familie hat sie in eine hochrangige Karriere gedrängt (MINT-Geldverdiener ... Medizin, Technik,
Sie müssen also einschätzen, ob Ihr Mann einen Job macht, für den er leidenschaftlich ist, oder ob es nur eine Möglichkeit für ihn ist, Geld zu verdienen.
Er hat wahrscheinlich mit den anderen Teammitgliedern interagiert. Holen Sie sich ihre Einschätzung ... ihre soziale Bewertung ... sie wissen bereits, dass es ihm an Fähigkeiten mangelt. ABER, wenn sie ihn als Teamplayer, Problemlöser etc. empfinden, dann hat er Potenzial.
EG: Manchmal ist es in Ordnung, einen "faulen Programmierer" in der Gruppe zu haben, wenn er ein großartiger Problemlöser ist, der andere zum Nachdenken bringt. Die anderen Leute werden Ideen von ihnen abprallen lassen, und der "Faulpelz" kann ihnen gute Ideen geben, mit denen sie arbeiten und hervorragende Arbeit leisten. Aber ohne diesen "Faulpelz" sind die anderen Programmierer nur Programmiermaschinen ohne wirklich gute Ideen zum Programmieren. Jeder kann Code erstellen. Heißt nicht, dass es gut ist. Das bedeutet nicht, dass es ein Problem elegant oder innovativ löst. Die faule Person hat vielleicht erstaunliche Ideen, denen es nur an den Programmierkenntnissen und der Geschwindigkeit fehlt, um sie umzusetzen. Eine „faulere“ Person kann auch ein Moralschub für den Rest des Teams sein, wenn sie nett ist und gut mit anderen zusammenarbeitet. Nicht jeder Programmierer kann ein Rockstar sein, der Code wie Kisten in einer Fabrik rausschmeißt.
Also würde ich dem Typen eine soziale Bewertung geben, um zu sehen, ob er es überhaupt wert ist, Zeit für das Training zu verschwenden. Wenn er nicht motiviert, kein Teamplayer ist und sich nicht darum kümmert, überspringen Sie ihn und stellen Sie jemand anderen ein. Es hat keinen Sinn, jemanden zu trainieren, nur um zuzusehen, wie er alles, was Sie ihm gegeben haben, 6 Monate - 1 Jahr später für einen anderen Job übernimmt.
Was Sie zu tun versuchen, zeigt, dass Sie den Unterschied zwischen den Fähigkeiten Ihrer Mitarbeiter und den Anforderungen nicht verstehen.
Ein Java-Entwickler, der keinen Hintergrund in der Webentwicklung hat, hat kein Verständnis für die Client- und Serverseite der Dinge.
Das Paradigma unterscheidet sich von einem eigenständigen Java. Selbst wenn er an Java-Applets gearbeitet hat, ist dies immer noch die Programmierung in einer eigenständigen VM, nicht einer, in der ein Client mit einem Server kommuniziert.
Beispielsweise ist jede Art von Fehlerprüfung auf der Clientseite oberflächlich und wird einfach verwendet, um Serverzugriffe zu reduzieren. Man sollte sich NICHT darauf verlassen, da das Umgehen der clientseitigen Validierung absolut trivial ist . So etwas wie ein "Benutzername", die grundlegenden clientseitigen Prüfungen sind nicht leer und das war's, fügen Sie vielleicht eine Kombination aus alphanumerischen Anforderungen hinzu, funktionieren aber möglicherweise sogar nicht, da verschiedene Sprachen unterstützt werden müssen.
Auf der Serverseite werde ich nach nicht leeren und auch nach allen Datentypen suchen, die ich nicht verarbeiten kann (außerhalb von UTF-8 zum Beispiel), und dann auch nach SQL-Injection-Angriffen suchen (prepare-Anweisungen werden das lösen, aber ich möchte erkennen und möglicherweise die IP auf eine schwarze Liste setzen) und wahrscheinlich wiederholte Versuche mit großem Datenverkehr aufzeichnen, um böswilligen Zugriff zu verhindern (Hacking, Massenerstellung von Benutzernamen, Benutzernamen-Squatting usw.). Alle diese Optionen sind nur serverseitig.
Dann sollten Sie auch darüber nachdenken, wie der Client mit dem Server kommuniziert und ob es angebracht ist, für eine bessere Benutzererfahrung auf AJAX umzusteigen. All dieses Wissen ist nicht trivial und ein CTO ist ziemlich dumm zu erwarten, dass ein Mitarbeiter all dies in ein paar Monaten lernen kann.
Ich glaube, Sie vermissen die Schlüsselelemente dessen, was es bedeutet, ein Teamleiter zu sein. Es ist Teil Ihrer Arbeit, Ihre Teammitglieder zu betreuen, damit sie besser werden. Sie dabei zu unterstützen, erfolgreich zu sein, ist Teil Ihrer Arbeit.
Geben Sie Ihrem Junior-Teammitglied zum Beispiel eine Trainingsübung, die er lernen kann. Gib ihm die Zeit, die du für richtig hältst, oder noch besser, frage ihn/sie, wie viel Zeit er braucht. Wenn der CTO damit ein Problem hat, verteidigen Sie es. Das Team verlässt sich darauf, dass Sie sie beschützen und betreuen.
Auch habe ich nicht die Macht, ihnen einfach die Trainingsaufgabe oder die eigentliche Projektaufgabe zuzuweisen. Ich tue, was mein CTO mir gesagt hat, und wann immer ich die Entscheidung getroffen habe, sie selbst zu schulen, sagt mir der CTO jedes Mal: „Das Erlernen von HTML, CSS und JavaScript ist nichts, wofür sie Monate aufwenden müssen. Bringen Sie ihnen die Grundlagen in 4 Stunden bei und geben Sie ihnen einen Tag Zeit, um eine einfache Aufgabe zu erledigen, und dann sind sie bereit für das Projekt. Ruhe werden sie lernen, während sie das Projekt durchführen. Wir haben nicht so viel Zeit für ihre Ausbildung ."
Ich kaufe das nicht. Wenn Sie ihr Anführer sind, haben Sie absolut die Macht, ihnen zum Erfolg zu verhelfen. Wenn Ihr CTO Ihnen sagt, dass Sie es anders machen sollen, dann ist das ein Problem zwischen Ihnen und Ihrem CTO. Lassen Sie Ihr Teammitglied da raus. Ihre Aufgabe ist es, ihm zu helfen. Bilden Sie Ihren CTO aus. Du musst ihm standhalten. Deshalb bekommst du jetzt das große Geld ausgezahlt.
Manchmal liegen Manager falsch. Manchmal haben Manager unrealistische Erwartungen. Vor allem CTOs. CTOs wollen alles, sie wollen es sofort, sie wollen es perfekt und sie wollen, dass es nichts kostet. Sie verlassen sich darauf, dass Sie ihnen erklären, wie es tatsächlich funktioniert.
Sie müssen Ihrem CTO den Kompromiss aufzeigen, ob Sie diesem Mitarbeiter die Zeit geben, die er zum Lernen benötigt, nämlich:
Es kommt auf Vorhersehbarkeit und Geschwindigkeit an. Nicht nur für den Einzelnen, sondern auf Teamebene. Wenn jedes Teammitglied dieser Person weiterhin helfen muss, weil sie nicht weiß, wie sie ihre Arbeit erledigen soll, dann ist der Produktivitätseinbruch jedermanns Sache.
Wenn Sie Ihrem CTO die Fakten auf diese Weise zeigen, wird er/sie 1) ihn/sie überzeugen, 2) Ihre Kompetenz demonstrieren , sodass er sich wahrscheinlich zurückziehen und Sie die Dinge auf Ihre Weise erledigen lassen wird.
Meiner Meinung nach ist es an der Zeit, Ihren CTO in eine Personalentscheidung über die Leistung dieses Mitarbeiters einzubeziehen, wenn Sie Ihre Bemühungen erschöpft haben und glauben, dass diese Person in Ihrem Team niemals erfolgreich sein wird. Es sollte ein letzter Ausweg sein. Sie möchten nicht, dass sich Ihre anderen Teammitglieder ständig Sorgen machen, dass Sie sie unter den Bus werfen, wenn etwas schief geht. Sie müssen Ihr Team schützen. Entlassung oder Eskalation zu Ihrem Chef, was wahrscheinlich dasselbe ist, sollte der absolut letzte Ausweg sein.
Geben Sie John Gelegenheiten, schlagen Sie bei Bedarf sogar bezahlte Schulungen vor, aber lassen Sie ihn scheitern, wenn die Zeit gekommen ist.
Hier scheinen einige sehr falsche Dinge zu sein:
Sie suchen nicht kurzfristig nach Ihren eigenen Interessen, um den Job von John zu erledigen, und schon gar nicht nach Ihren Teamzielen auf lange Sicht.
Wenn ich Ihnen unterstellt wäre, würde ich nicht erwarten, dass Sie meinen Job machen, aber ich würde erwarten, dass Sie sich mit den Chefs auseinandersetzen und ein Mitglied des Teams loswerden, das nichts dazu beitragen kann.
Kurzfristig, da Sie diese Person haben, können Sie John teilweise damit beauftragen, bei der Dokumentation zu helfen, und einen anderen Teil des Tages/der Woche, um während der Arbeitszeit zu lernen.
Ich würde auch Zeitrahmen und Ziele definieren. Ein eingestellter Praktikant/Universität muss sich in den ersten Monaten ehrlich anstrengen und Interesse und etwas Verstand zeigen, um nach sechs Monaten minimal kompetent und im Rahmen von 9-12 Monaten minimal produktiv für das Team zu sein. In der Regel sind Menschen auch in einem neuen Umfeld/Job nur mäßig kompetent, je nach Komplexität, nach 1 bis 1,5 Jahren, höchstens zwei Jahren. Ihr CTO sollte das wissen oder weiß es höchstwahrscheinlich, möchte aber nur, dass Sie das Beste aus dem Team machen, das er in seinen Händen hat. Kostenfaktoren könnten dabei eine Rolle spielen.
PS. Ich habe in der Vergangenheit Leute an der Stelle von John gesehen, die sich nach 2 Jahren, in denen ihnen "geholfen" wurde, beschwerten, dass es höchste Zeit sei, befördert zu werden ... einer der Fälle war Mitte zwanzig und beschwerte sich darüber, dass er keine hatte Erhöhen Sie in den Zeiten, in denen es auf der Arbeit nicht geschlafen hat, z. B. im Wachzustand.
Um auf den speziellen Fall John zurückzukommen, würde ich versuchen zu verstehen, ob die Bemühungen echt sind oder ob er immer noch glaubt, dass er davonkommen kann, indem er Arbeit vortäuscht, als wäre er noch an der Universität. Es könnte passieren, dass John nicht reif genug ist, um zu verstehen, dass er jetzt in der realen Welt unterwegs ist, und das könnte die fleckige Leistung, von der Sie sprechen, gut erklären.
Einfach ausgedrückt, er arbeitet nicht auf dem Niveau, das von seiner Position erwartet wird, und verschlimmert die Situation aktiv für die anderen Teammitglieder, da sie Zeit damit verbringen müssen, ihm zu helfen und seine Fehler zu korrigieren.
Daher ist es am besten, mit der Personalabteilung darüber zu sprechen, ihn in einen persönlichen Verbesserungsplan aufzunehmen, der die Mindestleistungsanforderungen für seine Position auflistet und verlangt, dass er diese bis zu einem bestimmten Datum erfüllt, um seine Position im Unternehmen zu behalten.
Entweder er erfüllt die Anforderungen bis zum Datum, dann ist das Problem gelöst, oder er tut es nicht und Sie feuern ihn, dann ist das Problem gelöst.
Benutzer44108
chrylis -vorsichtigoptimistisch-
Mars
Thorbjørn Ravn Andersen
Eintauchen
Ertai87