Sind Joons so gut?

Präambel


Dieser Artikel ist eine Analyse eines anderen Artikels: Wenn Sie den Jones nicht einstellen, dann verdienen Sie die Lords nicht


Es ist sofort erwähnenswert, dass ich keine Ahnung habe, was es in Netflix gibt und wie. Es wurde nur eine Schande für den gesunden Menschenverstand und die Logik, über die sich der Autor im ganzen Artikel so spöttisch lustig macht.


Wenn möglich, habe ich das ursprüngliche Design verlassen und meine Kommentare separat notiert.


Nun, er hat auch den gelben Titel verlassen und ihn ein wenig modifiziert.


Lass uns gehen .




Lassen Sie mich Ihnen eine Geschichte über ein sehr erfolgreiches Unternehmen erzählen, das einen großen, dummen Fehler gemacht hat:


Wir stellen keine Junior-Programmierer und Praktikanten ein ... Wenn Sie keinen Welpen haben, müssen Sie die Pfützen nicht reinigen.
- Netflix

Kommentar Die Überschrift ist gelb und die Einleitung besagt, dass die Essenz des Fehlers und der rasche Niedergang dieses Unternehmens weiter aufgedeckt werden. Nicht wirklich.


Ich war völlig erstaunt, wie ein Unternehmen es geschafft hat, die Welpen in einem negativen Licht darzustellen, und sogar jemand hat es überzeugt. Welpen sind die saubersten Kreaturen der Welt und leben flauschige Freude! Lichtstrahlen in einer einsamen Welt. Aber kommen wir zum Punkt.


Kommentar Welpen können sich nicht sauber halten und alleine essen.


Viele Unternehmen haben diese Strategie verfolgt, nur Senioren einzustellen. Sie rechtfertigen es so:


  • Wir haben keine Zeit und Ressourcen, um Junior-Programmierer einzustellen. Wir entwickeln uns zu schnell.
  • Unsere Firma kann sich Senioren leisten, daher sind keine Joons erforderlich.
  • Zum gegenwärtigen Zeitpunkt können wir uns keine Fehler leisten. Die Einsätze sind zu hoch.
  • Unser Prozess bietet den Mitarbeitern mehr Autonomie. Wir sind nicht bereit, die Jones am Griff zu halten, wie sie es brauchen.
  • Wir wollen den Grundstein für das Produkt legen, bevor wir unerfahrene Mitarbeiter einstellen.

Die Botschaft ist, dass Junior-Programmierer ein Risiko darstellen, ein Schritt, den das Unternehmen entweder aus dem Gefühl der öffentlichen Verschuldung oder aus Budgetmangel heraus unternimmt.


Kommentar Es war immer interessant, welcher Finger heraussaugte, was nicht in der ursprünglichen Phrase war. Wo ging es um Schulden und um das Budget? Wir sprechen über die Ablenkung von Senior-Entwicklern: Anstatt ein Produkt zu erstellen, werden sie Junior-Entwickler schulen (überprüfen, erklären, führen, reparieren usw.). Das heißt, dumm Zeit sparen für leitende Entwickler.


Es stellt sich heraus, dass andere Unternehmen sich wohltätige Zwecke und zweitklassige Ergebnisse leisten können müssen, aber sicherlich nicht wir.


Kommentar Nicht die Tatsache, dass sich auch andere leisten können. Sie denken nur, dass sie es können. Immerhin hat niemand Experimente durchgeführt, zumindest habe ich davon noch nichts gehört.


Übrigens gibt es in den USA mehr als 100.000 IT-Unternehmen, und ich habe nicht gehört, dass mindestens ein CEO gesagt hat: "Denken Sie, Fehler!" oder "es wäre notwendig, das zusätzliche Budget irgendwo zu senken." Also Aufmerksamkeit, Organisationen, bei denen "die Einreise in den Juni verboten ist"! Egal wie Sie Ihre Vorteile sehen, egal wie Sie Ihren Lebenshack rechtfertigen, die Realität ist, dass Sie all dies für sich selbst erfunden haben. Es gibt keinen Wettbewerbsvorteil, den Juni loszuwerden. Und Sie haben der Welt gerade Ihr Problemmanagement gezeigt.


Kommentar Bisher gibt es keine Hinweise darauf, dass diese 100.000 IT-Unternehmen eine effiziente Entwicklungsumgebung darstellen, die effizienter als Netflix ist. All dies jongliert mit Spekulationen und Emotionen.


Die Feindseligkeit gegenüber Nachwuchsentwicklern ist eine einfache Möglichkeit, eine toxische Unternehmenskultur zu erkennen.
- April Wensel (@aprilwensel) 1. August 2017

Die Feindseligkeit gegenüber jüngeren Programmierern ist ein klares Zeichen für eine giftige Unternehmenskultur.

Kommentar Wo ist die Feindseligkeit? Niemand sagt, dass Junioren Feinde sind. Sie werden einfach nicht eingestellt. Und stellen Sie zum Beispiel immer noch keine Schlosser und Künstler ein. Auch Feindseligkeit zeigen? Dies wird als "Substitution von Konzepten" bezeichnet.


Wie Sie Junior-Programmierer einstellen und damit umgehen, ist ein wichtiger indirekter Indikator für die Gesundheit Ihres Unternehmens, Ihrer Produktlinie und Ihrer internen Kultur. Senioren achten darauf. Und wenn dies allein nicht überzeugend genug klingt, bietet die Einstellung einer ausgewogenen Anzahl von Junior-Programmierern auch finanzielle Vorteile.


Kommentar Wenden wir diese Logik auf Bibliothekare an, die nicht eingestellt sind, und verstehen die Absurdität des logischen Denkens.


Problemprävention


Wenn Sie Junior-Programmierer ablehnen, weil sie „Probleme verursachen“, senden Sie Ihren Mitarbeitern automatisch eine wichtige Nachricht über die Unternehmenskultur: Fehler sind nicht zulässig. Sie erstellen ein Image eines Unternehmens, das bei jedem Ausfall des Servers jemanden entlässt. Egal wie viel Sie bezahlen, niemand möchte in einem Umfeld arbeiten, das kein Vertrauen in die Zukunft gibt. Und der Versuch, Programmierer einzuschüchtern, damit sie keine Fehler machen, vervielfacht eine Kultur der Angst und Bedrohung, die sich katastrophal auf die psychische Gesundheit und Produktivität auswirkt.


Kommentar Eine weitere logische Dummheit. Jeder ist falsch. Nur ein Idiot kann das Gegenteil sagen. Die Frage ist nur, wer sie mehr macht und wer sie so schnell wie möglich korrigieren kann. Und dann auch, um sie in Zukunft zu verhindern. Fragen zu den "Botschaften" hinterlassen daher das Gewissen der Erfinder. Aus der Tatsache, dass jemand nicht eingestellt ist, folgt daraus überhaupt nicht, aufgrund dessen Personen entlassen werden. Nun, die Passagen über Einschüchterung, psychische Gesundheit und mehr sind einfach verwirrend.


Sie können argumentieren, dass diese Einstellung Programmierer dazu ermutigt, vorsichtig zu sein und Prozesse zu erstellen, die vor Fehlern schützen: zum Beispiel automatische Tests, Qualitätssicherung, Failover, Zugriffsschutz und umkehrbare Codeänderungen. Aber diese Theorie stellt den Karren vor das Pferd. Wenn die Unternehmensrichtlinie die Schaffung einer solchen Versicherung fördert und das Unternehmen selbst den Programmierern genügend Zeit und Ressourcen dafür zur Verfügung stellt, ist eine Kultur der Unzulässigkeit von Fehlern nicht notwendig und nutzlos. Die meisten Probleme werden lange vor der Produktion auftreten. Und jeder Programmierer, ob Junior oder Senior, bevorzugt eine Umgebung, in der zuverlässige Prozesse vor katastrophalen Fehlern schützen.


Kommentar Aufgrund fehlerhafter Prämissen können Sie willkürlich schreckliche Konsequenzen haben.


