Автоматизация рутины: что автоматизировать, а что нет
Автоматизировать всё подряд — такой же перекос, как не автоматизировать ничего. Есть простая арифметика, которая показывает, что окупится, а что превратится в дорогую игрушку с постоянной поддержкой. Разбираю формулу, примеры и грабли, на которые наступают чаще всего.
Автоматизация продаётся как магия, а работает как арифметика. Прежде чем писать код, стоит потратить пятнадцать минут на подсчёт — и часть задач отвалится сама, потому что окажется, что руками дешевле.
Простая формула окупаемости
Возьмите задачу и посчитайте три числа: сколько минут она занимает за раз, сколько раз в месяц повторяется и сколько стоит час того, кто её делает. Перемножьте первые два — получите часы в месяц. Умножьте на третье — получите деньги в месяц.
Дальше сравните с оценкой разработки. Если автоматизация окупается за три-шесть месяцев — это хорошая инвестиция. Год — спорно. Больше года — почти наверняка не стоит, потому что за это время процесс успеет измениться.
Что окупается в первую очередь
По моему опыту, порядок примерно такой — от самого выгодного:
- Уведомления вместо ручных проверок. Заявка с сайта сразу в мессенджер, а не «зайти на почту вечером». Копеечная задача, а скорость ответа клиенту меняется радикально.
- Перенос данных между системами. Заявка с сайта в CRM, заказ в таблицу, товары из прайса на сайт. Ручное копирование — это ещё и ошибки, а не только время.
- Регулярные отчёты. То, что собирают руками раз в неделю по трём источникам. Собирается скриптом за минуту и не забывается.
- Сбор данных с сайтов. Цены конкурентов, наличие товаров, позиции в поиске. Раз в неделю руками — часы; скриптом — фоновая задача.
- Проверки состояния. Работает ли сайт, дошла ли заявка, не истёк ли сертификат, не упали ли позиции. Автоматика замечает это раньше клиентов.
- Массовые однотипные операции. Переименовать, пересжать, разложить, выгрузить — всё, что делается по одинаковым правилам.
Что не стоит автоматизировать
- Процессы, которые меняются каждый месяц. Пока правила не устоялись, автоматизация будет переписываться быстрее, чем окупаться.
- Редкие задачи. Раз в квартал — руками. Даже если задача нудная.
- Решения, требующие суждения. Робот отлично исполняет правила и никак не заменяет «посмотреть и понять, что тут что-то не так».
- Хаос. Если процесс не описан словами и у каждого сотрудника свой вариант — сначала наводится порядок, потом автоматизация. Иначе вы зафиксируете бардак в коде.
- Общение с клиентами целиком. Автоответы уместны для подтверждений и статусов; заменять ими разговор — быстрый способ потерять лояльность.
Мониторинг позиций: скучно, дёшево, окупается сразу
Типичная задача: раз в неделю проверить, на каких местах сайт по списку запросов. Руками это полчаса тоскливого труда, и делается оно нерегулярно — а значит, изменения замечают поздно.
Скрипт делает то же самое по расписанию и складывает результат в таблицу, где видна динамика. Но интереснее другое — грабли, которые обнаружились только на автоматике: если по запросу у поисковика нет релевантных результатов, он подставляет посторонние статьи, внешне неотличимые от нормальной выдачи. Наивный сборщик радостно записывает их как результат.
Лечится проверкой на релевантность: если ни один результат не содержит слов запроса — это не выдача, а заглушка, и в отчёт она попадать не должна. Мораль общая для всей автоматизации: робот не понимает смысла, он сравнивает шаблоны. Проверки на здравый смысл нужно писать явно.
Грабли, на которые наступают все
- Тихий отказ. Скрипт сломался, но никто не заметил, потому что он и раньше работал молча. Любая автоматизация должна уметь сообщать о падении.
- Работает у меня на компьютере. Пока задача живёт на ноутбуке сотрудника, она умирает вместе с его отпуском. Место таким вещам — на сервере, по расписанию.
- Нет журнала. Когда результат неверный, без истории запусков невозможно понять, что произошло.
- Зависимость от чужой вёрстки. Всё, что собирает данные с чужих сайтов, ломается при их редизайне. Это не баг, это природа задачи — закладывайте обслуживание.
- Нет ограничений. Автоматика, работающая без лимитов, однажды отправит тысячу писем или сделает тысячу запросов. Ограничители пишутся заранее, а не после инцидента.
- Никакой безопасности. Скрипты хранят пароли и ключи. Им нужно то же отношение, что и остальному коду: доступы отдельно, права минимальные.
Порядок внедрения без риска
- Опишите процесс словами. По шагам, как есть. На этом этапе часть шагов обычно оказывается лишними — и их надо удалить, а не автоматизировать.
- Замерьте. Сколько времени уходит сейчас. Без цифры невозможно понять, стало ли лучше.
- Автоматизируйте один шаг. Самый частый и самый механический. Не весь процесс сразу.
- Оставьте ручной режим. Возможность сделать по-старому должна сохраниться на время обкатки.
- Добавьте уведомления. И об успехе, и об ошибке. Особенно об ошибке.
- Через месяц пересчитайте. Сэкономленные часы против затрат на поддержку — это и есть ответ, двигаться дальше или остановиться.
Есть задача, которая съедает время каждую неделю?
Опишите её в двух предложениях — прикину, автоматизируется ли она разумными усилиями и что это даст в часах. Если окажется, что дешевле руками, так и скажу.
Чаще всего первым делом автоматизируют не то, что сложнее всего, а то, что чаще всего повторяется. Это редко выглядит впечатляюще — зато сразу возвращает часы.