Шаг назад - и автоматизируйте, автоматизируйте, автоматизируйте!
(В оригинале - Step Back and Automate, Automate, Automate)
Я работал с программистами, которые, когда их просили подсчитать количество строк кода в проекте, вручную открывали код в текстовом редакторе и суммировали значение «количество строк» для каждого файла. Через некоторое время они вновь повторяли эту процедуру, когда их снова об этом просили. И еще раз. И еще. И это было плохо.
В другой раз я работал на проекте, имеющем громоздкий процесс сборки, включающий помещение результата на сервер и множество кликов мышкой. Однажды этот процесс был автоматизирован, после чего скрипт запускался сотни раз, гораздо чаще, чем предполагалось изначально. И это было хорошо.
Итак, почему люди делают одну и ту же рутинную работу множество раз вместо того, чтобы вернуться на шаг назад и найти время на ее автоматизацию?
Первое частое заблуждение: автоматизация – это только для тестирования.
Безусловно, автоматизация тестирования – супер, но зачем на этом останавливаться? Повторяющиеся задачи есть в любом проекте: контроль версий, компиляция, сборка, генерация документации, отчеты. Для большинства этих задач скрипт будет работать лучше, чем мышка. Да и выполнение скучной работы делается быстрее и надежнее
Второе частое заблуждение: у меня есть IDE, мне не нужна автоматизация.
Вы когда-нибудь слышали аргумент «Но ведь это работает (компилируется/запускается/проходит тест) на моей машине» от своих коллег? Современные IDE имеют тысячи настроек, и невозможно обеспечить, чтобы у каждого в команде эти настройки были идентичными. Системы автоматизации сборки вроде Ant или Autotools обеспечивают вам повторяемость эксперимента.
Третье частое заблуждение: мне придется изучить экзотические инструменты, чтобы реализовать автоматизацию.
Вы можете многого добиться со встроенным в ОС языком (например, bash или PowerShell) и системами автоматизации сборки. Если необходимо взаимодействовать с web-сайтами, используйте инструмент вроде iMacros или Selenium.
Четвертое частое заблуждение: я не смогу автоматизировать это потому что я ничего не могу сделать с этим форматом файлов.
Если в вашем процессе присутствуют документы Word, таблицы или изображения, автоматизация действительно может оказаться непростой. Но – действительно ли вам нужны именно эти форматы? Можете ли вы использовать обычный текст, текстовые таблицы, XML, инструмент генерации рисунка из текстового файла? Иногда небольшая настройка процесса может дать серьезный выигрыш в снижении рутины.
Пятое частое заблуждение: у меня нет времени в этом всем разобраться.
Вам не нужно изучить весь bash или Ant, чтобы начать. Изучайте в процессе использования. Как только у вас появится задача, которую, вам кажется, можно автоматизировать, изучите только то, что нужно для ее автоматизации. И сделайте это как можно раньше, ведь в начале проекта найти «лишнее» время проще. И как только у вас получится, вы (и ваш босс) увидите, что в автоматизацию стоит инвестировать ресурсы.
Автор оригинала - Cay Horstmann