Опубликован: 20.08.2004 | Уровень: специалист | Доступ: свободно | ВУЗ: Новосибирский Государственный Университет
Лекция 11:

Модели жизненного цикла в некоторых реальных методологиях программирования

< Лекция 10 || Лекция 11: 1234 || Лекция 12 >

Адаптивная разработка (ASD) по Хайсмиту

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

Основу ASD составляют три нелинейные, перекрывающие друг друга фазы: обдумывание, сотрудничество и обучение, относящиеся к каждому периоду разработки, который завершается выпуском релиза (см. рис. 11.4). Подчеркивается, что планирование в окружении, которое требует адаптивности, является парадоксом, поскольку результаты в этом случае всегда непредсказуемы. При обычном планировании отклонения от плана являются ошибками, которые нужно исправлять. В адаптивных разработках отклонения ведут к решениям, которые объективно обусловлены, а потому их следует считать правильными.

Модель жизненного цикла адаптивной разработки (ASD) [24]

увеличить изображение
Рис. 11.4. Модель жизненного цикла адаптивной разработки (ASD) [24]

Неопределенность в столь непредсказуемой среде преодолевается за счет активного сотрудничества разработчиков. При этом внимание руководства направлено не столько на объяснения, что именно нужно делать, сколько на обеспечение коммуникации, при которой разработчики сами находят ответы на возникающие вопросы. Отсюда следует повышенное внимание к обучению, значение которого в предсказуемых методологиях часто занижается: все расписывается заранее, так что потом остается только следовать плану. Хайсмит пишет [41], что " в адаптивном окружении обучения не избежать всем участникам проекта — и разработчикам, и их заказчикам, поскольку и те и другие в процессе работы должны пересматривать собственные обязательства, а также использовать итоги каждого цикла разработки для того, чтобы подготовиться к следующему".

Из этого положения делается вывод, относящийся к жизненному циклу адаптивных разработок [41]: "Основное, наиболее действенное и первостепенное достоинство жизненного цикла ASD заключается в том, что этот процесс заставляет отказаться от интеллектуальных построений, которые являются источником самообмана. Он вынуждает оценивать собственные способности более реалистично".

Из приведенной схемы не ясно, как предлагается организовывать процесс, как компенсировать потенциально "расползающуюся" разработку, когда по мере развития она обрастает все новыми возможностями, обусловленными практическими нуждами, но без общей (в других подходах сказали бы — предсказуемой) архитектурной базы. Оставив все это в стороне, т.е. относя подобные вопросы к конкретной методологии, автор ASD освещает сложные моменты адаптивных разработок, в частности вопросы обеспечения сотрудничества и обучения во время реализации проекта. И в этом ценность работы Хайсмита, поскольку полученные результаты применимы в самых разных случаях.

Таким образом, можно сказать, что ASD — это не готовая методология, а базовая концепция для различных адаптивных разработок. Схема жизненного цикла не является сдерживающим фактором построения конкретных методологий, которые вполне могут следовать самым разнообразным стратегиям, включать в себя те или иные методики. В этом отношении подход Хайсмита сближается еще с одной "серийной" методологией быстрого развития, предложенной А. Коуберном. Речь идет о семействе методологий Crystal [36]. Коуберн называет это семейством, так как убежден, что разным проектам нужны разные методологии. Он вводит следующую градацию проектов: по одной оси откладывается количество занятых в проекте людей, по другой — критичность ошибок. Каждая из методологий семейства предназначена для определенной ячейки получившейся сетки. Таким образом, проект, в котором занято 40 человек, и на котором компания может позволить себе потерять некоторую сумму, будет работать по другой методологии, нежели проект для шести разработчиков, от которого зависит существование компании.

< Лекция 10 || Лекция 11: 1234 || Лекция 12 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Илья Макаренко
Илья Макаренко

Добрый день.

Вопрос №1

Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте?

Вопрос №2

Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже?

Алексей Зиневич
Алексей Зиневич
Россия, Пенза, Пензенский государственный университет архитектуры и строительства, 2003