- PVSM.RU - https://www.pvsm.ru -
Это статья не сеньора, очередной раз пишущего про управление персоналом. Я - Junior Golang-разработчик! У меня нет ответов на все вопросы, но есть путь. Вот что работает, когда ты ещё сам учишься писать код, а уже отвечаешь за команду.

Еще в начале обучения в Яндекс.Практикуме я слышал о возможности поработать над реальным проектом, поэтому моя вовлеченность в обучение была максимальной, особенно во время дипломного проекта. Как итог, спустя 2 месяца, я попал в Мастерскую Яндекс Практикума — программу, где студенты и выпускники работают над реальными проектами для бизнеса и НКО под руководством экспертов из крупных компаний. Мой первый проект — разработка для Яндекс.Развитие.
Позиция тимлида не была назначаемой, но меня эта идея привлекала еще с самого начала учебы!
Первым важным этапом было знакомство с брифом от заказчика. Не так представлял себе работу старших коллег. Но если задуматься, кто со слов клиента в свободной форме должен сформировать образ рабочего проекта? У нас для этого есть руководитель по технической части, который провел декомпозицию и "нарезал" задачи. Но мы успели написать своё видение отдельных частей ТЗ и мне это понравилось. Благо, перед попаданием в Мастерскую, имел дело с небольшими ТЗ. Оно и дало понимание того, что я хочу видеть и что мне нужно для написания работающего кода. Но Мастерская – это другой уровень: бриф от заказчика, живые сроки и команда, за которую ты отвечаешь. У коллег были свои представления, по которым тоже были сформированы потенциальные задачи. Ждать никто не хотел.
"Я думал моя задача писать код, а оказалось - задавать вопросы."
До начала понимания кто такой "тимлид" прошло 2 недели написания кода. Начали всплывать технические вопросы, вопросы касаемо отдельных членов команды, настала пора вникать в процесс коммуникации. Без потерь не обошлось. К счастью, речь сейчас о времени. Потерять члена команды из-за коммуникации было бы серьезной неудачей для меня!
Но что со временем? Начиная узнавать текущее положение дел у команды, причины замедления разработки, обсуждение вариантов реализации, участие в ревью... все это не прошло без следа.
Цифры оказались интересными. При возникновении спорных ситуаций или вопросов касаемо реализации задачи, до половины времени уходило на обсуждения. Знаю, что даже на уровне сеньоров и тимлидов такие дискуссии происходят, как и между тимлидами и техлидами. Что уже говорить о джунах! Но я не ожидал, на код останется только утро и вечер! И если сам вступаю в обсуждения, а у нас хватает и более опытных коллег, основный вопрос: "чем одно решение лучше другого?". Не по мнению, а языком фактов.
Основной вывод: не "я теперь главный", а "мне теперь сложнее развивать хардскилы"
Пришла очередь и код ревью. Чтобы ускорить разработку приняли решение сначала проводить ревью самостоятельно и при отсутствии замечаний отправлять на ревью руководителю. Хорошо, что мы дошли до этого благодаря своему желанию учиться. В первом проекте, хотелось бы видеть четкие рамки и обязанности.
Что такое ревью со стороны опытного разработчика? - Поиск ошибок и оптимизация. Что такое со стороны набирающегося опыта? - Ответственность за чужой код. Новый навык, который кажется чем-то новым и непонятным.
В нашей команде есть Ольга Музыченко. Основной ревьюер, на чьем примере в ревью стал участвовать и я. Именно тогда времени для разработки кода стало еще меньше.
В жизни есть 1 важное правило: если тебя что-то пугает, это нужно сделать! Особенно что касается обучения. Начав делать ревью всё оказалось проще.
"Просто начать, даже если страшно"
Когда все джуны, но ты тимлид — возникает странная ситуация. Формально мы на равных. По факту у меня есть обязанности, которые иногда требуют отстаивать позицию. И это некомфортно.
В команде есть Александр Фокин — опытный разработчик, изучающ��й Go вторым языком. Активный участник технических обсуждений, и его замечания всегда по делу. Как и Ольга, Саша — из тех, кто двигает команду вперёд своим опытом. В одной из задач он предложил использовать именованные параметры вместо позиционных в простой транзакции. Я не был уверен, что это даст преимущество, но сказал, что изучу вопрос. Посмотрел практики, примеры — в нашем конкретном случае выгоды не увидел, оставил позиционные. Но сам факт обсуждения был полезен: я запомнил этот паттерн и понял, что, если не могу сразу аргументированно объяснить "почему именно так" — нужно разобраться глубже.
Саша отнёсся к решению спокойно. Это и есть конструктивное обсуждение: кто-то предложил улучшение → изучили → приняли осознанное решение → оба согласны с итогом, даже если он не совпал с первоначальным предложением.
Но бывают ситуации, где приходится настаивать на своём, даже если это вызывает сопротивление. Здесь помогает понимание: моя задача не в том, чтобы всем нравиться. Моя задача — чтобы команда двигалась синхронно.
Как это делать, оставаясь "своим"?
Объяснять решения фактами, а не статусом. "Потому что я тимлид" не работает, когда ты джун.
Напоминать про общие цели до конфликта, а не после. Когда люди помнят, к чему мы идём, спорные решения принимаются проще.
Признавать, когда не знаешь. Лучше сказать "изучу вопрос", чем давить непроверенным мнением.
"Важно принимать решения лучшие для команды, а не для кого-то одного!"
Для управления всем процессом у нас есть проджект-менеджер Валерия Овчинникова. Очень помогает решать вопросы: общение с командой, контроль сроков, контакт с фронтом и куратором. Я работаю с сырой информацией о процессе, она выстраивает из неё полную картину.
Первые несколько недель практически всё время тратилось на код, но дальше на код стало уходить максимум половина времени. Сейчас часто обсуждения решений, ревью или коммуникация с командой. Бывают дни практически без кодинга совсем. Сначала была просто усталость, но потом я понял если уделять время только коду – команда будет работать вразнобой. Иногда приходится выбрать вариант решения чужой задачи на текущем этапе, даже понимая, что есть вероятность его изменения в будущем. Если я напишу поменьше кода, но синхронизирую всех – мы делаем задуманное.
Тимлид-джун – это просто другая профессия с момента, как ты начал.
Моя задача не быть умнее всех, а обеспечить, чтобы команда приняла лучшее решение. Даже если оно не мое.
Временами пишу код в конце дня, когда уже устал и сложно сделать даже анализ своего кода. Это не оптимально, но необходимо: я джун, мне нужно не отставать технически и закрывать свои задачи в проекте. Тем более понимаю — без сильных хардскиллов не стать хорошим тимлидом в будущем.
Стоило ли? Да. Я научился принимать решения, за которые страшно. Научился говорить 'нет' более опытным коллегам. Научился синхронизировать людей, а не только код. Это сложнее, чем любая задача на LeetCode. И именно поэтому — ценнее.
Автор: Taws
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/upravlenie-razrabotkoj/445216
Ссылки в тексте:
[1] Источник: https://habr.com/ru/articles/1001706/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1001706
Нажмите здесь для печати.