Недавно мы опубликовали часть записок из потерянного дневника одного фронтенд-разработчика. Дневник вернулся к хозяину, и с его разрешения мы продолжим делиться заметками из его рабочей жизни.
Релиз
17 июля, 11:23 — Готовим релиз
В очередной понедельник еле встал к дейлику и надеялся после него немного размяться, приготовить капучинку и сесть за код. Но не тут-то было: одна из наших фронтовых задач, как оказалось на дейли, ждет релиза с прошлой недели.
Казалось бы, это моя вина: задача висит с утра пятницы. Почему я не мог зарелизить ее сразу, как только она прошла тестирование? Я когда-то задавался таким вопросом, но потом дядя SRE сказал:
Нам объяснили, что релизить по пятницам небезопасно: вряд ли кто-то горит желанием в случае чего в выходные разбираться с проблемами. Да и пользователи не оценят по достоинству накидывание новых фич на вентилятор прямо перед заслуженным отдыхом. Сегодня начало новой недели, все вышли работать со свежими силами, а значит, можно раскатать наш релиз. В случае чего целая неделя впереди. И тут вопрос номер два: почему задачу не зарелизить тестировщику, раз он последний с ней работал? Обычно релизы — это их прерогатива. А все дело в том, что нашего стажера-фронтендера нужно познакомить с процессом релиза и команда поручила мне на живом примере показать ему, как это у нас работает. А я только за.
Но перед тем как проводить боевое крещение, все-таки сделаю себе капуч, иначе мой травмированный пробуждением мозг точно будет не способен что-либо сообразить.
17 июля, 12:12 — Куда я жмал?
Узнали от пользователей о баге на проде. Баг совершенно случайно появился после свежего релиза и, конечно, «никак с ним не связан».
Ой, да кому я вру… Именно поэтому релизами у нас занимаются тестировщики, а не фронтендеры. Они проверяют, что прод не взорвался после выпущенных изменений, а я этого не сделал. Итог:
И конечно, если тестить прод я по-хорошему должен, но не обязан, то бежать с подгоревшей жо… и чинить все, что поломано, — моя прямая обязанность. Так что бойся, баг: я тебя породил, я тебя и удалю!
17 июля, 12:31 — Хотфиксим
Поскорее бы Господь забрал мою бренную душу.
В целом все идет по плану. Включил себе ретровейв для фона и активно ищу ошибку в коде. Пользуюсь типично «профессиональными» средствами отладки: вставлю console.log сюда, console.log туда, ну и здесь он тоже не помешает. Перезапускаю проект и смотрю, какой жук попадется в расставленные мною ловушки…
17 июля, 13:24 — Как ни в чем не бывало
Повторный релиз спустя полтора часа после первого — на этот раз от тестировщиков, с их тщательной проверкой. Вжух — баг исчез, вместо него окончательно закатились новые фичи. Повезло, что первый релиз сделали утром, когда пользователи еще не так активно пользуются сервисом. Почти никто не заметил нашего небольшого провала.
В любом случае релиз снова завершен, можно возвращаться к своим обычным созвонам кодерским делам.
One-to-one
18 июля, 16:15 — 1-2-1
Настало время моего персонального микроретро — встречи один на один с руководителем. Самое интересное в них то, что это не типичные встречи с начальником, где надо сделать вид, что у тебя все супер отчитаться о проделанной работе, а наоборот, скорее шанс поговорить по душам и увидеть в руководителе человека. Я со своим лидом могу обсудить что угодно: от курьезов во время отпуска до моих целей для пересмотра в должности.
К сегодняшней встрече я подготовил несколько неудобных вопросов о новых процессах в команде, и у начальника не получится от них отвертеться ???? А еще, судя по страничке нашего 1:1, со стороны лида на повестке обсуждение новой для меня роли куратора стажера. Встреча обещает быть интересной…
18 июля, 17:02 — После 1-2-1
Снова хотел пожаловаться на жизнь, а получил +100500 персональных задач на вики. Прости, стажерчик, но часть команды — часть корабля, а я как раз учусь делегировать свои задачи. Хе-хе…
Лайны, доклады, митапы
20 июля, 14:37 — Считаю ворон платформенные встречки
В первые дни работы ребята добавили меня во все внутрикомандные встречки типа дейлика и ретро, и какое-то время я даже не представлял, какой чудесный мир бесконечных встреч меня ждет вне нашей команды. Перечислю только часть из них: встреча по надежности, продуктовые встречи, встречи по дизайну, демо продуктов и фич, новостные встречи, полезные вебинары по развитию — и еще много-много других способов весело провести время.
Естественно, ходить на все мероприятия не обязательно и каждый сам решает, что ему нужно. Меня, как фронтендера, интересовали только наши платформенные встречи, и изначально мой план заключался в том, чтобы ходить только на них. Думал, легко отделаюсь.
Ага, как же. Со временем в расписании добавилось еще несколько регулярных встреч: разные доклады, встречи по производительности, внутренние митапы по JS и Angular — и так до бесконечности.
А еще недавно у нас образовались так называемые лайны — сообщества разработчиков определенной специализации, готовых делиться новыми решениями и активно двигающих свою платформу вперед. Вместе с лайнами пришли и соответствующие им встречи в формате круглого стола, куда каждый может принести любую тему для обсуждения: от проблем с разработкой до предложений переписать все на очередной модный фреймворк.
Словом, даже если у разработчика внезапно закончатся задачи, он никогда не соскучится, а его календарь всегда будет полон.
А вот и уведомление о том, что через 15 минут начнется встреча круглого стола…
20 июля, 15:00 — Круглый стол фронтендеров
Снова собрались ангулярщиками, чтобы поделиться темами для обсуждения. Началось с традиционного холивара по поводу того, какой фреймворк для тестирования лучше: Cypress или Playwright. После 20-минутных дебатов кто-то додумался сменить тему. Мы обсуждали способы работы со стейтом приложения, собирали статистику использования разных IDE и решили ввести практику random coffee среди всех желающих.
На первый взгляд такой формат встреч может показаться хаотичным, но в этом его особенность: можно говорить о чем угодно и кто-то обязательно поддержит диалог, поделится опытом или поможет советом. Словом, именно такую платформенную встречу я признаю полезной — и стараюсь регулярно на нее ходить.
О, мне пришел традиционный опросник на тему «Как прошла сегодняшняя встреча». Кажется, после третьего кряду обсуждения Cypress все-таки пора отнестись к вопросам фасилитации встреч по-взрослому и оставить в анкете честную обратную связь. Этим, пожалуй, и займусь.
Обзор поставки
25 июля, 11:58 — Морально готовлюсь к обзору поставки
Если тематические платформенные встречи интересные и на них ходишь в свое удовольствие, то на одной командной встречке, которая будет сегодня, я бы предпочел никогда не присутствовать приходится попотеть.
Каждый разработчик в нашей команде оценивает примерный срок разработки запланированных задач и отписывает даты их завершения. Так мы учимся быть прогнозируемыми, чтобы, например, маркетологи смогли заранее продумать, как и когда будет лучше оповестить пользователя о новых фичах. Естественно, никто не ждет от разработчика стопроцентного попадания в срок, но если результат сильно отклоняется в большую или меньшую сторону, это сигнал, что что-то пошло не так.
Сам процесс оценки задач для нас новый, поэтому сейчас мы набираем статистику типа «план/факт» по задачам за месяц и разбираем на встрече по обзору поставки, почему эти два показателя не совпадают. Или наоборот, как у разработчика получилось так точно оценить свою задачу.
Кажется, что это похоже на какое-то красивое ежемесячное представление для бизнесовой части команды, но на самом деле встреча полезна для всех. На основе наших оценок и некоторых других параметров хорошо видно общую тенденцию по скорости доставки нововведений в продукте. Интересно искать в ней закономерности или, наоборот, удивляться тому, как одна маленькая задачка смогла испортить всю статистику.
Кстати, про испорченную статистику… Помнится, за этот месяц у меня была подозрительно длинная задачка, так что, кажется, нужно подготовиться к встречке и написать завещание вспомнить, а что там такого случилось, чтобы потом не тупить с ответом.
25 июля, 13:00 — Обзор поставки
В начале встречи посмотрели на несколько душных любопытных метрик, описывающих темп поставки нашей команды.
По последнему графику у тимлида возникло много вопросов к тестированию. Почему мы тестим чуть ли не половину от времени разработки? Почему задачи лежат так долго в Ready to Release, если на релиз требуется от силы час? Не хотелось бы оказаться на месте коллег и отвечать на вопросы, на которые пока никто не знает точного ответа!
После просмотра графиков разобрали выбросы по последним оцененным задачам, сделали выводы о текущем качестве оценок и в очередной раз попросили прощения у бизнеса даже придумали несколько потенциальных улучшений во всем процессе.
Итог встречи можно подвести один, вполне положительный: я выжил и даже почти не заикался, отвечая, почему делал задачку в два раза дольше запланированного.
25 июля, 14:04 — Отдыхаю после обзора поставки
Настало время включить себе какой-нибудь по-настоящему брутальный музончик, чтобы зарядиться энергией на остаток дня и набраться моральных сил после прошедшей встречи.
Индивидуальное развитие
27 июля, 17:27 — Время развиваться
Чем бы заняться под конец рабочего дня, раз новую задачу брать бессмысленно? Пройти новые курсы, почитать свежие статьи или послушать парочку докладов? А может, все сразу?
Круто, что я могу выбрать себе занятие не на один вечер благодаря абсолютно легальной возможности уделять минимум полчаса в день обучению. Развитие сотрудника — залог развития компании, поэтому трата части рабочего времени на прокачку своих скиллов у нас только приветствуется. Я стараюсь использовать эту возможность по максимуму и понемногу расширять свой кругозор в максимально разнообразных направлениях. Может, из полученных знаний вырастет тема для доклада на какой-нибудь конференции. А там уже не за горами богатство, слава и прочие атрибуты успешного разработчика!
Но кроме шуток, обучение — хороший способ отвлечься от текущих задач и немного передохнуть. А то из-за загруженности мне уже кажется, что скоро нужно будет уйти если не на раннюю пенсию, то хотя бы в отпуск.
28 июля, 15:44 — Митап здорового человека
Последние недельки были довольно тяжелыми, и, думаю, мне бы в самом деле пришлось организовать себе внеплановые выходные, чтобы все это время проваляться лицом в подушку, если бы не одна случайно долетевшая до меня новость.
Только что обсуждал с коллегами доклад, который вчера послушал, (каюсь, жаловался, что он оказался бесполезен) и узнал, что в сентябре в Москве пройдет ИТ-пикник, куда организаторы обещали позвать крутых спикеров.
Прогуглил мероприятие, и вроде оно даже звучит прикольно: там собрали лекторов по самым разным направлениям и дополнили музыкальной программой. Похоже, у меня будет возможность и что-то интересное из лекций про ML узнать (вот оно, всестороннее развитие), и The Hatters послушать, так что скучно точно не будет.
Словом, у меня появилась мотивация и дальше работать как часы хотя бы до сентября — а уже после ИТ-пикника можно будет продлить себе праздник и красиво уйти в закат в заслуженный двухнедельный отпуск.
Вместо заключения
Герой этого дневника не прекращает вести свои записи и раскрывать для нас новые аспекты жизни разработчика. Надеемся, у него получится отдохнуть и вернуться к нам с новыми силами.
А если вам тоже хочется чего-то нового, будем рады встретиться на ИТ-пикнике — там пообщаемся, поделимся знаниями, послушаем музыку и отдохнем.