Современные тенденции в программной инженерии
В начале 2001 года века ряд ведущих специалистов в области программной инженерии (Алистер Коберн, Мартин Фаулер, Джим Хайсмит, Кент Бек и другие) сформировали группу под названием Agile Alliance. Слово agile (быстрый, ловкий, стремительный) отражало в целом их подход к разработке ПО, основанный на богатом опыте участия в разнообразных проектах в течение многих лет. Этот подход под названием "Быстрая разработка ПО" (Agile software development) базируется на четырех идеях, сформулированных ими в документе "Манифест быстрой разработки ПО" (Agile Alliance's Manifesto) и заключающихся в следующем:
индивидуумы и взаимодействия между ними ценятся выше процессов и инструментов; работающее ПО ценится выше всеобъемлющей документации; сотрудничество с заказчиками ценится выше формальных договоров; реагирование на изменения ценится выше строгого следования плану.
При таком подходе технология занимает в процессе создания ПО вполне определенное место. Она повышает эффективность деятельности разработчиков при наличии любых из следующих четырех условий:
когда она позволяет людям легче выразить свои мысли; когда она выполняет задачи, невыполнимые вручную; когда она автоматизирует утомительные и подверженные ошибкам действия.; когда она облегчает общение между людьми;
Технология не должна действовать против характера культурных ценностей и познавательной способности человека.
При этом следует четко понимать: при всех достоинствах быстрой разработки ПО этот подход не является универсальным и применим только в проектах определенного класса. Для характеристики таких проектов Алистер Коберн ввел два параметра - критичность и масштаб. Критичность определяется последствиями, вызываемыми дефектами в ПО, ее уровень может иметь одно из четырех значений:
C - дефекты вызывают потерю удобства; D - дефекты вызывают потерю возместимых средств (материальных или финансовых); E - дефекты вызывают потерю невозместимых средств; L - дефекты создают угрозу человеческой жизни.
Масштаб определяется количеством разработчиков, участвующих в проекте:
от 1 до 6 человек - малый масштаб; от 6 до 20 человек - средний масштаб; свыше 20 человек - большой масштаб.
По оценке Коберна, быстрая разработка ПО применима только в проектах малого и среднего масштаба с низкой критичностью (C или D). Общие принципы оценки технологий в таких проектах заключаются в следующем:
интерактивное общение лицом к лицу - это самый дешевый и быстрый способ обмена информацией; избыточная "тяжесть" технологии стоит дорого; более многочисленные команды требуют более "тяжелых" и формальных технологий; большая формальность подходит для проектов с большей критичностью; возрастание обратной связи и коммуникации сокращает потребность в промежуточных и конечных продуктах; дисциплина, умение и понимание противостоят процессу, формальности и документированию; потеря эффективности в некритических видах деятельности вполне допустима.
Одним из наиболее известных примеров практической реализации подхода быстрой разработки ПО является "Экстремальное программирование" (Extreme Programming - XP) . Этот метод предназначен для небольших компактных команд, нацеленных на получение как можно более высокого качества и продуктивности, и достигает этого посредством насыщенной, неформальной коммуникации, придания на персональном уровне особого значения умению и навыкам, дисциплине и пониманию, сводя к минимуму все промежуточные рабочие продукты.
Содержание раздела