Релиз-инжиниринг - Release engineering

Релиз-инжиниринг , часто сокращенно RE или сокращенное соединение Releng , представляет собой подраздел в разработке программного обеспечения, связанный с компиляцией , сборкой и доставкой исходного кода в готовые продукты или другие программные компоненты. Борис Дебич из Google Inc., связанный с жизненным циклом выпуска программного обеспечения , сказал, что разработка выпуска относится к разработке программного обеспечения, как производство относится к производственному процессу:

Релиз-инжиниринг - это разница между производством программного обеспечения в небольших группах или стартапах и производством программного обеспечения промышленным способом, который воспроизводим, дает предсказуемые результаты и хорошо масштабируется. Эти методы промышленного стиля не только способствуют росту компании, но и являются ключевыми факторами, способствующими росту.

Джон О'Дуинн и Брэм Адамс неоднократно заявляли о важности разработки релизов для обеспечения роста технологической компании. Несмотря на то, что цель релиз-инжиниринга не заключается в том, чтобы обременять разработку программного обеспечения наложением процессов, это часто рассматривается как признак зрелости организации и развития.

Современный релиз-инжиниринг касается нескольких аспектов производства программного обеспечения:

Идентифицируемость
Возможность идентифицировать все источники, инструменты, среду и другие компоненты, составляющие конкретный выпуск.
Воспроизводимость
Возможность интеграции исходных компонентов, сторонних компонентов, данных и внешних развертываний программной системы, чтобы гарантировать стабильность работы.
Последовательность
Миссия - обеспечить стабильную основу для разработки, развертывания, аудита и отчетности для компонентов программного обеспечения.
Ловкость
Постоянное исследование влияния современных методов разработки программного обеспечения на производительность цикла разработки программного обеспечения, например, непрерывная интеграция и продвижение зеленых инициатив.

Релиз-инжиниринг часто является центром интеграции для более сложных команд разработчиков программного обеспечения, занимающих промежуточное положение между разработкой, управлением продуктами, обеспечением качества и другими инженерными усилиями, также известными как DevOps . Команды разработки релизов часто выступают в роли контролеров (например, в Facebook, Google, Microsoft) для определенных критически важных продуктов, где их суждения формируют параллельную линию ответственности и полномочий в отношении производственных релизов (подталкиваний).

Часто отслеживание изменений в системе управления конфигурацией или системе контроля версий является частью области деятельности инженера по выпуску. Ответственность за создание и применение схемы нумерации версий в программном обеспечении - и отслеживание этого числа до конкретных исходных файлов, к которым он применяется, - часто ложится на разработчика. Создание или улучшение автоматизации в производстве программного обеспечения обычно является целью инженера по выпуску. Сбор, отслеживание и предоставление всех инструментов, необходимых для разработки и создания конкретной части программного обеспечения, может быть задачей разработки релиза, чтобы надежно воспроизводить или поддерживать программное обеспечение через годы после его первоначального выпуска для клиентов.

В то время как большинство инженеров программного обеспечения или разработчиков программного обеспечения выполняют многие или все вышеперечисленное в ходе своей работы, в более крупных организациях специальность инженера по выпуску может быть применена для координации разрозненных исходных деревьев, проектов, групп и компонентов. Это дает разработчикам возможность реализовать функции в программном обеспечении, а также дает возможность инженерам по обеспечению качества более широко и глубоко тестировать производимое программное обеспечение.

Инженер по выпуску может предоставлять программное обеспечение, услуги или и то, и другое группам разработки программного обеспечения и обеспечения качества программного обеспечения. Предоставляемое программное обеспечение может создавать инструменты, сборку или другие сценарии реорганизации, которые берут выходные данные компиляции и помещают их в предварительно определенную древовидную структуру, и даже для разработки и создания установщиков для использования группами тестирования или конечным потребителем программного обеспечения. . Предоставляемые услуги могут включать автоматизацию сборки (компиляции) программного обеспечения , автоматическую интеграцию тестов , отчетность о результатах, а также создание или подготовку систем доставки программного обеспечения, например, в форме электронных носителей (компакт-диски, DVD) или электронных механизмов распространения программного обеспечения.

Связанные дисциплины

Ссылки

дальнейшее чтение

  • «Методология выпуска программного обеспечения» Майкла Э. Бэйса; ISBN  0-13-636564-7 .
  • «Управление конфигурацией программного обеспечения» Х. Рональда Берлака; ISBN  0-471-53049-2 .
  • «Разработка методологии поддержки решений о выпуске программного обеспечения» Х. Сассенбург; ISBN  90-367-2424-4 .
  • «Непрерывная доставка: надежные выпуски программного обеспечения с помощью автоматизации сборки, тестирования и развертывания» Джез Хамбл, Дэвид Фарли; ISBN  0-321-60191-2