Автоматизация разработки
Автоматизация стала неотъемлемой частью разработки программного обеспечения, причем не только в крупных компаниях, но и у небольших команд, а также у индивидуальных разработчиков. Автоматизируются сборка, установка и тестирование программ. В мире Linux всем знакомы команды ./ configure && make && make install, которые использовались до появления пакетных менеджеров типа apt и продолжают использоваться сейчас. Последовательность команд, запускающих проверку и компиляцию исходного кода, объединяется в набор скриптов для облегчения повторного использования в процессах разработки, отладки и тестирования ПО.
Следующая ступень в зрелости процесса разработки — это организация «непрерывности»: Continuous Integration, Continuous Delivery, Continuous Deployment. Слово «Continuous» в данном контексте и означает «непрерывность» — снижение временных затрат, связанных со взаимодействием нескольких специалистов в процессе разработки ПО.
Рассмотрим следующий сценарий. При устаревшем подходе к разработке много времени тратится на переход сборки кода из одного состояния в другое: разработчик написал код, собрал дистрибутив у себя, скопировал на общее файловое хранилище и написал электронное письмо об этом тестировщику. Тестировщик через некоторое время увидел письмо разработчика, скопировал и установил дистрибутив на стенд тестирования, затем приступил к работе. В случае успешного окончания тестирования поступает сигнал о передаче дистрибутива...