Und was ist mit den Fehlern, die alle etablierten Absicherungen durchbrechen? Betrachten Sie sie als wertvolle Möglichkeiten zur Stärkung Ihrer Verteidigung. Es muss anerkannt werden, dass jüngere Programmierer solche Möglichkeiten normalerweise schneller eröffnen als Senioren. Die Frage ist also: Möchten Sie Ihre Prozesse lieber früher oder später debuggen? "Nie" ist gut, wie jeder erfahrene Programmierer bestätigen wird. Wenn etwas schief gehen kann, wird es früher oder später gehen. Kein Erfahrungsbestand wird menschliches Versagen verhindern.


Kommentar Ja, bringen wir den Affen zum Kernreaktor und sehen, wie zuverlässig die Sicherheitssysteme sind. Nun, um die Verteidigung schnell zu öffnen. Ich mache mir schon Sorgen um die geistigen Fähigkeiten des Autors.


Natürlich benötigen Sie einige erfahrene Programmierer und Operationsleiter, um den Grundstein zu legen und Präzedenzfälle für den Failover-Entwicklungszyklus zu schaffen. Niemand bietet an, nur Junior-Programmierer einzustellen. Aber wenn Ihr Büro Fehler wirklich ernst nimmt - mit anderen Worten, Fehler werden früh und häufig erkannt -, sind jüngere Programmierer hilfreich. Und alle Ebenen von Programmierern werden mit ihrer Arbeit zufriedener sein, da sie durch Fehlertoleranz gute Software erstellen können (anstatt ständig Feuer zu löschen) und ihre Abende und Wochenenden schützen.


Kommentar Es geht nicht um Angst vor Fehlern, sondern um Effizienz und Produktivität. Der Autor wiederholt diese falsche Konstruktion von Zeit zu Zeit und beweist, dass alles schlecht ist. Alles ist schlecht, ja, aber nur mit den ursprünglichen Räumlichkeiten.


Geld sparen


Tatsächlich erhält der durchschnittliche Junior Software Engineer 55.394 USD pro Jahr, während der Senior Software Engineer 117.374 USD pro Jahr erhält. Senioren sind mehr als doppelt so teuer wie im Juni.


Diese Kosten sind oft gerechtfertigt. Von älteren Programmierern wird eine höhere Produktivität erwartet als von jüngeren.


Kommentar Es ist bekannt, dass der Produktivitätsunterschied zwischen verschiedenen Programmierern bis zu 25-mal betragen kann. Daher 2 mal so ziemlich alles.


Dies ist jedoch nicht das Ende des Bildes, und Sie erhalten einen Cent für die gedankenlose und träge Rechtfertigung erhöhter Kosten als Geschäftskosten.


Kommentar Selbst wenn Sie Hausmeister für die Programmierung einstellen, einschließlich Nachwuchsentwickler, gilt dies immer, unabhängig davon.


Nicht jeder Anwendungscode erfordert langjährige Erfahrung zum Schreiben oder sogar für eine gut gemachte Arbeit. Jedes Programm verfügt über einen „Software-Kleber“, der die verschiedenen Ein- und Ausgänge auf ganz normale Weise miteinander verbindet. Tatsächlich spielt es keine Rolle, wer es schreibt. Sie können 28 US-Dollar pro Stunde für das Schreiben dieses Codes bezahlen - oder Sie können 59 US-Dollar pro Stunde für das Schreiben desselben Codes bezahlen. Auf die eine oder andere Weise wird sich das Ergebnis nicht wesentlich unterscheiden. Wenn Sie nur Senioren einstellen, zahlen Sie exorbitant für eine beträchtliche Menge einfacher Arbeit.


Kommentar Wenn ein erheblicher Arbeitsaufwand im Unternehmen ziemlich trivial ist, dann ja. Es ist jedoch unwahrscheinlich, dass das Unternehmen als Hightech angesehen werden kann. Die Komplexität der Infrastruktur stellt eine ernsthafte anfängliche Barriere dar, die ein Junior-Entwickler möglicherweise nicht bewältigen kann (oder bewältigen kann).


Darüber hinaus variiert die Codebasis stark zwischen den Anwendungen, und die Vertrautheit mit ihr ist ein Schlüsselfaktor für die Produktivität. In den meisten Fällen kann ein Junior-Programmierer, der sechs Monate in einem Team gearbeitet hat, Aufgaben effizienter bewältigen als ein neu eingestellter Senior-Programmierer - einfach aufgrund der Vertrautheit mit der Logik des Projekts.


