Беглый взгляд на Agile ALM

05.11.2014 18:52
ALM

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

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

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

Agile ALM

В совокупности это:

  • «брак» между управлением бизнесом и разработкой ПО
;
  • процессы и инструменты, работающие как единое целое, без изолированных участков
;
  • охват полного жизненного цикла разработки ПО, включая управление требованиями, написание кода, тестирование и управление релизами;
  • обогащение ALM стратегиями гибкой разработки (Agile);
  • опора на контроль версий и управление конфигурациями ПО
;
  • опора на набор инструментов, позволяющий команде работать эффективно
.

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

Комплексный подход Agile ALM ведет к защите программных активов, улучшает повторное использование ресурсов и отслеживание требований, чистоту кода и результаты тестирования. Высокий уровень автоматизации, бесшовная интеграция и сервис-ориентация приводят к успеху проекта и лучшей осведомленности команды.

Agile ALM обогащает традиционное управление жизненным циклом стратегиями и ценностями методологии Agile. Процессы ALM сами по себе содержат предпосылки для внедрения гибкой методологии, поскольку ориентированы они на коммуникации и сотрудничество. Главный акцент гибкого ALM - это взаимодействие людей («человеческий фактор»), и с внедрением этой методики коммуникации и взаимодействие между ними, а также вес и ценность этого взаимодействия только увеличиваются (при непрерывной интеграции, например). Гибкий подход использует «легкие» инструменты при необходимости, основываясь на конкретных требованиях. В этой книге далее о системах больших, бюрократических и тяжеловесных мы будем говорить как о “монолитных” (это будет обсуждаться ниже). «Немонолитный» подход использует открытые стандарты и помогает внедрить гибкую методологию разработки ПО. Помимо того, Agile ALM может также поддерживать и другие методики разработки.

В конечном счете Agile ALM состоит из четырех важнейших элементов:

  1. Сотрудничество: все члены команды знают, что делают остальные. Таким образом, любой выбор можно сделать, основываясь на общем благе проекта. Это достигается персональными взаимодействиями, клиенто-ориентированным подходом и разработкой на основе задач, опирающейся на инструментарий.
  2. Интеграция: достижение бизнес-целей требует такой инфраструктуры предприятия, которая объединяет воедино роли, команды, потоки и репозитории в единую гибкую цепочку поставки программного обеспечения. Люди должны быть звеньями одной цепи, где бы они ни находились - удаленно или все в одном месте, и должны обладать инструментами, необходимыми для поиска нужной информации. Интеграция проходит на нескольких уровнях, включая внутренние и публичные сборки, и непрерывно поддерживается всесторонним тестированием на протяжении всего жизненного цикла.
  3. Автоматизация: упорядочение всего жизненного цикла во многом основывается на полной автоматизации процесса. Например, все этапы сборки, включая подготовку системы, настройку конфигурации системы контроля версий, непосредственно создание сборки, запуск технических и функциональных тестов, упаковку, отладку и создание артефактов, могут быть автоматизированы при помощи соответствующего функционала.
  4. Постоянное совершенствование: вы можете улучшить лишь то, что можно увидеть и измерить, поэтому для того, чтобы понять "на каком вы свете" в этом смысле, необходимо ПО, минимизирующее ручную работу в процессе сборки и поставки. Всестороннее тестирование, регулярное обсуждение пройденного пути (дабы понять, что и так хорошо, а что нуждается в улучшении), прозрачность и сбалансированность проекта (сбалансированность - в плане отсутствия авралов) позволят вам постоянно совершенствовать проект.

 

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


 

Оригинал: http://www.manning.com/huettermann/

Перевод: Александра Родсет

Еще интересные статьи на эту тему: