Если Вы Не Нанимаете Младших, Вы Не Заслуживаете Старших.

Позвольте мне рассказать вам историю об очень успешной компании, которая совершила большую и глупую ошибку:

Мы не нанимаем младших программистов и стажеров.

Если вы не заведете щенка, вам не придется убирать лужи.

-- Нетфликс

Я был совершенно поражен тем, как какой-то корпоративной структуре удалось изобразить щенков в негативном свете и даже убедить кого-то еще.

Щенки – самые чистые создания на Земле, живая, пушистая радость! Лучи света в одиноком мире.

Но давайте перейдем к делу.

Многие компании следовали этой стратегии «нанимать только пожилых людей».

Они оправдывают это так:

  • У нас нет времени и ресурсов для найма младших программистов; мы развиваемся слишком быстро.

  • Наша компания может позволить себе пожилых людей, поэтому в юниорах нет необходимости.

  • На нынешнем этапе мы не можем допустить ошибок.

    Ставки слишком высоки.

  • Наш процесс дает сотрудникам большую автономию.

    Мы не готовы держать юниоров за руку так, как им нужно.

  • Мы хотим заложить основу продукта, прежде чем начнем нанимать неопытных сотрудников.

Суть в том, что младшие программисты представляют собой риск, и компания идет на этот шаг либо из чувства общественного долга, либо из-за бюджетных ограничений.

Оказывается, другие компании могут позволить себе корпоративную благотворительность и второсортные результаты, но уж точно не мы.

Кстати, в США более 100 000 ИТ-компаний , и я не слышал, чтобы хоть один генеральный директор сказал «подумайте, ошибки!» или «нам нужно куда-то потратить дополнительный бюджет».

Так что обратите внимание, организации, куда «несовершеннолетним вход воспрещен»! Как бы вы ни видели свои преимущества, как бы вы ни обосновывали свой лайфхак, реальность такова, что вы все это придумали для себя.

Избавление от Джунов не дает конкурентного преимущества.

И вы только что раскрыли миру свой проблемный менеджмент.

Враждебность к младшим разработчикам — простой способ обнаружить токсичную культуру компании.

— Эйприл Вензель (@aprilwensel) 1 августа 2017 г.

Враждебность по отношению к младшим программистам — явный признак токсичной корпоративной культуры.

То, как вы нанимаете младших программистов и обращаетесь с ними, является важным показателем здоровья вашей организации, вашей линейки продуктов и вашей внутренней культуры.

На это обращают внимание пожилые люди.

И хотя само по себе это звучит недостаточно убедительно, наем сбалансированного числа младших программистов также имеет финансовые преимущества.



Предотвращение проблем

Если вы отказываете младшим программистам, потому что они «нарушители спокойствия», вы также автоматически посылаете сотрудникам важный сигнал о корпоративной культуре: ошибки не терпятся.

Вы создаете имидж компании, которая увольняет кого-то каждый раз, когда сервер выходит из строя.

Независимо от того, сколько вы платите, никто не хочет работать в среде, которая не дает ему уверенности в будущем.

А попытки запугать программистов, чтобы они не совершали ошибок, повышают культуру страха и угроз, что катастрофически влияет на психологическое здоровье и продуктивность.

Можно возразить, что такое отношение побуждает программистов быть осторожными и создавать процессы, защищающие от ошибок: например, автоматическое тестирование, контроль качества, аварийное переключение, защита доступа и обратимое редактирование кода.

Но эта теория ставит телегу впереди лошади.

Если политика компании поощряет создание таких систем безопасности, а сама компания предоставляет программистам достаточно времени и ресурсов для этого, то культура нулевой терпимости к ошибкам является ненужной и бесполезной; большинство проблем будут обнаружены задолго до начала производства.

И каждый программист, как младший, так и старший, предпочитает среду, в которой надежные процессы защищают от катастрофических ошибок.

А как насчет ошибок, которые нарушают все установленные системы безопасности? Воспринимайте их как ценную возможность укрепить свою защиту.

Младшие программисты, надо признать, обычно открывают такие возможности быстрее, чем старшие.

Таким образом, возникает вопрос: вы бы предпочли отлаживать свои процессы раньше или позже? «Никогда» — плохая идея, скажет вам любой опытный программист. Если что-то может пойти не так, рано или поздно это произойдет. Никакой опыт не предотвратит человеческую ошибку.

Конечно, вам понадобится несколько старших программистов и руководителей операций, чтобы заложить фундамент и создать прецеденты для устойчивого цикла разработки.

Никто не предлагает нанимать только младших программистов.

Но если ваш офис действительно серьезно относится к ошибкам (другими словами, ошибки выявляются рано и часто), тогда младшие программисты пригодятся.

И программисты всех уровней будут более удовлетворены своей работой, потому что отказоустойчивость освобождает их для создания хорошего программного обеспечения (вместо того, чтобы постоянно тушить пожары) и защищает их вечера и выходные.



Ээкономить деньги

