Привет, Хабр! Я - бэкенд разработчик на удаленке из Максилекта. Сейчас я работаю на внутреннем проекте компании, который мы реализуем совместно с зарубежным партнером. На собственных проектах с высокими нагрузками и ограниченными серверными ресурсами бывает всякое. Иногда у нас идет размеренная работа, а в другой момент мы целый день горим в пожарах на продакшене. Но в отличие от многих других проектов, здесь есть свобода выбора архитектуры, а вся ответственность за принятые технические решения на тебе. Каждое твое улучшение может привести к тому, что для обработки входящего трафика потребуется на один сервер больше или, наоборот, на один меньше. Это и воодушевляет, и влияет на всю твою работу, вплоть до распорядка дня. Продолжая рассказ своего коллеги с фронта, в этой статье я расскажу, как выглядит мой рабочий день.
Вряд ли мое расписание можно назвать стандартным. Я - тимлид, но не вижу себя в будущем управленцем. В свое время я уже руководил Java-разработкой в одном из офисов крупного телекома, но понял, что мне интереснее программировать. Больше всего на свете мне нравится решать технические задачи. И согласился на статус тимлида в Максилекте я только потому, что в этом качестве можно сильнее влиять на принятие технических решений. Рядовой разработчик, конечно, может высказывать мнение, но конечный выбор будет не за ним. В этом смысле у него связаны руки. А тимлид обладает большей свободой действий, и мне это нравится. Наблюдая, как развивается наш проект, я захотел решить накопившиеся проблемы - люблю делать хорошие системы.
Я уже упомянул, что не планирую развиваться дальше на управляющем поприще. Чем дальше ты идешь, тем меньше времени тратишь на то, что наиболее интересно. А я не вижу себя ни в какой другой роли. Да и на рынке труда в статусе сениор-разработчика из региона чувствую себя более уверенно: даже в Краснодаре в офисе можно быстро найти работу, не говоря уже о множестве предложений на удаленке. Руководителям в этом смысле сложнее. Так что я выполняю задачи тимлида, но стараюсь сохранить максимальную связь с разработкой.
7:00
Я - жаворонок, просыпаюсь вместе с солнцем часов в 6 или 7 утра.
Утро - отличное время, чтобы обдумать план действий на весь грядущий день, привести задачи на доске в порядок. В это время весь мир ещё спит, а я могу в спокойной обстановке решить часть наиболее важных рабочих вопросов, в том числе и технических.
10:00
В 10 утра мы проводим дейли с командой. Мы собираемся максимум на 15 минут. Если такая встреча затягивается, участники начинают отвлекаться, поэтому я сознательно останавливаю все затягивающиеся обсуждения. Под такие темы лучше запланировать отдельную встречу, позвав на нее только тех, кого этот вопрос касается непосредственно. Людей в команде много, у всех разный профиль, так что это сильно экономит время.
На дейли мы рассказываем о том, кто что делал вчера, с какими проблемами столкнулся, чем будет заниматься сегодня. Первым обычно выступаю я - доношу последние новости о проекте, например что происходит на продакшене. Команда решает сложные задачи и не всегда видит результат своей работы, так что я стараюсь это исправить. Допустим, в течение дня мы запускаем Clickhouse на новых серверах, а с утра я рассказываю о том, сколько процентов нагрузки на процессор ему требуется в реальной эксплуатации, сколько тысяч сообщений в секунду он обрабатывает. Рассказываю и о багах - например, совсем недавно у нас были проблемы с Kafka (мы уперлись в баг самой Kafka), так что на дейли я не мог не предупредить коллег о том, как этот баг проявляется.
Если параллельно с деятельностью тимлида я успеваю решить какие-то задачи по разработке, то говорю и о них. Ну а после этого передаю слово коллегам.
10:15
После дейли команда идет работать, а у меня можно сказать треть рабочего дня уже прошла - время сделать короткий перерыв. Обычно я иду выпить чая, а потом возвращаюсь к работе.
В своей команде я стараюсь минимизировать количество собраний и совещаний. Созвоны отвлекают разработчиков, выводят их из состояния потока и сильно роняют скорость и качество работы. Поэтому за рамками ежедневного дейли мы созваниваемся, только если кто-то столкнулся со сложной проблемой, которую не решить без коллеги. В иных ситуациях мы создаем чаты на нужное количество людей и пытаемся решить вопрос там. Но некоторые встречи, обусловленные методологией работы, неизбежны. Нам нужно планировать спринт и проводить ретро.
Мы живем двухнедельными спринтами. Релизы выпускаются по понедельникам раз в две недели. И в первые дни каждого спринта у нас идет планирование предстоящих задач. Обычно я ставлю его на утро, пока у всех еще голова свежая.
Накануне планирования я общаюсь с зарубежным партнером, чтобы выявить его основные пожелания. Кроме того мы достаем задачи из бэклога. В ходе планирования все эти задачи выносятся на общее обсуждение. Обычно задачи к нам приходят на английском с пояснениями на языке бизнеса, я же в ходе обсуждения стараюсь объяснить на русском, чего же от нас хотят. Эти пожелания мы декомпозируем, оцениваем и смотрим, уместятся ли все они в ближайший спринт. Если на этой стадии выясняется, что мы набрали слишком много задач, подзадачи с наименьшим приоритетом отправляются обратно в бэклог, а я впоследствии согласовываю это с партнерами.
13:00
Я не особо требователен к условиям работы и графику жизни. У меня нет жесткого обеденного времени или ритуала, который я бы использовал, чтобы разгрузить голову. Но летом в обеденное время мы с женой иногда гуляем по побережью Азовского моря. У нас есть небольшая квартирка на берегу, куда мы приезжаем летом. Иногда в середине дня мы идем по берегу обедать в столовую - получается отличная прогулка. Зимой я работаю из Краснодара, там таких возможностей нет.
14:00
В течение всего рабочего процесса я остаюсь на связи с командой упомянутого партнера. Как и со своей командой, созваниваемся мы только по срочным вопросам, например по проблемам на продакшене. Допустим, резко падает количество кликов по сравнению с предыдущими днями. В этой ситуации я подключаюсь и смотрю, что же там происходило. Чтобы лишний раз не дергать свою команду, разработчиков и тестировщиков я к общению с партнером не подключаю. Если требуется их помощь, формулирую просьбу в виде готовой задачи.
Хотя больше всего я люблю решать технические задачи, в статусе тимлида я очень редко сижу и что-то программирую. Обычно весь день занимаюсь решением разного рода вопросов - от установки конкретных версий на тестовый стенд, до внедрения новых технологий. Это огромный спектр задач. К примеру, начали мы вводить testcontainers - подключили библиотеку. Локально у разработчиков все работает, а с GitLab возникли проблемы (когда мы пушим наш код в GitLab, он тоже гоняет тесты, и там они не заработали). Разработчик сам не смог решить проблему из-за отсутствия доступа к конфигурации GitLab, так что тут пришлось подключиться мне. У меня доступа тоже не было, но с помощью коллег вопрос решили. И такие задачи заполняют почти целый день.
Отдельный пул моих задач - это обработка мерж-реквестов. По мере выполнения задач новые фичи необходимо интегрировать в мастер-ветку, а чтобы ничего не сломалось, каждый такой реквест я изучаю очень дотошно - рассматриваю почти под лупой. Иногда прошу подключиться коллег, которые лучше знают тот или иной кусок кода. Порой это вызывает новые обсуждения, так что мержится все довольно долго. Но так мы можем быть уверены, что после включения фич в мастер-ветке все будет нормально.
17:00
Как я уже говорил, мы живем двухнедельными спринтами, выпускаясь в понедельник. В пятницу вечером в конце спринта я создаю встречу на команду - мы проводим ретро, подводим итоги прошедших двух недель. Итоги каждого ретро у нас отражены в Confluence. Естественно, проблемы, которые подсвечиваются на этих встречах, мы стараемся по мере возможностей решать.
19:00
У меня нет привычного для многих жесткого окончания рабочего дня. Я знаю, что принципы разграничения работы и отдыха хорошо бы иметь, но я привык жить именно так. Если есть интересная задача - я работаю. Такое расписание у меня с первых курсов Университета, когда я одновременно и учился, и работал. Вечер, а также субботу и воскресенье, я воспринимаю, как хорошее время, чтобы привести свои дела в порядок.
22:00
Поскольку встаю я рано, вечер у меня получается коротким - к 10 часам обычно я уже сплю, чтобы с утра снова вернуться к интересным рабочим задачам. Меня это воодушевляет. Например, как раз сейчас мы внедряем ClickHouse. В этой системе многие вещи сделаны нестандартно, поэтому с ней интересно работать. Наш кейс использования аналитической базы данных практически идеально на нее ложится - как будто ClickHouse делали под нас. Такие задачи поддерживают мою уверенность в том, что я нахожусь на правильном месте.
Автор статьи: Андрей Буров, Максилект.
P.S. Мы публикуем наши статьи на нескольких площадках Рунета. Подписывайтесь на наши страницы в VK, FB, Instagram или Telegram-канал, чтобы узнавать обо всех наших публикациях и других новостях компании Maxilect.
Alesh
Рабочее место ппограммиста без подключенного к ноуту нормального дисплея, а то и двух, без нормальной клавиатуры? Но кресло шикарное.
zahmTOD
Так себе кресло )
ATLANT1S
Заодно предлагаю обсудить эспандер
ken_jar
Это роскошь. Вообще можно и просто на лэптопе работать, без периферии. Особенно если хочется быть максимально мобильным.
Alesh
Роскошь? Достаточно нормальный монитор будет стоит не больше 10 процентов от стоимости ноута. Максимальная мобильность это как? Типо как на фотке под спойлером?
VolCh
Это не роскошь, а норма. А без монитора — вынужденная необходимость (бедность?) или сознательный аскетизм.
Я вот со страхом жду переход на 15" ноут с 17" — уже как полноценный монитор не используешь, а для втоно монитора и места особо нет
kravtsov_victor
Удобный рабочий инструмент — роскошь? Я вообще не представяю как можно комфортно работать на одном среднестатистическом мониторе. Уже восемь лет работаю исключительно на двух мониторах.
Довольно часто вижу подобный аскетизм именно среди айтишников. Не знаю почему. Зачем сознательно отказываться от более удобного и комфортного в работе инструмента? Есть знакомый плиточник, знакомый электрик и два знакомых автомеханика. Все по возможности стараются обзавестись хороших инструментом. Плиточник, например, купил себе какой-то лазерный уровень за 30+ тысяч рублей. У меня два монитора на работе стоят дешевле.
k2rick
Возможно, не для всех это удобство?
vasyapivo
Тимлиду часто надо мерджить. Мерджить — это 3 колонки кода на одном экране.
Ритина, это, конечно, хорошо. Но большой монитор для разработчика — мастхэв
Wyrd
Вот вы вроде бы все верно пишите и так можно работать, но мне кажется слишком многое получается завязанным на вас. Мне в своё время сказали одну фразу, которая сильно изменила мои приоритеты: «работа тим лида заключается в том, чтобы организовать процесс разработки таким образом, который не требует наличия тим лида»