Новосибирский Государственный Университет
Опубликован: 20.08.2004 | Доступ: свободный | Студентов: 4919 / 487 | Оценка: 4.01 / 3.23 | Длительность: 18:07:00
ISBN: 978-5-9556-0013-0
Лекция 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 >
Дарья Федотова
Дарья Федотова
Сергей Березовский
Сергей Березовский

В рамках проф. переподготовки по программе "Программирование"

Есть курсы, которые я уже прошел. Но войдя в курс я вижу, что они не зачтены (Язык Ассемблера и архитектура ЭВМ, Программирование на С++ для профессионалов). Это как?

Сергей Прошута
Сергей Прошута
Россия
Sergey Ostr
Sergey Ostr
Россия, Энгельс