1001 ночь овертаймов, или Как выжить перед релизом AAA-игры
Я Алексей Яременко, Unity-разработчик со стажем уже более 7 лет. Занимаюсь разработкой игр, плагинов и графическим программированием. Мы вместе с коллегами, с которыми уже работаем давно, создали компанию Stan’s Assets from KAPPS. Нам посчастливилось стать первой в Украине командой, которая на протяжении 4 лет работала с легендарными Moon Studios над игрой Ori WotW. За это время мы получили колоссальный опыт. А сегодня бы хотел рассказать об одной из самых интересных и резонансных тем в нашей работе. Она касается овертайма и того, возможно ли его избежать в работе над такой ААА-игрой, как Ori. Немного забегу вперед и скажу, что если бы это было так, я бы сейчас не писал свой блог, но об этом дальше :)
На самом деле я хочу заглянуть по обе стороны баррикад. Вопрос овертаймов мегаактуален как для работодателей (дабы понимать, как разработчики переживают и воспринимают его), так и для самих девелоперов (чтобы узнать, как это работает в глобальной структуре, и понять, что вы не одни :) И даже те, кто еще не соприкасался с этим термином, будут начеку и смогут быть готовыми, как выживать и переживать этот процесс без вреда для ментального и физического здоровья. Ну что ж томить, погнали!
Почему в IT-мире случаются овертаймы и что же это такое?
Овертаймы не прилетают из космоса, их не приносят инопланетяне :) Они происходят, потому что кто-то что-то чуть-чуть подфейлил. И так бывает наверное чаще, чем мы думаем. Из своих наблюдений я могу выделить несколько причин овертаймов:
- Просчеты в планировании. Часто команда вначале рассчитывает на определенное количество работы, выполненное за месяц, а в итоге не успевает. Неправильный эстимейт задач — частая ошибка, тогда овертайм ее логичное следствие.
- Внезапная смена вектора разработки. Такое бывает, что заказчик пытается расширить пул задач либо количество той работы, которую уже утвердили. Например, мы делаем фичу А, но давайте сделаем ее такой А, которая немножко Б. И вроде бы изменение звучит не масштабным, но любое вмешательство в процесс будет влечь за собой задержки.
- Человеческий фактор: люди болеют, факапят фичи, задачи. Зачастую это начинается с чего-то маленького, а потом накатывается, как снежный ком. Обычно команды всегда закладывают время на ошибку и человеческий фактор, чтобы исправить проблемы. Но иногда решение таких факапов выходят за рамки отведенного на это времени.
Если в вашей команде все заряженные, отдохнувшие, успевают восстанавливаться и у вас хорошо работает менеджмент, то думаю, что вы меньше будете сталкиваться с переработками. Но я ни был не на одном проекте, где не было овертаймов. Если вы знаете, как жить без них и что сделать, чтобы их никогда не случалось — это очень круто. Расскажите мне, как у вас так получается? :)
Все, что систематически увеличивает твой рабочий день — это 100% овертайм. Работодатель платит деньги за стандартных 8 часов. Поэтому разработчик не должен работать больше без своей личной инициативы.
Но, как я писал раньше, я еще не встречал проекты, которые происходят без кранчей. Просто потому, что существует факторы, которые невозможно либо сложно учесть правильно в самом начале. Особенно это актуально в момент релиза продукта/игры и сразу после него. Именно тогда очень важно делать хот-фиксы (чтобы получив фидбэк от потенциальных пользователей, максимально быстро на его прореагировать, ведь это напрямую влияет на качество и количество продаж).
Безусловно, разработчики (и я в частности) не любят овертаймы. Ведь когда приходится много перерабатывать, то начинает страдать продуктивность. Ты не успеваешь отдохнуть, мозг же тоже требует отдыха. Потом это сказывается на качестве принятых решений, которые влияют на продукт. Страдает не только профессиональная, но и личная жизнь.
Но даже у овертайма есть свои позитивные стороны. В первую очередь это опыт, который он несет. В следующий раз девелопер будет в 10 раз внимательнее с тем или иным провтыком. А иногда овертаймы частично стают своего рода тимбилдингом для команд. Когда вы принимаете коллективное решение, что вам надо улучшить проект, вы знаете свою цель и каждый член команды активно участвует в этом процессе — это сближает.
Еще пример — если команда узнала, что раньше релиза предстоит важное событие, которое поможет продукту. Например, какая-то выставка, конференция, презентация. Тогда немного дополнительных часов могут помочь успеть к новой дате, и это даст больший толчок проекту. И если все согласны на такое — то это очень круто и во благо.
Но, к сожалению, таких случаев мало, часто овертаймы — это team destruction :) И моральный destruction для каждого. Ведь он напрямую влияет на психологическое и физическое здоровье и часто приводит к выгоранию. А если девелопер выгорел, то как разработчик он не может быть продуктивным, а как человек — не может быть счастливым. Если, конечно, он не «no-lifer», который готов работать все свое свободное время.
Об овертаймах в работе над ААА-игрой Ori WotW
В нашей работе над игрой Ori WotW с Moon Studios, конечно же, не обошлось без овертаймов. В какой-то момент мы поняли, что не успели с реализацией задачи. Мы разрабатывали editor-tools, которые помогали другим разработчикам. Поэтому ребята дальше не могли продолжать работу без нашего продукта. Учитывая этот факт, мы решили не оставлять все как есть, а согласились добровольно на то, что поработаем больше в эти дни, чтобы минимизировать задержку и разлочить другую команду.
Прямого принуждения не было, ведь мы собрались не для того, чтобы просто зарабатывать деньги, а для того, чтобы сделать крутую игру. И мы отдавали себе отчет в том, что делаем это по своей инициативе. В тот момент, когда кранчили мы — кранчили все :) И у нас не бывало такого, что только одна команда кранчит, а другие нет. Обычно это происходило у всех, и просто не было команд, которые полностью отдыхали, пока другие работают.
Больших периодов с овертаймами у нас было два: перед подготовкой трейлера Ori WotW на E3 и перед релизом. Это было по 3 недели нон-стоп, без выходных. Иногда мы имели какие-то единичные овертаймы, когда какой-то инструмент не успели доделать. Их мы не учитываем, ведь это рабочий процесс, если все в пределах адекватности.
Что касается оплаты овертаймов в Moon Studios, то нам выплатили бонусы уже после релиза игры. Я не считал, покрыли ли они то время, которое мы потратили на овертайм. В тот момент мы понимали, что хотим оставаться в компании и получать крутой опыт работы над ААА-игрой, и платили эту цену овертаймами. А получить бонусы в размере нескольких заработных плат после было очень приятно!
С точки зрения разработчика овертаймы в большой и маленькой компаниях не особо отличаются. Ты словно погружаешься в маленький кокон: тебе надо совладать с собой и стараться быть сфокусированным на продукте и оставаться продуктивным. Скорее всего, овертайм — это больше состояние души, когда пытаешься держать баланс, не упасть в крайности и не сойти с ума :)
Возможно, в больших компаниях это немного сложнее именно из-за коммуникации и большого количества команд. Ведь чем больше людей на проекте, тем сложнее общаться и договариваться. В целом вне зависимости от размера компании, когда вам нравится ваш проект, согласитесь, овертаймить проще :)
Что же делать, чтобы не выгорать во время овертаймов?
Для того чтобы проще переживать овертаймы, нужно быть к ним готовыми и уметь переключаться и перезагружаться. Одна из лучших таких возможностей — это выйти из зоны, где ты работаешь. Сменить обстановку на улицу, людей, кофе, прогулку, даже хотя бы магазин (так мозг будет занят более насущными вещами и получит возможность перезагрузиться).
Один из наших лайфхаков, который мы использовали на проекте — это поиграть в игры, чтобы переключиться. Даже посреди дня, чтобы дать мозгу «пряник» — поднять себе настроение. После быстрой игры ты возвращаешься к задачам и можешь смотреть на них иначе. Такие маленькие вознаграждения помогают держать себя в тонусе.
А еще нет ничего лучше, чем правильно организовать свое время и свой личный процесс овертайма. То есть четко расписать и запланировать, что ты делаешь в перерывы, когда общаешься с друзьями/семьей и так далее. Это тоже нужно уметь делать :) Учитесь планировать свой день и следовать этому плану, иметь несколько коротких перерывов. Психологически просидеть 14 часов сложнее, чем 2 по 7 либо 3 по 4,5. Даже готовка еды либо получасовой сериал могут помочь переключится. Потому что в пылу мыслей о проекте, не спланировав все заранее, потом может наступить хаос. Следственно об этом стоит подумать заранее.
Фокусируясь на проекте, не забывайте, что это работа, существуют и потребности организма, которые помогают жить комфортно. Поэтому спите минимум 7 часов, регулярно ешьте, чтобы мозг не чувствовал нехватку витаминов, снабжайте его микроэлементами, в которых он особо нуждается.
А можно ли вообще избежать овертаймов? На 100% — нет. Но хорошая коммуникация в команде и правильное планирование может помочь уменьшить количество непредвиденных овертаймов.
А можно отказаться от овертайма? Если вы работодатель, в случае отказа вашего сотрудника от овертайма может помочь исключительно коммуникация на уровне человек-человек. Нужно находить свой индивидуальный подход к каждому, мотивировать команду и находить общие решения. В противном случае приходится подключать внешние силы, чтобы выполнить запланированную работу.
Если же вы девелопер и понимаете, что не хотите этим заниматься, лучше сказать своему руководителю все сразу и честно, объяснив причину. Важно донести свою позицию правильными словами! Часто разработчики пытаются угодить начальству. Но тут не стоит забывать о себе, потому что если вы хороший работник, то99 вы сможете найти себе проект, на котором от вас не будут ничего требовать. Если от вас буквально требуют овертаймы, то это точно ненормально и нездорово. А если с вами обсуждают, возможен ли он, и вы приходите к общему решению — только тогда это может быть. Мы всегда за ворк-лайф баланс, потому что тот, кто умеет хорошо работать, должен уметь хорошо отдыхать, иначе некому будет работать :)
К чему мы пришли
Овертаймы не происходят моментально, зачастую о них узнают намного раньше. Но избежать их полностью невероятно сложно. Если назревает потребность в овертаймах, я бы посоветовал всем сначала обсудить все детали с менеджментом, лидами и всеми, кто его планирует и курирует. Это поможет понять, насколько он будет длительный, и подготовит вас психологически. Дальше спланируйте свои дни, лучше по часам.
И как можно скорее пройдите стадию принятия и смиритесь с тем, что этого не избежать :) А если это возможно сделать — то это лучшее решение. Поэтому, получив такой опыт, проанализируйте его и в следующий раз обратите свое внимание и сделайте все, чтобы их было меньше либо вообще не было. Обсуждайте это с командой и проявляйте инициативу — это будет вашей лучшей инвестицией в совместное с коллегами благополучие.
И вне зависимости от того, вы работодатель либо разработчик, пережить овертайм вам поможет только честность и ответственность. В любом случае, если вы работодатель, вам нужно честно обсуждать с работниками, что происходит, почему так вышло и что будет происходить в ближайшее время. Вы несете ответственность и должны понимать, что всегда важно договариваться. Если вы разработчик — говорите честно, скажите, сколько, когда и на что. Это поможет понять глобально всю картину и оставить все стороны в выигрыше!
Но когда ваши силы уже на исходе, а решения очень сложно найти — лучше сказать себе «стоп» и взять небольшую паузу. Это даст возможность передохнуть и найти новые решения, в которых, возможно, можно будет обойтись без овертаймов.
А как вы относитесь к овертаймам и справляетесь с ними?
50 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів