Все новости

Если у тимлида есть время программировать - значит, он хороший тимлид

16 Октябрь 2017

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

За полтора года, что Максим работает тимлидом, он накопил немало опыта. “У меня есть время, чтобы программировать, и, значит, я управляю командой хорошо”, - шутит он. В этой статье Максим делится советами и лайфхаками - как балансировать между задачами тимлида и программиста, решать конфликты, планировать свое время и управлять командой.



Планка в 50%
Я разработчик до мозга костей. Все, что не относится к разработке проекта, кажется мне чужеродным, все это отнимает то время, когда я мог бы создавать продукты. Но тимлид - это больший масштаб: больше проектов, больше требований к ним и их качеству, собственная команда, опыт в управлении проектом, развитие. Ради этого приходится перераспределять силы и время.

Я определил для себя планку в 50%: половину времени занимают обязанности тимлида, половину - задачи разработчика. 50% - это искусственное ограничение: если бы я не ограничивал себя, то тратил бы больше. В команду можно вкладываться бесконечно, можно отдавать все 100% времени, но это негативно скажется на итоговом продукте, а затем и на моих коллегах.

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



Распределение задач и разумные эксперименты
В моей команде каждый человек отвечает за 1-2 проекта - работает над ними и общается с менеджерами. Я стараюсь по мере сил участвовать во всех этапах разработки всех проектов, начиная от сбора требований и заканчивая эксплуатацией.

Когда-то в качестве эксперимента мы пробовали схему, когда “все программируют всё” - и тут начинался фарш. У каждого разработчика был свой конкретный опыт и не было времени, чтобы изучить новый проект - а его нужно было сразу поднимать, пилить новый функционал и делать это так, чтобы все работало качественно. Эксперимент не удался - все пилили всё, и выходило плохо. Мы вернулись к обычной схеме.

Что касается методологии разработки - мы применяем нечто среднее между scrum и XP (экстремальное программирование). В отличие от экстремального программирования мы пишем тесты после собственно разработки и только для самого важного функционала. В отличие от scrum у нас небольшая команда из 5 человек. В целом мы работаем недельными итерациями, стараемся разбирать задачи внутри команды на специальных встречах и раз в квартал меняемся направлениями разработки (к примеру, другой проект либо другой функционал) - это свежий взгляд и обмен опытом.

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

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

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

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

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

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

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

Если бы я мог дать совет себе-новичку, я бы сказал: не зацикливайся на одной технологии. Когда-то я начал с С++ и очень долго с него не слезал. Не учил новые языки, потому что считал, что лучше углубить свои знания в одном и делать на нем все. Это не совсем так. Нужно хорошо знать несколько языков, и для каждой задачи использовать свой.

Как решать конфликты
Бывают ли в команде конфликты? Конечно. Чаще всего это конфликты между разработчиками - когда они работают над одним проектом, но имеют разное понимание того, как разработать тот или иной функционал. Такие споры всегда решает тимлид, но для этого он должен обладать экспертной оценкой. Если не обладает - значит, садится и нарабатывает, а потом выдает решение. То же самое приходится делать, если подчиненный в каком-то вопросе опытней тимлида - нужно повышать свои навыки, даже если для этого есть только субботний вечер.

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

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

Распределение времени
Чтобы быть эффективным, нужно постоянно заниматься планированием.
У меня есть текстовый файл, заменитель таск-трекера, куда мне удобно записывать все свои задания - учеба, работа, все прочее. Это эффективно и универсально: записывая задачи, я не отвлекаюсь от разработки. Файл с заданиями лежит в Dropbox и автоматически расшаривается с ноутбука на смартфон и другие устройства.

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

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

Назад Вперед

17 Август 2022

Открыт набор на программы по IOS- и Android-разработке

VK открывает набор на бесплатную программу по iOS- и Android-разработке для студентов МГТУ им. Н. Э. Баумана. На практике ты узнаешь, как создают мобильные приложения и научишься применять продуктовый подход в разработке.

Регистрируйся до 12 сентября:

Обучение стартует 29 сентября и продлится два семестра.

Что даёт обучение:

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

Кто может участвовать

Студенты бакалавриата и специалитета со второго курса, студенты магистратуры и аспиранты МГТУ им. Н. Э. Баумана.

Как поступить

Предстоит пройти тесты на логику и знание Swift/Kotlin (в зависимости от трека — iOS или Android) и пройти собеседование.


 

10 Август 2022

Открыта регистрация на программу по WEB-разработке от VK

Бесплатная программа по Web-разработке от VK
VK открывает набор на бесплатную программу «Web-разработчик» для студентов МГТУ им. Н.Э. Баумана. Обучение длится два года: участники смогут углубить знания и получить практический опыт, чтобы стать востребованными специалистами и быстро развиваться в веб-разработке.

Регистрируйся до 12 сентября: https://vk.cc/cfFYpy

Что даёт обучение
• Сильные теоретические и практические знания в бэкенд- и фронтенд-разработке.
• Опыт решения реальных задач, которыми занимаются специалисты в IT-компаниях.
• Итоговый проект: студенты создадут его вместе с менторами-преподавателями из VK и усилят проектом свои портфолио. 
Кто может участвовать
Студенты бакалавриата и специалитета старше второго курса, магистранты и аспиранты.
Как поступить
Пройти тестирование на базовые знания алгоритмов и структур данных, программирования и веб-технологий. После успешного теста пригласим на техническое собеседование.