Найти тему

Моя рабочая неделя программиста

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

Я, как и вся группа, как и весь отдел, живем недельными циклами-спринтами (привет гибким методологиям). Для тех, кто далек от тематики разработки – поясню. Мы неделю занимаемся какими-то задачами, в конце недели формируем результат работ и из этого результата – обновляем продукты на следующей неделе. Наши продукты обновляются не чаще раза в неделю. Более частое обновление – верный признак того что мы что-то сломали. Следовательно, если вы сообщили о баге – даже если мы его поправим через час после вашего сообщения, в продукте эти правки появятся только с плановым обновлением раз в неделю.

И так, начну разбирать свою неделю. Разумеется с понедельника. Много знаете народу, которые после выходных мгновенно набирают рабочий ритм? Лично я нет. И сам к ним не отношусь. Для нас понедельник важен следующим пунктами:

1) Демонстрация проделанной за неделю работе с показом грядущих обновлений продуктов.

2) Начало тестирования обновлений.

Вот под вывеской этих двух пунктов и проходит понедельник. Разумеется, мы двигаем наш план вперед и начинаем заниматься новыми задачами. Но напряжометр расслаблять не перестали, так как риск прилетания ошибки, мешающей обновлению – вполне реален. Плюс, к демонстрации надо подготовиться. Неплохо было бы убедиться, что выдаваемые задачи вообще работают. Идеалист скажет, что в компании не выработаны процессы, что мы занимаемся лишней работой. Что это надо было делать в четверг/пятницу. Ну, до четверга с пятницей мы дойдем. А пока почитайте, какие бывают ситуации в крупных опытных компаниях с отлаженным процессом. Нет, подобное не происходит постоянно. Но проверить всё равно надо. Да, автотесты с этим помогают. Но, если кому-то кажется что прогон автотестов это секундное дело – у меня для вас плохие новости. В зависимости от сценария – скорость конечно выше чем у человека, но не так сильно как может показаться. Тем более ожидание ответа от сервера одинаково и при ручном тестировании и при автоматизированном. Так что экономия только в скорости ввода данных и нажатий на кнопки.

Продолжаем, набираем скорость. Вторник. Планерка. Радует одно – если руководство решило сделать резкое изменение плана, то, скорее всего вы об этом узнаете в понедельник. В остальном – вторник ознаменуется небольшим собранием, на котором вы пытаетесь для себя понять - в каком направлении движется работа отдела. А заодно это шанс продвинуть какой-нибудь рефакторинг или важную техническую задачку. Другого шанса не представится. Конечно, можно громко ныть в коридорах о том, в каком ужасном состоянии проект, но, в конечном счете это должно вылиться в какие-то задачи. Увидели что-то дурно пахнущее в проекте? Что мешает завести задачку на исправление? Лень? Совесть? «И так норм»? «Ой, а она потом прилетит мне обратно, а я в этом копаться не хочу»? Ну, извиняйте тогда – сидите и нюхайте.

Набрали полную скорость – переходим к Среде. Мой любимый день. Это день, который можно полностью посвятить себя разработке. Вы знаете что делать, вы знаете как делать. И вот всю среды вы пишете код, практически не отвлекаясь. Практически. А вот теоретически – есть «мааааленький нюансик». И даже два. Дело в том, что среда, как правило, самый незагруженный день у руководства. И если мы хотим провести какую-нибудь техническую встречу, как например показ нового продукта в альфа-версии, то 90% это будет среда. И, скорее всего, это перевернет весь план на неделю, так как сначала вы будете готовиться к этому демо, а потом разгребать последствия. К счастью это случается довольно редко, но все же случается. А второй «маленький нюансик», ну так – штришок к общей картине. В этот день осуществляется обновление продуктов. И самые «вкусные» баги вам прилетят в среду. Другого шанса «сломать пром» у вас не будет.

И вот мы начинаем тормозить потихоньку. Четверг. Тестировщики уже совершенно точно не занимаются проверкой обновления. Ну, просто с гарантией. В среду уже должны были перестать, но четверг – это уже 146%. Уже обновлены тестовые контура, уже ведется активное тестирование плановых задач. А, следовательно, в четверг ваша работа может уйти на второй круг ада доработок. Или на третий? Ну, там как пойдет. В моем конкретном случае – это еще и самый нелюбимый день недели. В этот день мы делимся наработками с коллегами для получения полезных советов как сделать еще лучше. Ну, или как сделать хотя бы «удобоваримо», так как порой от увиденного хочется вскрыть вены и выколоть глаза. А если после такого показа еще и глянуть, как это было реализовано – то, скорее всего данное желание будет осуществлено.

Финишная прямая. Пятница. Работаем с одной мыслью – выдать. Вопрос только чем можем пожертвовать для этой выдачи. Можно чуток переписать постановку задачи исключив тот или иной функционал. Грубое нарушение? Почему? Вполне допустимо для гибких методологий. Часть выдать сейчас, а часть в следующем обновлении. Снова кто-то можно вскрикнуть – «Так не бывает». Эмм. А что происходит тогда вокруг меня последние годы? Или я работаю в настолько уникальной компании? Ну, давайте вернемся к моему любимому и понятному многим примеру – видеоиграм. Попробуйте вспомнить игры, которые обещали больше, чем фактически сделали. Или сделали, но в грядущих обновлениях. Я, не напрягаясь, вспомню десяток. При чем, в самых разных компаниях. Включая очень крупные и известные.

Ну вот. Впереди выходные. Два дня, в которые можно заняться чем-то для семьи и себя. А на следующей неделе все тоже самое. Вне зависимости от общественного строя – этот процесс все равно будет выглядеть вот так. Из недели в неделю. Другое дело, что хочется понимать, зачем ты этим занимаешься. Для прибыли компании? Так мы ее не увидим никогда. Ради интересного проекта? Ну может быть, но не уверен что большинство разработчиков так уж увлечены этими проектами. Обеспечить семью? Да, это хорошая причина. Но это все равно будет путем в никуда. Ты постареешь, дети вырастут. А дальше что? Хочется приносить пользу обществу, которое, в конечном счете, тебя хотя бы отблагодарит. А пока приносим пользу только какому-то дяденьке, который в благодарность делится крошечками. Пока крошки более менее сочные. Но, поверьте, уже не у всех программистов.