в облаке
Попробовать

Инструментарий Agile ALM

17.11.2014 13:54

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

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

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

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

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

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

Некоторые организации используют точечные решения в плане гибкого ALM, другим более комфортно делать слаженной работу отдельных инструментов. У обоих вариантов есть свои преимущества и недостатки. Чрезмерная сложность - это потенциальный риск в обоих случаях; цель в том, чтобы минимизировать неконтролируемое ее возрастание. Если вы опираетесь на “легкие” инструментарии, гибкость может значительно улучшиться, поскольку вы сможете с легкостью заменять отдельные маленькие узлы, не трогая всего остального. Многие компании добиваются наилучших результатов (здесь мы понимаем под ними минимизацию сложности и максимизации гибкости), внедряя у себя культуру открытого кода. Это значит, что они используют у себя набор настраиваемых инструментов, ориентированных четко на решение конкретной задачи, постепенно наращивая свою инфраструктуру.

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

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

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

 

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

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

Сертифицированные курсы

Андрей Плетенев. Онлайн курс Agile. SCRUM. Курс включает более 20 уроков с практическими заданиями, которые индивидуально проверяются и комментируются тренером.

 

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