Автоматизация в геймдеве и не только

Ну, а в чем, собственно вопрос? Автоматизация - это же просто супер, это экономия времени и ресурсов! Но… не всё так просто и она не везде нужна. Сейчас поясню.

Начнем с ошибок автоматизации:

Слишком рано

Например, в вашем проекте требуется много графического контента, и вы решаете первым делом автоматизировать его создание.

Вы пишете пайплайн, отрабатываете каждый шаг, затем скрипты под каждый этап, возможно, используете платные ресурсы для этого.

И вот, у вас есть полноценная машина для создания контента, вы довольны тем, что потратили на это время, ведь оно с лихвой окупится в будущем.

Теперь разработка в самом разгаре, вы делаете прототип игры. Делаете, конечно, с использованием нового контента. И вот тут-то и начинаются проблемы. Вы понимаете, что контент вам нужен более разнообразный, что стилистику нужно менять, что процесс создания контента не полностью подходит и вам нужно все переделать заново.

В итоге вы потратили кучу времени на бесполезную работу. А всё почему? Вы внедрили автоматизацию в процесс слишком рано.

Автоматизация ради автоматизации

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

Он пишет документы по стандартизации, организовывает процесс работы в таск-трекере, настраивает чек-листы, автоматизацию изменения статусов… В общем всё, что нужно для работы в большой команде, а не в одиночной разработке.

В итоге он получает вместо эффективности и порядка, больше затраченного времени на бюрократию для себя.

Хаос в процессах

Если вы работаете в режиме пожара: в понедельник утверждаете один план по созданию контента, а в пятницу приходят новые данные, из-за которых вам нужно внедрять совершенно другие материалы в проект, то автоматизация здесь не поможет.

Имиджевая автоматизация

А иногда бывает внедрение автоматизации только для того, чтобы похвастаться этим перед другими. Так что если после посещения конференции или вебинара вас потянуло что-то внедрить, потому что это есть у конкурента, сто раз подумайте. А нужно ли оно именно вам?

Набивание ценности и уход от задач

Вместо того, чтобы писать очередную фичу для игры, программист решает автоматизировать какой-то процесс. При этом страдают другие задачи, срывается план и ценность автоматизации снижает уход проекта от сроков.

Ну что? Достаточно примеров? Перейдем к тому, как избежать проблем с автоматизацией.

Для начала нужно зарубить себе на носу:

Автоматизация - для устранения потерь, а не для усложнения жизни!

Какие виды потерь бывают по Lean - Что именно автоматизируем:

- Лишние движения - нажимаем 10 кнопок, чтобы получить результат, который можно было бы сделать с помощью одной кнопки

- Ожидание - программист ждет ассетов от художника и не может продолжить работу

- Перепроизводство - художник делает 10 персонажей, из которых в итоге используется один

- Дефекты - например баги, которые можно было бы поймать на автотестах

В своей работе я вывела три критерия, по которым понимаю — пора внедрять автоматизацию. И что очень важно: процесс должен соответствовать всем трем пунктам сразу.

Критерии, когда нужно внедрять (обязательно все пункты)

- Вы уже сделали эту работу несколько раз и Вам предстоит её делать много раз снова.

- Этот процесс отнимает больше времени, чем будет затрачено на автоматизацию

- Процесс точно можно назвать рутинным, он не требует вариабельности и творческого подхода.

Индикаторы процессов-кандидатов на автоматизацию:

- Работа съедает энергию и кажется скучной

- В этом процессе повторяются однотипные ошибки

- Постоянно слышите или говорите - Осталось сделать всего “название процесса”

- Задачу можно доверить сотруднику без опыта и спец навыков

- В roadmap задачи по данному процессу занимают гораздо больше времени, чем другие

Автоматизация - это инструмент, а не цель, и при правильном использовании она поможет сэкономить и время, и ресурсы!