Андрей, расскажи, какой командой разработки ты руководишь?
В настоящий момент в моей команде семь человек, включая дизайнера.
У разработки ЦУС нет разделения специалистов на frontend и backend. Все разработчики, в том числе и в моем отделе, — fullstack. Поскольку отдел «разработки пользовательских интерфейсов», значительная часть работы, связанная с визуальной частью, выполняется моим отделом. Поэтому я стараюсь подбирать в свою команду разработчиков, сильных во фронтенде.
У отдела есть определенные направления: модуль «ГПР» (календарно-сетевое планирование), модуль «ТИМ» (информационная модель зданий), дашборды, выводимая в графики и таблицы аналитика, мессенджер и другие. Кроме того, решаем архитектурные задачи, которые развивают продукт в целом.
Опиши свой рабочий день.
Мне комфортно работать в офисе, поэтому редко работаю удаленно. В течение рабочего дня провожу ревью кода, принимаю или отклоняю пулл-реквесты, обсуждаю сложные моменты с разработчиками. Помогаю инженерам внедрения формулировать и декомпозировать задачи для новых спринтов, консультирую по задачам текущего и завершенных спринтов. Занимаюсь планированием работы отдела, административной работой. В остальное время пишу код.
Ты упомянул спринты. Как вы их планируете?
Обычно спринт длится две недели, но иногда дата сдвигается вправо. Я и другие руководители разработки оцениваем задачи в рамках своих направлений и распределяем по часам, чтобы разработчик выполнял их за 80 часов в спринт. При назначении задач мы учитываем их профессиональный уровень и уровень подготовки.
Что самое интересное в твоей работе?
ЦУС — это большой классный продукт. Самое интересное — писать код и наблюдать, как проект растет и становится лучше.
Сколько времени занимает разработка фич?
Мы не используем понятие «фича», поэтому будем говорить о задачах. Они могут быть разными по масштабу, и тут сложно дать однозначный ответ.
Если функционал достаточно сложный, то разработка может занять несколько недель. Если сложностей нет, можем справиться за час-два. Бывают задачи на изменение конфигурации баз, некоторые из которых решаются за 5 минут.
Стараемся автоматизировать процессы, чтобы не тратить время на решение типовых задач. Для этого пишем и используем различные инструменты.
Какую самую сложную задачу ты решал?
Все комплексные задачи можно считать сложными, но мы разбиваем их на более мелкие и решаем поэтапно. Не могу выделить какую-то одну задачу как самую сложную.
Например, мы разрабатываем модуль «ГПР», который имеет множество связанных таблиц, древовидную структуру работ и связь с другими модулями. Работать над таким модулем непросто. Важно четко сформулировать план действий, поставить понятные и выполнимые задачи.
Как часто у продукта выходят релизы?
Обычно раз в месяц, но стремимся выпускать релиз чаще. Все зависит от объема и срочности задач, которые необходимо выложить на прод.
Как распределяете задачи у нескольких программистов?
Когда задача требует участия нескольких разработчиков, смотрю на их загрузку и вовлеченность в ту часть проекта, которую нужно разработать. Если задача неприоритетная и у ребят есть желание сделать ее для саморазвития и погружения в продукт, передаю им. Обычно учитываю предпочтения: кто-то любит 3D, кто-то формы документов.
Как вы справляетесь с тем, когда вы вводите новые технологии, с которыми не знакома ваша команда?
Я считаю, что квалифицированный разработчик может быстро адаптироваться и освоить незнакомую технологию. Для него не составит труда изучить что-то новое: например, язык программирования или фреймворк.
У меня есть разработчики, которые пришли без знания PHP и сейчас успешно выполняют задачи на этом языке. Мне кажется, умение мыслить структурно помогает освоить технологии.