По данным Действительно, средний Младший инженер-программист зарабатывает $55,394 в год, в то время как Старший инженер-программист — $117 374 в год. Пенсионеры стоят более чем в два раза дороже, чем юниоры.

Зачастую эти затраты оправданы.

Ожидается, что старшие программисты будут более продуктивными, чем младшие программисты.

Но на этом картина не заканчивается, и вам придется влететь в копеечку, если бездумно и лениво обосновывать возросшие затраты затратами на ведение бизнеса.

Не весь код приложения требует многолетнего опыта для написания или даже для хорошей работы.

Каждая программа имеет «программный клей», который соединяет различные входы и выходы довольно обычным способом.

На самом деле не важно, кто это пишет. Вы можете платить 28 долларов в час за написание этого кода или 59 долларов в час за написание того же кода.

Так или иначе, результат будет немного отличаться.

Если вы нанимаете только пожилых людей, то вы платите бешеные деньги за значительный объем простой работы.

Кроме того, кодовая база значительно различается в зависимости от приложения, и знакомство с ней является ключевым фактором производительности.

В большинстве случаев младший программист, проработавший в команде полгода, будет эффективнее выполнять задачи, чем вновь нанятый старший программист, просто за счет степени знания логики проекта.

Упомянутое ранее программное обеспечение и код, специфичный для предметной области, составляют как минимум половину всей разработки.

Остальное — это код, который действительно требует внимания старшего специалиста для пользы результата.

Но даже с этим кодом младший программист может проделать впечатляющую работу при достаточном доступе к образовательным ресурсам и советам опытного наставника.

По этой причине пара младших и старших программистов обычно работает с эффективностью двух старших программистов и менее чем за 75 % затрат. Если ваша цель — максимальная производительность при минимальных затратах, то пара младших и старших должна стать фундаментальной молекулой вашей организации.

Еще один неизмеримый фактор, который стоит отметить, — это склонность старших программистов постоянно спорить о темах, которые в конечном счете несущественны — об алгоритмах, микрооптимизациях и стиле кода.

Если компания нанимает только пожилых людей и не имеет четкого процесса принятия решений, на подобные споры могут быть потрачены сотни рабочих часов.

Младшие разработчики обычно не сталкиваются с этой проблемой.



Разработка карьера

Если вы не нанимаете младших программистов, вы посылаете сотрудникам еще один сигнал: вы не знаете, как работает карьерный рост.
Иногда, когда компании говорят, что не нанимают младших разработчиков, мне хочется трясти их за толстовки и кричать: как вы думаете, откуда берутся старшие разработчики?! — Кейт Хеддлстон (@heddle317) 13 сентября 2018 г.

Иногда, когда компании говорят, что не нанимают младших программистов, мне хочется схватить их за грудь и закричать: как вы думаете, откуда берутся старшие программисты?!
Опять же, речь не идет о выполнении корпоративного гражданского долга или «участии в развитии» ИТ-сообщества.

Речь идет о том, чтобы сделать вашу компанию достойным местом работы, где программисты захотят присоединиться и остаться там достаточно долго, чтобы внести значимый вклад. Я слышал, как программисты говорили: «Я устал менять названия должностей.

Я просто хочу навсегда остаться старшим программистом».

Однако никто никогда не говорил мне: «Надеюсь, я никогда не получу повышения, не узнаю ничего нового и не буду снова признан за свои достижения».

И, как ни странно, ресурсы, необходимые для поддержки как амбициозных карьеристов, так и старательных, но увлеченных старших программистов, примерно одинаковы.

Должны быть способы бросить вызов и признать хорошо выполненную работу, достаточные образовательные ресурсы и множество проектов разного возраста в стадии разработки.

Вам нужно создать ощущение развития даже у тех, кто не заинтересован в продвижении.

Но не зацикливайтесь на этих парнях.

Они составляют меньшинство.

Большинство ИТ-работников не собираются оставаться старшими программистами в течение 40 лет. Они мечтают стать архитекторами программного обеспечения, руководителями групп, техническими директорами и основателями студий.

А компания, которая хвастается своим безразличием к карьерному росту, окажется в конце списка перспективных работодателей.

Я набираю только старших разработчиков.

Хитрость в том, что я нанимаю некоторых из них на более раннем этапе их карьеры.

— Реджинальд Брейтуэйт (@raganwald) 17 сентября 2018 г.

Я нанимаю только старших программистов.

Хитрость в том, что я нанимаю некоторых из них в самом начале их карьеры.

Одна из самых впечатляющих фраз, которые программист может услышать на собеседовании, — «Здравствуйте, я тимлид, проработал здесь восемь лет, начиная со стажера».

Очень впечатляющий и очень редкий вид. Такой человек крайне важен для компании — он знает все о продуктовой линейке, видел код всех проектов в радиусе ста метров, работал со всеми сотрудниками компании.

Он способен внедрять инновации внутри компании, как никто другой.

И компания получает бесчисленные дивиденды от труда этого человека, потому что смогла придумать, как сохранить его проценты в течение восьми лет — примерно 1/10 средней продолжительности жизни.

Это свидетельство успеха корпоративной культуры.

Это признак офиса, где царит моральный дух, где хорошо выполненная работа ценится, а интересные проекты ждут за каждым углом.

Сказать «мы не берем джуниоров» — это, наоборот, открытое признание того, что компания не готова играть роль в чьей-то карьере.

На самом деле это демонстрация стагнации: компания хочет привлечь опытных и талантливых программистов, которые будут вносить свой вклад лишь ради одной зарплаты.

Некоторые согласятся на такие условия, но лучших их работ вы никогда не увидите.

Однако если ваша компания действительно серьезно относится к карьерному росту, то искусственное ограничение младших программистов только сузит процесс найма и сократит время работы сотрудников в вашей компании.



Написание отличного программного обеспечения

Младшие программисты обладают рядом уникальных качеств, которые их более опытные коллеги склонны терять.

Один из них – безоблачный оптимизм.

Второе — готовность следовать за лидером.

Но, пожалуй, самая важная черта, которую предлагают младшие программисты, — это отсутствие багажа.

Старшие программисты видели взлет и падение технологий, провалы проектов, команды, раздираемые внутренними конфликтами, и другую повседневную жизнь ИТ-индустрии.

Они накопили сильные убеждения и часто делают слишком далеко идущие выводы, полагая, что один сценарий успеха (или неудачи) будет точно таким же для другого проекта или команды.

Что может привести к нежеланию понимать нюансы новой области проблем.

Компании, которые так стремятся нанимать только старших сотрудников, часто забывают, что отучиться от того, что не применимо, может занять больше времени, чем отучиться от того, что применимо.

-ДХХ ( ххх ) 31 июля 2017 г.

Компании, стремящиеся нанимать только высокопоставленных специалистов, часто упускают из виду тот факт, что отучиться от того, что вам не нужно, зачастую сложнее, чем научиться тому, что вам нужно знать.

Иногда задача менеджера проекта состоит в том, чтобы сказать: «Я знаю, что там это не сработало, но, возможно, это сработает и здесь».

И младший программист обычно является лучшим кандидатом для проверки такой теории: он может собрать образец идеи или прототип, не привнося в него предрассудков, которые старший программист накопил за годы.

Будучи младшим программистом, я часто выполнял подобную работу, тестируя новые инструменты и технологии, переписывая фрагменты кода альтернативными способами, проверяя идеи, которые другие поспешно отвергли.

Я часто обнаруживал улучшения в архитектуре, и программное обеспечение компании стало ощутимо лучше.

В некоторых случаях удавалось ускорить загрузку страниц на порядок; или объединить несколько страниц в одну, избежав недель поддержки в будущем; или избавиться от неэффективных технологий, которые будут тратить время.

Нельзя упускать преимущества такого беспрепятственного и свежего взгляда.

Многие компании могут позволить себе расточительность в решении проблемы или написании кода, запирая нескольких старших программистов в конференц-зале, чтобы они что-то сделали.

Но если вы добавите туда несколько джуниоров — то есть разработчиков, чье время можно потратить на разовые эксперименты и необычные идеи — то вы сможете увидеть, какие улучшения это даст вашим продуктам.

Когда дело доходит до качества программного обеспечения, младшие программисты обычно выполняют важную работу, которую мало кто замечает: они сдерживают запутанный, перегруженный код, который склонны писать их старшие коллеги.

Одним из недооцененных качеств программиста является способность писать код, который среднестатистические или посредственные инженеры могут легко читать, изменять и расширять.

— Джеймон Холмгрен (@jamonholmgren) 17 сентября 2018 г.

Одним из недооцененных навыков программиста является способность писать код, который средний или посредственный программист может легко читать, изменять и расширять.

Если заменить «средний или посредственный» на «младший», вы сразу увидите систему.

Кодовая база — это абстрактный отпечаток критического мышления ее авторов.

Здоровое сочетание младших и старших программистов создает возможность для упрощения кода, что со временем ускоряет написание функций.




Подведем итог: широко распространенный в ИТ принцип «только для пожилых людей» недооценивает младших программистов.

Это плохо для всех, особенно когда в организации считают, что без новых специалистов все будет проще.

Хотя некоторые из этих компаний являются финансово успешными, можно представить себе колоссальные потери, которые приходится нести их бюджетам из-за такого подхода.

Если ваша компания опережает конкурентов в этом вопросе — то есть умеет нанимать, обучать и удерживать младших программистов — то вы сами уже ощущаете все преимущества, которые я лишь поверхностно описал в этой статье.

У вас меньшая текучесть, большее разнообразие специалистов и меньшие накладные расходы, чем у ваших конкурентов.

В вашем программном обеспечении меньше ошибок и больше удовольствия.

Есть, конечно, и другие факторы.

Но позитивный подход к младшим программистам — важный признак качества конторы на всех уровнях.

Теги: #управление персоналом #разработчики #найм джуниоров #сениоры #Карьера в ИТ-индустрии

Вместе с данным постом часто просматривают: