Тяжеловесные и облегченные процессы
В XXI веке потребности общества в программном обеспечении информационных технологий достигли экстремальных
значений. Программная индустрия буквально «захлебывается» от потока самых разнообразных заказов. «Больше процессов
разработки, хороших и разных!» — скандируют заказчики. «Сейчас, сейчас! Только об этом и думаем!» — отвечают
разработчики.
Традиционно для упорядочения и ускорения программных разработок предлагались строго упорядочивающие
тяжеловесные (heavyweight) процессы. В
этих процессах прогнозируется весь объем предстоящих работ, поэтому они
называются прогнозирующими (predictive) процессами. Порядок, который должен выполнять при этом человек-разработчик,
чрезвычайно строг — «шаг вправо, шаг влево — виртуальный расстрел!». Иными словами, человеческие слабости в расчет не
принимаются, а объем необходимой документации способен отнять покой и сон у «совестливого» разработчика.
В последние годы появилась группа новых, облегченных (lightweight) процессов [29]. Теперь их называют подвижными
(agile) процессами [8], [25], [36]. Они привлекательны отсутствием бюрократизма, характерного для тяжеловесных
(прогнозирующих) процессов. Новые процессы должны воплотить в
жизнь разумный компромисс между слишком строгой
дисциплиной и полным ее отсутствием. Иначе говоря, порядка в них достаточно для того, чтобы получить разумную отдачу
от разработчиков.
Подвижные процессы требуют меньшего объема документации и ориентированы на человека. В них явно указано на
необходимость использования природных качеств человеческой натуры (а не на применение действий, направленных
наперекор этим качествам).
Более того, подвижные процессы учитывают особенности современного заказчика, а именно частые изменения его
требований к программному продукту. Известно, что для прогнозирующих процессов частые изменения требований подобны
смерти. В
отличие от них, подвижные процессы адаптируют изменения требований и даже выигрывают от этого. Словом,
подвижные процессы имеют адаптивную природу.
Таким образом, в современной инфраструктуре программной инженерии существуют два семейства процессов
разработки:
семейство прогнозирующих (тяжеловесных) процессов;
семейство адаптивных (подвижных, облегченных) процессов.
У
каждого семейства есть свои достоинства, недостатки и область применения:
адаптивный
процесс
используют
при
частых
изменениях
требований,
малочисленной
группе
высококвалифицированных разработчиков и грамотном заказчике, который согласен участвовать в разработке;
прогнозирующий процесс применяют при фиксированных требованиях и многочисленной группе разработчиков
разной квалификации.
Достарыңызбен бөлісу: