Итак, представим, что ты – разработчик.... Нет, немного не так. Ты – чертов сотрудник, который что-то может в автоматизацию и периодически что-то всем вокруг пишет на VBA, и который лично вовлечен во все происходящие процессы.  Собственные процессы обычно автоматизируются на ура, если ты не имеешь раздвоения личности. Согласование с самим собой, как правило, идеальное, и та вещь, которую ты напишешь, ты сам ей и пользуешься, тот интерфейс, который прикрутишь, с тем и работаешь. Тот источник данных, который берешь, тот ты берешь всегда. Абсолютно идеальный случай.  И это засада.  Например, автоматизация отслеживания и сохранения в папку документов из почты по маске.  Сделал себе такую штуку. Уже на третий день выяснил, что чертов подрядчик А, шлющий эти акты и накладные, имеет тенденцию маску, которая записана в инструкции им и согласована на высшем уровне, писать сокращенно или вообще не писать. Надо застроить козла – пишу гневное письмо аж гендироктору подрядчика, что работники его не выполняют регламент. Проходит неделя, ситуация не изменяется, зато есть обещание директора все исправить. К тому времени уже пять подрядчиков маску так или иначе корежат, и все пять обещают исправиться. Но работники их, видимо имеют память как у рыбки, и снова, и снова по маске у меня пролетают документы мимо, и в трубку орет матом неадекватный менеджер, почему склад не согласует им приемку.  Окей! Я же не идиот. Пусть будет много масок. Создается файлик справочника масок и по нажатию кнопки маска в него добавляется. Работает. Но вместо автоматизированного сохранения вложений определенного типа появляется ручная операция – глазками определить, что за тип письма+ добавление масок кнопкой.  Дальнейшая обработка сохраненного – такой же танец с бубном. Так же, как не выдерживают маску письма, не выдерживают и форматы документов. К логике поиска опорной строки (с которой начинается таблица с информацией) добавляется логика поиска элементов заголовка, причем не одного. Уже исхожу из презумпции виновности подрядчика, что он не сможет корректно заполнить акты. Но и тут человеческий фактор снова  убил напрочь – на этапе тестирования макротула обнаружилось, что некоторые акты содержат картинки со скриншотами текста.... Опять дописывается логика обработки «пустого заголовка».  Но все эти нюансы в целом мне хорошо известны, я код по ходу дела обкатываю в практической работе, в большинстве нюансы и ошибки  держу в памяти и даже обхожусь без интерфейса, просто в дебаге, напримнер, пропуская строчки при вываливании некоторых ошибок. На этом этапе автоматизации можно считать, картина радужная и идиллическая. Я запускаю макрос, он отрабатывает, я просматриваю, что в конечном списке не так после его работы (например, не вытащил  нужные номера или дату переврал из актов), что-то правлю вручную, что-то отфутболиваю обратно подрядам, и все нормально.  А потом начинается отпуск.  Первая попытка передать другу просто формируемый из разных источников отчет на макросах другу провалилась полностью. Я сидел в гостинице в транзите, улетая в отпуск, слушал китайское телевидение одним ухом, а вторым пытался в режиме конференции еще раз показать ему, как все работает. Этот отчет, который я в первый день создал у него удаленно из гостиницы, был первым и последним отчетом, который он смог создать и отправить за весь мой отпуск. Подробнейшие инструкции  ни хрена не помогают там, где нужен интерфейс, понятный идиоту.  Ситуация повторилась. Склад демонтажа я передавал новому коллеге. Те приложения, которые вполне исправно работали у меня, упорно не желали у него работать так, как надо. Потому что надо было немного понимать, как и в какой последовательности работает. Я сел с ним рядом на неделю. Я по 10, 20, 30 раз за день повторял ему последовательность операций и возможные ошибки и ограничения. У него всю эту неделю рождались идеи о том, как это надо ему, и локально у него на ноуте я написал в рамках «жалоб и предложений» чуть ли не целую надстройку под проверку того, что для меня казалось простым, естественным и отметаемым по дефолту сразу же.  Инициатива нового специалиста периодически то корячило форматирование, то удаляла поля, то просто запускала макросы в разной последовательности, в результате чего автоматизация процесса стала болью в заднице вплоть до тех пор, пока парень не ушел из компании втихую, а начальник без зазрения совести отдал его ноут айтишникам на форматирование диска. Каких бы успехов ни удалось добиться по универсализации того, что исправно у меня работало больше полугода, они все были спущены в трубу.  До этого эпизода я думал, что тупыми бывают только подрядчики. Но оказалось, что ими могут быть все вокруг.  Каждый уход в отпуск был квестом по передача всего того автоматизированного другим. Я нашел коллегу, который славился тем, что подробно и буквально выполнял все инструкции. Я написал огромную подробнейшую инструкцию. Возвратившись, обнаружил, что отчет по перемещениям этот герой все-таки заполнял вручную, а не нажатием одной кнопки.  «А можешь ли ты сделать что-нибудь такое, чтобы у нас сразу все данные из актов собирались в форму и считались промежуточные итоги по категории?» - обратился ко мне начальник, похрустывая печенькой с кофе.   Я, разумеется, смог. Меня не пинали по текучке полтора дня, и я запилил это чудо, которое начальник тут же побежал подписывать у заказчика. Через день прибежал с правками по форматам. Внес правку. Спросил, а что мне за это будет.  «У меня для тебя есть бонус» - многозначительно произнес начальник, но отказался рассказать, в чем он выразится и как оформят.  Ну, думаю, у начальства были карточки с получением мелких бонусов – от 1 до 5 тысяч рублев... ну, расплатится карточкой. Через 2 дня начальник собрал немногочисленных подчиненных и в торжественной обстановке вручил мне... термокружку, которую заказчик раздавал на последнем банкете для руководства.  Но вот с внедрением все прошло хорошо и замечательно – получив от начальства пинок, ответственный человек взял макрос на вооружение, и никаких жалоб и предложений я после этого не слышал. Вот такая вот магия.  Такие вещи повторялись, я выторговывал временами больше, чем кружку – например, закрывал автоматизацию переработками или уходов на удаленку. Но внедрение при этом шло вполне успешно – имея четкие техзадания и начальственное распоряжение, отвертеться, сославшись на неудобство, непонимание, или втихую саботировать под флагом «нахрен мне это надо» даже не пытались. Каждое утро я заходил в каморку к начальникам смен и каждое утро выслушивал нытье, как долго и муторно им работать, сколько времени уходит на мои запросы, и как они ночами сидят, портят зрение перед экраном.  «Вам нужно автоматизировать вот это и вот это» - я не просто говорю, но и реально делаю.  Написал им тул для облегчения анализа циклических инвентаризаций. Спустил с инструкцией.  С самого же начала выяснилось, что по смене информацию никто не передавал, и первый, на кого попало письмо на общий ящик, его же и похоронил. Хорошо, думаю, в следующей смене уже будет результат. Прошла следующая смена – письмо начальнику передали, но так как его предшественник ни в чем не разобрался, то не стал разбираться и этот – типа «Андрюха прошаренный, все тут знает, а я тут третий месяц работаю».  Так, оглядываю «аквариум». Вот оно – у нас сидит старший оператор, они работают не по 12 часов, а сутками. Соответственно, надо ее научить. И она проследит, и покажет, расскажет начальнику смены, как делается анализ и коррекция без многочасового вбивания с бумажек, с данными из терминала. Поняла? Поняла. В 18 часов иду домой, с уверенностью, что все на мази.  С утра захожу в каморку, и вижу, что начальник смены вбивает это же самое с бумажки. Оказалось, что он завис на этапе, когда список материалов надо предварительно схлопнуть сводной таблицей (как выяснилось, только два из четырех начальников схлопывали список перед анализом, двое считали суммы вручную). Он не понял, что такое сводная таблица, и как с ней работать.  Показываю, рассказываю. К вечеру скидываю новую версию с дописанным схлопыванием. Все, выгрузил задание, выгрузил результат, макрос обработал, дал указивки по расхождениям, подцепил адреса, прошелся по пересортам и неправильным адресам.  Ну, думаю, вот теперь-то все. Всем на уши присел, всем показал, все проверено. Но тут... в системе упал дашборд и они перестали делать цикличку на неделю, пока мне техподдержка втирала, что все нормально и слала мне скрины дашборда, который работал только в Китае. За эту неделю все прочно забыли, что им надо сделать с анализом и пошли на второй круг. Среди ночи, наконец, мне позвонил самый ответственный из старших смен и стал спрашивать, как пошагово делать анализ. Я попытался отослать к инструкции, потому что час ночи, и я уже сплю, но он ее не нашел. На втором звонке жена громко сказала в трубку, куда ему идти, но он оказался упорен и все-таки признался, что ничего не понимает и ему нужна помощь, я терпеливо продублировал устно все то, что более недели рассказывал всем и вся.  Наутро, злой как черт, я согнал с места этого бедолагу, залез в его файлик с инвентаризациями – ура! Удалось пробить этот вал раздолбайства и умственной лени почитать инструкцию.  Две недели ушло на внедрение программки, написанной за пару часов. И это не предел.  Начальник склада, когда я ходил у него по кабинету, громко возмущаясь, что такую хрень внедрить уходит столько времени, доверительно сказал: «А ты представь, что будет, если они решат, что по результатам автоматизации кого-то уволят...» По сути, человеческий фактор в автоматизации всегда является основным. Программы не запускают сами себя (мы не говорим о сложных системах ИИ, мы говорим об автоматизации частных процессов). Мало, чтобы программа работала, надо заставить человека научиться ей пользоваться и захотеть ей пользоваться. И тут мы можем встретить такой парадокс, что облегчение труда – так себе мотиватор. Потому что надо для этого предварительно, пусть разово, но затрачивать труд на то, чтобы узнать новое, проверить, попробовать, освоить. И этот труд для многих является гораздо менее привлекателен, чем уже знакомая рутина, пусть и уныло-многочасовая.  Мы можем заставить программу делать что угодно, но порой очень трудно заставить людей просто жать на кнопку.  Аналогично же и с попытками заставить людей формировать документы строго по шаблону для автоматизации прогрузки. Двух удастся заставить. Десять – уже вряд ли. Проще построить программу к тому, что люди идиоты, чем сделать их более обучаемыми.