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
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.
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. Es stellt sich heraus, dass andere Unternehmen sich wohltätige Zwecke und zweitklassige Ergebnisse leisten können müssen, aber sicherlich nicht wir.
Ü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.
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.
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.
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.
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.
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.
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.
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. 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.
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.
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 verwalten als ein neu eingestellter Senior-Programmierer - einfach aufgrund der Vertrautheit mit der Logik des Projekts.
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.
In Anbetracht dessen 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.
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.
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?!
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.
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.
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.
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.
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.
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.
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.
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.
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
Unternehmen, die nur hochrangige Fachkräfte einstellen möchten, übersehen oft, dass es oft schwieriger ist, zu viel zu vergessen, als das Richtige zu lernen.
Manchmal ist es die Aufgabe des Projektmanagers zu sagen: "Ich weiß, dass es dort nicht funktioniert hat, aber vielleicht funktioniert es für uns." Ein Junior-Programmierer ist normalerweise der beste Kandidat, um eine solche Theorie zu testen: Er kann eine Probe einer Idee oder eines Prototyps sammeln, ohne die Vorurteile einzubeziehen, die ein Senior-Programmierer im Laufe der Jahre angehäuft hat. Als Junior-Programmierer habe ich diese Arbeit oft gemacht, neue Tools und Technologien getestet, Codefragmente auf alternative Weise neu geschrieben und Ideen ausprobiert, die andere Mitarbeiter hastig abgelehnt haben. Ich entdeckte oft architektonische Verbesserungen und Softwareunternehmen wurden spürbar besser. In einigen Fällen war es möglich, das Laden von Seiten um eine Größenordnung zu beschleunigen. oder kombinieren Sie mehrere Seiten zu einer, um künftig wochenlangen Support zu vermeiden. oder ineffiziente Technologien loswerden, die zu Zeitverlust führen würden. Die Vorteile eines frischen, frischen Looks sollten nicht fehlen.
Viele Unternehmen können es sich leisten, ein Problem zu lösen oder Code zu schreiben, indem sie einige hochrangige Programmierer in einem Besprechungsraum einsperren, um zu etwas zu gelangen. Wenn Sie jedoch ein paar Jones hinzufügen, dh Entwickler, deren Zeit für einmalige Experimente und ungewöhnliche Ideen akzeptabel ist, können Sie sehen, welche Verbesserungen dies für Ihre Produkte bringt.
Was die Qualität der Software angeht, leisten jüngere Programmierer normalerweise wichtige Arbeit, die nur wenige Menschen bemerken: Sie halten den abstrusen, übertriebenen Code zurück, den ihre älteren Kollegen normalerweise schreiben.
Ein unterschätztes Programmierattribut ist die Fähigkeit, Code zu schreiben, den durchschnittliche oder mittelmäßige Ingenieure leicht lesen, ändern und erweitern können.
- Jamon Holmgren (@jamonholmgren), 17. September 2018
Eine der unterschätzten Fähigkeiten eines Programmierers ist die Fähigkeit, Code zu schreiben, den ein durchschnittlicher oder mittelmäßiger Programmierer leicht lesen, ändern und erweitern kann.
Wenn Sie "mittel oder mittelmäßig" durch "junior" ersetzen, wird das System sofort angezeigt. Die Codebasis ist ein abstrakter Abdruck des kritischen Denkens seiner Autoren. Eine robuste Kombination aus Junior- und Senior-Programmierern bietet die Möglichkeit, den Code zu vereinfachen, wodurch die Schreibfunktionen im Laufe der Zeit beschleunigt werden.
Zusammenfassend lässt sich sagen, dass das in der IT weit verbreitete Prinzip "Nur Senioren" Junior-Programmierer unterschätzt. Dies betrifft alle sehr, insbesondere wenn die Organisation glaubt, dass ohne unerfahrene Spezialisten alles einfacher wird. Obwohl einige dieser Unternehmen finanziell erfolgreich sind, kann man sich die enormen Verschwendungsbeträge vorstellen, die aufgrund dieses Ansatzes in ihr Budget gerissen werden müssen.
Wenn Ihr Unternehmen in dieser Frage die Konkurrenz überholt - das heißt, es weiß, wie man Junior-Programmierer anstellt, ausbildet und hält -, spüren Sie selbst alle Vorteile, die ich in diesem Artikel nur oberflächlich beschrieben habe. Sie haben einen geringeren Umsatz, eine größere Vielfalt an Spezialisten und weniger Overhead als die Konkurrenz. Ihre Software hat weniger Fehler und mehr Freude. Es gibt natürlich noch andere Faktoren. Ein positiver Ansatz für Junior-Programmierer ist jedoch ein wichtiges Zeichen für die Büroqualität auf allen Ebenen.