Дисклеймер. Изначально статья была рассчитана как дополнительный материал, который поможет начинающим разработчикам. Я его задумал когда работал в аутсорсе, где часто брали перспективных ребят, но без опыта. И всё, что будет дальше в статье, приходилось объяснять на пальцах. Поэтому пришла идея собрать всё в некий вспомогательный методический материал, чтобы не повторяться. В итоге это всё переродилось в доклад (ссылка в конце), а теперь в статью.

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


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

Шаг №0. Собеседование

Без собеседований не будет работы, а без работы не будет карьеры. 

На собеседованиях мы обычно говорим про event-loop, как специфичность коррелирует с каскадностью, как работают Reflow и Repaint. А еще интервьюеры у нас пытаются прощупать джуна на софтовые скилы, чтобы понять — подходит он команде или нет.

Джун хорошо подготовился, прошел собеседование и получил оффер. И какая у него будет первая задача? Правильно — никогда первой задачей не будет «Передвинуть форму»

Шаг №1. Починить инфраструктуру

У новичка в новом проекте всегда что-то будет не работать: у нас не будет работать VPN или каких-то доступов к GitLab’у или YaTracker’у не будет. Если за первую неделю он смог приступить к работе полноценно — это успех. Но, казалось бы, причем здесь джун? 

Ни причем. Поэтому джун не ленится (и не боится) и включает режим «отписок»:

  • пишет все необходимые формальные заявки;

  • пишет руководителю, что у него что-то не работает или чего-то нет;

  • фиксирует(!) все это документально. 

Jira, Trello, YaTracker, электронная почта и листы формата А4 по необходимости — всё идет в ход. 

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

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

Шаг №2. Наладить работу своего приложения

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

Что делать? Обратиться к старшему, пересмотреть оценку по времени и починить.

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

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

Шаг №3. Донести сложное простыми словами

Наш джун выяснил, что бэкенд присылает не те данные, и пошёл с этой проблемой к ментору или лиду. Лид занимается своими задачами и хорошо, если помнит, как зовут нашего джуна. А это значит, что лида надо быстро переключить в контекст задачи, и сделать это максимально быстро и с минимальным объяснением деталей — не вдаваясь в пространные рассуждения на 5 минут.

Поэтому проблему надо задокументировать и объяснить максимально просто: «Я занимаюсь такой задачей, хочу сделать вот так, пока что получается так, если бы мне такие данные начали приходить, то все бы заработало». Идеально задокументировать проблему записью экрана, и тогда лид быстро отправить джуна по другому адресу, но уже поточнее. Но если записи нет, то пакет MS Office с нами уже 30 лет и уходить не собирается.

Шаг №4. Пообщаться со смежными отделами

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

Было у вас такое, что вы приходите к бэку с железными пруфами, а они говорят «Проблема на вашей стороне»? Я так как-то месяц доказывал, что не дурак.

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

Шаг №5. Переработки

Джун у нас очень ответственный. Он понял, что целый день налаживал инфраструктуру, а к основной задаче так и не приступил. Поэтому он решил переработать! Это же отличная идея (нет): в первые дни тратишь больше часов — больше погружаешься в проект.  Хорошо же? Ведь хорошо?

Нет. 

На средней и длинной дистанции вам обеспечено то самое выгорание. А еще вы скрываете какие-то недостатки в проекте. Молчите вы, молчит бэкендер, молчит QA — выгораете все вместе. Руководству, конечно, сложно пойти на расширение бюджета, но сообщать об этом нужно. 

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

Шаг №6. Найти взгляд со стороны

Бывает так, что разработчик залипает, попадает в «тоннель» и не может продвинуться вперед. Для этого у меня есть правило двух часов: если за два часа подвижек нет — просто берешь соседа по коворкингу или звонишь команде, и спрашиваешь «Что не так и что делать?» Они помогут увидеть то, что твой замыленный глаз уже не замечает. Ну и горизонты расширит, куда без этого.

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

И не забывайте про интернет: каналы и группы в Телеграм, Хабр, YouTube, GitLab, книги. Задавайте вопросы, но не книгам, конечно, вам ответят.

Шаг №7. Выступить на отчётном демо

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

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

Так что, опять же, готовьтесь к демо — фиксируйте свои достижения. Про неудачи мы помним и корим себя за них, а удачи фиксировать как-то не заведено.

А еще демо — это отличный повод для тимбилдинга ????.

Шаг №8. Заняться онбордингом нового сотрудника

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

Поэтому джуна заставляют менторить. 

Здесь все очевидно. Единственное, напомню, что это не привилегия, а дополнительная ответственность. Не вешайте на себя корону — у вас кроме своих задач, появляется нагрузка в виде задач подопечного. Поэтому обязательно уточняйте, что от вас ожидают: возможно, вы захотите напичкать его основами JS, а руководство хочет от него знаний какой-то части фреймворка и всё.

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

