Автоматизация
Ivanя не знал какие конкретно задачи ты хочешь автоматизировать, поэтому написал в общем.
Важно помнить, что в любой попытке что-то автоматизировать, мы преследуем цель сэкономить время. Поэтому если чувствуешь, что изучение инструмента/построение процесса занимает слишком много (относительно потенциальной экономии) времени, то стоит забить.
Подводные камни
Итак, с какими проблемами вероятнее всего придется столкнуться при попытке начать автоматизировать некоторые процессы в жизни/ на работе:
1. Нужно будет немало разбираться. Насколько немало зависит от того какие цели мы ставим перед собой. Но, в любом случае, людям учиться новым вещам тяжело, на это требуется много сил. И если у человека мало свободного времени, то с достаточно большой вероятностью обучение в определенный момент прервется, оставив после себя только боль, ещё больше усталости и минус в самооценку.
2. Первые результаты появятся далеко не сразу и будут они чаще всего кривыми и ненадежными. Их придется постоянно переделывать, ещё разбираться и так по кругу.
Инструменты
В зависимости от типа задачи которая перед нами стоит, можно условно выделить три категории программных инструментов:
1. Веб-сервисы которые связывают другие веб-сервисы между собой.
Самый простой вариант для того чтобы разобраться, но подходит не для всех задач и имеет достаточно низкую гибкость.
Примеры сценариев использования:
- Получать уведомления о событиях какого-то определенного типа. Это могут быть новости с определенными ключевыми словами, изменения определенного рода в погоде, курсе валют и подобной информации. Кол-во доступных источников определяется используемым сервисом.
- Фиксировать информацию определенного рода примерно по такого же типа фильтрам.
- Автоматизация умного дома. Включение света по расписанию, либо по прибытию домой. Включение обогревателя/котла в момент выхода с работы, ну и так далее. Тут уже упирается не в используемый сервис, а в том насколько навороченное оборудование используется.
Примеры инструментов:
- IFTTT - легче всего разобраться, бесплатная версия разрешает использовать одновременно не больше 3-ех сценариев. Платная стоит 4 доллара в месяц. Ну и в целом, это один из немногих вариантов которые ориентированы на любительское использование в личных целях, а не на автоматизацию в рамках предприятия.
- Zapier - сложнее разобраться, функционал неплохой, бесплатная версия порезана по функционалу и по кол-ву сценариев. Платная от 25 долларов в месяц.
- Microsoft Flow - легко разобраться, функционал хороший, беслпатной версии нету. Платная начинается с 15 долларов в месяц.
- Huginn - очень широкий функционал, полностью бесплатное решение с открытым исходным кодом. Но его нужно хостить на своём сервере (есть даже варианты которые позволяют сделать это бесплатно, если нагрузка небольшая). Это означает что помимо работы самого приложения (которое и так более сложное для освоения чем предыдущие), придётся еще хотя бы очень базово учиться работе с Linux-системами и командной строкой.
2. Макросы.
Воспроизводит зараннее записанную/прописанную последовательность действий. Покрывает другой тип задач, нежели первая категория. Подходит, в основном, для задач которые выполняются локально на ПК, с помощью взаимодействия с графическим интерфейсом либо пользовательским вводом.
Примеры сценариев использования:
Любые рутинные действия, которые можно описать одинаковой последовательностью кликов/вводов. Хорошо подходит для обработки каких-то отчетов одинаковой структуры. Иногда используется при работе с Экселем.
Примеры инструментов:
- Key Manager\- в меру простой, в меру функциональный. Неплохой вариант для начала. Стоит 50 долларов единоразово, но достаточно легко найти взломанную версию.
- AutoHotkey, AutoIt и прочие вариации \- сложно осваивать, полностью бесплатно, очень широкий функционал.
3. Скриптовые языки программирования.
В теории, самый широкий спектр возможностей. Полностью бесплатно. Но сложнее всего в освоении \+ некоторые задачи быстрее и удобнее сделать с помощью других сервисов. Ещё плюсом является почти полная независимость от любых внешних факторов. Потомушо сервис может закрыться, упасть, поменять условия использования и вообще всё что угодно что стукнет в голову владельцам. Ну а язык программирования даже если и изменят в какую-то плохую сторону, всегда можно будет продолжать пользоваться старой версией.
Примеры сценариев использования: абсолютно любые, на какие хватит фантазии и навыков программирования.
Примеры инструментов:
Самым оптимальным вариантом сейчас является Python.
В какую сторону еще стоит посмотреть.
Иногда гораздо больший чем автоматизация эффект дают:
1. Анализ рабочего времени на предмет неоптимальных действий. Для этого записываешь на что и сколько уходит времени, потом садишься и думаешь что можно улучшить.
Вариант достаточно несложный, может дать результат быстро. Требует некоторой дисциплины и чуточки системного подхода.
2. Изменение внутренних установок относительно работы. Люди сильно подвержены большому количеству когнитивных искажений. Часто, если научиться их замечать это позволит оптимизировать свою работу.
Вариант достаточно непростой с точки зрения нагрузки на мозг. Требуется некоторое количество критического отношения к миру и к себе.
Почитать на тему можно:
- Книга Думай медленно, решай быстро, автор Даниел Каннеман.
- Книга Рациональность: от ИИ до зомби, автор Элиезер Юдковски
- Материалы с сайта lesswrong.ru
3. Написание регламентов/стандартизация рабочих процессов. Человеческий мозг так устроен, что человеку гораздо легче работать в рамках понятного и зараннее описанного процесса. Если описания нету, приходится каждый раз при наличии выбора принимать решение. А принятие решения, пусть даже и простого, это всё равно дополнительный расход когнитивного ресурса. В итоге, когда когнитивный ресурс заканчивается, человек устает, становится нетрудоспособным, ну и в целом испытывает сильный дискомфорт. Если подобное происходит регулярно, то состояние становится хроническим, ты теряешь радость жизни ну и тд. Страшная штука, в общем)).
К примеру, можно начать с того что определить структуру хранения информации/документов. + физически хранимых предметов. Можно описать выполняемые действия при каких-то часто встречающихся/регулярно происходящих событиях. К примеру, чек-лист выполнения ежемесячного отчета, регламент введения в курс работы новых сотрудников, ну и так далее, тут развернуться есть где.
4. Найм фрилансера. В конце концов, даже в рамках автоматизации, если есть конкретная задача, то можно пойти на какую-то фриланс-биржу и заплатить за решение которое сделает человек который в этом шарит. Если посчитать по кол-ву затраченного времени на обучение, то часто получится в десятки/сотни раз выгоднее.
С чего начинать процесс если уж начинать
Я практически всегда начинаю с бумаги и ручки на которых я изображаю примерную схему процесса который я хочу получить. Это позволяет понять какие требования у меня есть к инструменту и искать конкретно то что мне подойдет, а не бесконечно перебирать кучу решений.
К тому же, бумага и ручка позволяют максимально гибко изобразить всё что ты хочешь, гибче чем любой инструмент)). Потомушо часто от сложного незнакомого ПО, в котором ты пытаешься реализовать задачу которую сам не до конца сформулировал, очень быстро начинаешь испытывать фрустрацию, забиваешь на всё хуй и идёшь пить пиво вместо этого.
Ну а после схемы на бумаге уже ориентируешься по обстоятельствам.
Вот, на этом, в принципе и всё, про материалы которые стоит учить детям, расскажу в другой раз.