Автоматизация в геймдеве и не только
Ну, а в чем, собственно вопрос? Автоматизация - это же просто супер, это экономия времени и ресурсов! Но… не всё так просто и она не везде нужна. Сейчас поясню.
Начнем с ошибок автоматизации:
Слишком рано
Например, в вашем проекте требуется много графического контента, и вы решаете первым делом автоматизировать его создание.
Вы пишете пайплайн, отрабатываете каждый шаг, затем скрипты под каждый этап, возможно, используете платные ресурсы для этого.
И вот, у вас есть полноценная машина для создания контента, вы довольны тем, что потратили на это время, ведь оно с лихвой окупится в будущем.
Теперь разработка в самом разгаре, вы делаете прототип игры. Делаете, конечно, с использованием нового контента. И вот тут-то и начинаются проблемы. Вы понимаете, что контент вам нужен более разнообразный, что стилистику нужно менять, что процесс создания контента не полностью подходит и вам нужно все переделать заново.
В итоге вы потратили кучу времени на бесполезную работу. А всё почему? Вы внедрили автоматизацию в процесс слишком рано.
Автоматизация ради автоматизации
Одиночный разработчик решает сделать небольшую игру, и имея опыт работы в больших компаниях, он пытается организовать процесс так же, как и на его прошлом месте работы.
Он пишет документы по стандартизации, организовывает процесс работы в таск-трекере, настраивает чек-листы, автоматизацию изменения статусов… В общем всё, что нужно для работы в большой команде, а не в одиночной разработке.
В итоге он получает вместо эффективности и порядка, больше затраченного времени на бюрократию для себя.
Хаос в процессах
Если вы работаете в режиме пожара: в понедельник утверждаете один план по созданию контента, а в пятницу приходят новые данные, из-за которых вам нужно внедрять совершенно другие материалы в проект, то автоматизация здесь не поможет.
Имиджевая автоматизация
А иногда бывает внедрение автоматизации только для того, чтобы похвастаться этим перед другими. Так что если после посещения конференции или вебинара вас потянуло что-то внедрить, потому что это есть у конкурента, сто раз подумайте. А нужно ли оно именно вам?
Набивание ценности и уход от задач
Вместо того, чтобы писать очередную фичу для игры, программист решает автоматизировать какой-то процесс. При этом страдают другие задачи, срывается план и ценность автоматизации снижает уход проекта от сроков.
Ну что? Достаточно примеров? Перейдем к тому, как избежать проблем с автоматизацией.
Для начала нужно зарубить себе на носу:
Автоматизация - для устранения потерь, а не для усложнения жизни!
Какие виды потерь бывают по Lean - Что именно автоматизируем:
- Лишние движения - нажимаем 10 кнопок, чтобы получить результат, который можно было бы сделать с помощью одной кнопки
- Ожидание - программист ждет ассетов от художника и не может продолжить работу
- Перепроизводство - художник делает 10 персонажей, из которых в итоге используется один
- Дефекты - например баги, которые можно было бы поймать на автотестах
В своей работе я вывела три критерия, по которым понимаю — пора внедрять автоматизацию. И что очень важно: процесс должен соответствовать всем трем пунктам сразу.
Критерии, когда нужно внедрять (обязательно все пункты)
- Вы уже сделали эту работу несколько раз и Вам предстоит её делать много раз снова.
- Этот процесс отнимает больше времени, чем будет затрачено на автоматизацию
- Процесс точно можно назвать рутинным, он не требует вариабельности и творческого подхода.
Индикаторы процессов-кандидатов на автоматизацию:
- Работа съедает энергию и кажется скучной
- В этом процессе повторяются однотипные ошибки
- Постоянно слышите или говорите - Осталось сделать всего “название процесса”
- Задачу можно доверить сотруднику без опыта и спец навыков
- В roadmap задачи по данному процессу занимают гораздо больше времени, чем другие
Автоматизация - это инструмент, а не цель, и при правильном использовании она поможет сэкономить и время, и ресурсы!