Здесь рекомендую две вещи: Notion, чтобы фиксировать контрольные точки, и корректирующую обратную связь (по STAR, GROW) — нужно не только хвалить, но и светить фонариком на зоны роста. Если не знаете как давать обратную связь — спросите у HR, они знают.

Шаг №9. Переехать на новые технологии

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

Наверно все сталкивались, когда у вас в проекте используется старая версия какой-нибудь библиотеки, а интернет кишит уже «Да перейдите на новое». А вам не хватает плагинов каких-то, костылей и так далее. 

Всем этим можно заниматься, но сначала нужно ответить на вопрос «Какую задачу решаем?», чтобы не произошло улучшения ради улучшения, ради того, чтобы попробовать. Польза какая-то должна быть, допустим, ускорять сборку или доставку проекта до клиента.

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

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

Шаг №10. Тестировать на безопасность, устойчивость, доступность

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

У джуна/вас может возникнуть мысль: «А зачем мне про безопасность читать? Есть умные ребята, которые пишут фреймворки, мне зачем?» или «Вот есть нагрузочное тестирование, причем тут я?» А почему бы и нет? Если не знаете, что дальше учить — возьмите их.

Но не такого совета вы от меня ожидали? Верно. Я недавно участвовал в UX-исследовании нашего продукта. Оно выглядело примерно так: брали рандомного человека с улицы, давали ему продукт и просили совершить несколько действий в определенном порядке. Когда я увидел UX-тестирование в действии, оно перевернуло все мое представление о разработке с ног на голову. 

И у вас будет также — больше не будут возникать вопросы зачем нужно тестирование, какие тест-кейсы покрывать (спойлер: все, потом еще два раза все и все равно будет мало), зачем валидировать данные на клиенте и на сервере. Предупрежу — возможно вас накроет жесткой рефлексией. Я предупредил.

Шаг №11. Возглавить разработку новой библиотеки

Выходим на финишную прямую. 

Разработчику предложили дополнительные задачи. Он себя зарекомендовал на основных, поэтому ему предложили бОльшую нагрузку за эти успехи. Здесь все очевидно — рекомендую браться за эту активность. Зачем? Хотя бы потому, что вас заметили.

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

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

Здесь вам может помочь не IT-книга — «45 татуировок менеджера». Толковая книга для управления проектами.

Шаг №12. Задокументировать проект

И последняя активность для нашего хардового сеньора — документация. Но не построчная кода, а документирование своего проекта. Ведь, как выяснилось, эту документацию читают не только разработчики той же компетенции, что и вы. Я как-то сталкивался с тем, что аналитики пытались разобраться с куском JS-кода, они знали Java и думали, что корень им поможет. Не вышло — они позвали меня. Я объяснил, что название библиотеки просто не соответствует тому, что она выполняет и им нужна другая библиотека. Но если бы у документации была мотивационная часть, они бы просто не стали тратить время.

А если серьезно — документирование помогает вам разгрузить свою голову, структурировать данные на каком-то носителе, найти узкие места, зоны роста, и за счет того, что место освободилось, получить задел на будущее. 

Так что читайте текущую документацию, исправлять или пишите новую. Активность интересная — я год назад начал и всем рекомендую.

И что со всем этим делать?

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

Допустим, выяснилось, что вам нравятся только синие активности, а с остальными не согласны.

На основе этих данных построим такой график. Наглядно видна склонность к росту по горизонтали. 

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

  • можете почитать про тайм-менеджмент;

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

  • продолжайте браться за сложные проекты. 

А здесь у нас обратная ситуация, называется «хочется в менеджеры»

График такой.

И вроде бы как здесь должен быть другой набор советов. Но нет…

От нас, ребята, требуют того же: тайм-менеджмент, метрики и т.д.

Вот когда вы на пару точечек сдвинетесь вверх…

Да, это вверх, а не вбок.
Да, это вверх, а не вбок.

…то уже думайте о плане развития (например, как подвинуть менеджера), начинайте менторить на регулярной основе (считайте, что это вторая работа) и приезжайте на конфы, например, на MoscowJS или A?.Frontend с докладами.

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

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

А вот и сам доклад, как и обещал.


Почитайте другие наши статьи, может быть интересно:

Также подписывайтесь на Телеграм-канал Alfa Digital — там мы постим новости, опросы, видео с митапов, краткие выжимки из статей, иногда шутим.

Комментарии (4)


  1. xsevenbeta
    19.10.2023 15:05
    +4

    Лучше всего мем подобран для "Пообщаться со смежными отделами" :)


  1. aleksandy
    19.10.2023 15:05

    «25 лет» в вебе, но 4 года реального опыта

    Это как? 21 год во вконтактике/одноклассниках, а потом резко "вайти в айти"?


  1. TataSysueva
    19.10.2023 15:05
    +1

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


  1. antropophob
    19.10.2023 15:05
    +1

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

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