Kommentar Hängt von der Komplexität des Projekts ab. Es kommt vor, dass es einfacher ist, einen guten Spezialisten zu entlassen und einzustellen, als darauf zu warten, dass der „Junior“ das Projekt abschwächt.


Der zuvor erwähnte Softwarekleber und der domänenspezifische Code machen mindestens die Hälfte der gesamten Entwicklung aus. Der Rest ist der Code, der wirklich die Aufmerksamkeit eines erfahrenen Spezialisten benötigt, der für das Ergebnis von Vorteil ist. Aber selbst mit diesem Code kann ein Junior-Programmierer einen hervorragenden Job machen und ausreichend Zugang zu den Bildungsressourcen und Ratschlägen eines erfahrenen Mentors haben.


Kommentar Es kommt vor, dass Pilze auf dem Mond wachsen. Argumente im Stil von "vielleicht so" können natürlich stattfinden, aber ich sehe keinen Grund dafür.


Aus diesem Grund arbeiten zwei Junior- und Senior-Programmierer normalerweise mit der Effektivität von zwei Senior-Programmierern und für weniger als 75% der Kosten. Wenn Ihr Ziel maximale Produktivität bei minimalen Kosten ist, sollte ein solches Paar von June + Senior das grundlegende Molekül Ihres Unternehmens werden.


Kommentar Oder vielleicht auch nicht.


Es ist noch ein weiterer unermesslicher Faktor zu erwähnen: die Tendenz erfahrener Programmierer, ständig über Themen zu debattieren, die letztendlich unbedeutend sind - über Algorithmen, Mikrooptimierungen und den Codestil. Wenn das Unternehmen nur Senioren anstellt und keinen strengen Entscheidungsprozess hat, können Hunderte von Arbeitsstunden für solche Streitigkeiten aufgewendet werden. Nachwuchsentwickler werden normalerweise eines solchen Problems beraubt.


Kommentar Ältere Programmierer werden das Wasser im Mörser nicht zerdrücken, sondern die Arbeit erledigen. Deshalb sind sie älter. Ansonsten habe ich schlechte Nachrichten für Sie: Ihre Senior-Programmierer geben vor, Senior zu sein. Sie sollten besser mehr "Junioren" einstellen, um ihnen weniger Gehalt zu zahlen, weil es wird keinen Unterschied zwischen ihnen geben.


Karriereentwicklung


Wenn Sie keine Junior-Programmierer einstellen, senden Sie eine weitere Nachricht an die Mitarbeiter - dass Sie nicht wissen, wie die Karriereentwicklung funktioniert.


Manchmal, wenn Unternehmen sagen, dass sie keine Nachwuchsentwickler einstellen, möchte ich sie an ihren Kapuzenpullis schütteln und schreien, woher kommen wohl die Nachwuchsentwickler ?!
- Kate Heddleston (@ heddle317), 13. September 2018

Manchmal, wenn Unternehmen sagen, dass sie keine Junior-Programmierer einstellen, möchte ich sie an den Brüsten packen und schreien: Woher kommen Ihrer Meinung nach Senior-Programmierer?!

Kommentar Wenn das Unternehmen keine Nachwuchsentwickler hat, wie können sie dann ein Signal erhalten? In diesem Fall können Sie ein Signal nur außerhalb senden. Der Autor hat zahlreiche Probleme beim Empfangen und Interpretieren des Signals. Aus irgendeinem Grund erhalte ich ein Signal wie dieses: "Coole Spezialisten werden neben Ihnen arbeiten, Sie werden viel lernen können und Sie müssen das Offensichtliche nicht erklären."


Auch hier geht es nicht um die Erfüllung der Unternehmensschulden und nicht um die „Teilnahme an der Entwicklung“ der IT-Community. Es geht darum, Ihr Unternehmen zu einem anständigen Arbeitsplatz zu machen, an dem sich Programmierer niederlassen und lange genug bleiben möchten, um einen konkreten Beitrag zu leisten.


Kommentar Ohne Basar. Nur für!


Ich hörte zufällig von Programmierern: „Es ist müde, die Berufsbezeichnungen zu ändern. Ich möchte einfach für immer ein leitender Programmierer bleiben. “ Bisher hat mir jedoch noch niemand gesagt: „Ich hoffe, ich werde nie eine Gehaltserhöhung erhalten, ich werde nichts Neues lernen und werde für meine Dienste nicht anerkannt.“ Und seltsamerweise sind die Ressourcen, die benötigt werden, um sowohl ehrgeizige Karrieristen als auch eifrige, aber begeisterte Senior-Programmierer zu unterstützen, ungefähr gleich. Wir brauchen Wege, um eine gut gemachte Arbeit zu ändern und anzuerkennen, eine ausreichende Menge an Bildungsressourcen und eine Vielzahl von Projekten unterschiedlichen Alters in der Entwicklungspipeline. Sie müssen ein Gefühl der Entwicklung schaffen, auch für diejenigen, die nicht an Werbung interessiert sind.


Kommentar Ein erfahrener Programmierer ist der Beginn einer langen Reise. Und auch zwischen ihnen gibt es Abstufungen. In jedem komplexen Projekt wird sich ein leitender Programmierer entwickeln. In der modernen Entwicklung gibt es praktisch keine Obergrenze in der Entwicklung.


Aber sperren Sie diese Jungs nicht ein. Ihre Minderheit. Die meisten IT-Mitarbeiter werden 40 Jahre lang keine leitenden Programmierer sein. Sie träumen davon, Softwarearchitekten, Teamleiter, technische Direktoren und Studiogründer zu werden. Und ein Unternehmen, das sich seiner Gleichgültigkeit gegenüber dem Karrierewachstum rühmt, wird ganz unten auf der Liste der vielversprechenden Arbeitgeber stehen.


Kommentar "Befindet sich am Ende der Liste" - geht es um Netflix? Netflix führte eine neue Liste der „50 besten Arbeitgeber für neue Väter“ an. Mehrere andere Technologiefirmen aus dem Silicon Valley landeten in der Aufstellung und boten harten Wettbewerb, um berufstätige Väter zu werben .


Ich rekrutiere nur ältere Entwickler.

Der Trick ist, ich rekrutiere einige von ihnen früher in ihrer Karriere.
- Reginald Braithwaite (@raganwald), 17. September 2018

Ich stelle nur ältere Programmierer ein.
Der Trick ist, dass ich einige von ihnen zu Beginn meiner Karriere anheuere.

Kommentar Dies ist der großartigste Trick. Und ich bin nur dafür. Diese Leute entscheiden wirklich und können viel für das Unternehmen tun. Es gibt jedoch ein kleines Problem: Wie finde ich sie? Es ist ungefähr klar, wie man den "Senior" im Programmierer sieht: die Menge an Wissen, die er zur Verfügung hat. In einem vielversprechenden Anfängerprogrammierer müssen Sie in die Kristallkugel schauen und die Zukunft sehen. Ich habe einen solchen Ansatz nicht gut gesehen und arbeite in einem großen Unternehmen. Dies ist immer ein Risiko und Sie können leicht in die Milch gelangen.


Einer der beeindruckendsten Sätze, die ein Programmierer beim Interview hören kann, lautet: „Hallo, ich bin ein Teamleiter, ich habe hier acht Jahre lang gearbeitet, angefangen mit dem Praktikanten.“ Sehr beeindruckend und sehr selten. Eine solche Person ist für das Unternehmen äußerst wichtig - sie weiß alles über die Produktlinie, er hat den Code für alle Projekte in einem Umkreis von hundert Metern gesehen und er hat mit allen Mitarbeitern des Unternehmens zusammengearbeitet. Er ist in der Lage, Innovationen innerhalb des Unternehmens wie kein anderer anzubieten. Und das Unternehmen verdient unzählige Dividenden aus der Arbeit dieser Person, weil es verstehen konnte, wie es sein Interesse acht Jahre lang halten kann - etwa 1/10 der durchschnittlichen Lebenserwartung. Dies ist ein Beweis für den Erfolg der Unternehmenskultur. Dies ist ein Zeichen für ein Büro, in dem Kampfgeist herrscht, in dem Anerkennung gute Arbeit findet und an jeder Ecke interessante Projekte warten.


Kommentar Einer der beeindruckendsten Sätze lautet: "Wir zahlen ein fantastisches Gehalt, Sie bauen das Projekt selbst von Grund auf neu auf, laden die richtigen Leute ein und verwenden alle gewünschten Tools." Wow, das ist cool. Aber das ist aus dem Bereich der Fiktion. Wie das, was der Autor geschrieben hat.


Die Behauptung "Wir stellen keinen Juni ein" ist im Gegenteil ein offenes Eingeständnis, dass das Unternehmen nicht bereit ist, eine Rolle in der Karriere eines Menschen zu spielen. Dies ist eigentlich ein Beweis für Stagnation: Das Unternehmen möchte erfahrene und talentierte Programmierer gewinnen, die ihren Beitrag für nur ein Gehalt leisten. Einige werden solchen Bedingungen zustimmen, aber Sie werden ihre beste Arbeit nicht sehen.


Kommentar Behauptung "Behauptung", wir stellen keine Jones ein "ist im Gegenteil ein offenes Eingeständnis, dass das Unternehmen nicht bereit ist, eine Rolle in der Karriere eines Menschen zu spielen." - Dies ist ein offenes Eingeständnis, dass der Autor Probleme mit logischen Ketten und Beziehungen hat.


Wenn Ihr Unternehmen das Karrierewachstum jedoch wirklich ernst nimmt, verringert eine künstliche Einschränkung für Junior-Programmierer nur die Gewinnspanne bei der Einstellung und verkürzt die Zeit der Mitarbeiter in Ihrem Unternehmen.


Kommentar Ich frage mich, warum Google und Facebook eine hohe Messlatte haben. Sie "verengen wahrscheinlich die Pipeline (?) Der Einstellung und verkürzen die Zeit der Mitarbeiter im Unternehmen."


Gute Software schreiben


Junior-Programmierer haben eine Reihe einzigartiger Eigenschaften, die ihre erfahreneren Kollegen normalerweise verloren haben. Einer davon ist klarer Optimismus. Ein weiterer Grund ist die Bereitschaft, dem Führer zu folgen. Aber das vielleicht wichtigste Merkmal, das Junior-Programmierer bieten, ist der Mangel an Gepäck. Ältere Programmierer sahen den Aufstieg und Niedergang von Technologie, Projektversagen, von internen Konflikten zerrissenen Teams und anderen Lebensbereichen der IT-Branche. Sie haben starke Überzeugungen angehäuft und ziehen oft weitreichende Schlussfolgerungen, was darauf hindeutet, dass sich ein Szenario des Erfolgs (oder Misserfolgs) für ein anderes Projekt oder Team auf die gleiche Weise entfalten wird. Dies kann dazu führen, dass Sie nicht bereit sind, die Nuancen eines neuen Problemfelds zu verstehen.


Kommentar Ob es sich um ein Junior-Geschäft handelt. Es kann eine Menge kaputten Bazhy-Codes mit übersichtlichem Optimismus und fehlendem Gepäck ohne weitreichende Schlussfolgerungen platzen lassen. Nur ein Traum!


Unternehmen, die nur ältere Menschen einstellen möchten, vergessen oft, dass das Verlernen der nicht zutreffenden Informationen länger dauern kann als das Erlernen der entsprechenden Aufgaben.
- DHH (dhh), 31. Juli 2017

, , , — , .

. ( ), . , .


- — « , , , , ». — , : , , . , , , , . , . ; , ; , . , .


. . . , .


, , - . — , — , .


. , . Borland.


, , : , , .


. , . , : , .. , . . , , .


One underrated programmer attribute is the ability to write code that average or mediocre engineers can easily read, modify, and extend.
— Jamon Holmgren (@jamonholmgren) 17 2018 .

— , , .

. !


« » «», . — . , .


. , . Das heißt, , , , ? - , . , , . Das heißt, , .


: IT « » . , , . , - .


. : , , .


— , , — , . , , . . , , . — .


. , — .




Schlussfolgerungen


— . — . , , , .. , .


, - — . . — .


. - . . , , . .


, . . , , Netflix , , , .


PS , ?

Source: https://habr.com/ru/post/de425413/


All Articles