На прошлой неделе в нескольких «околоэлектронных» и «околопрограммистских» ЖЖ состоялся срачик по поводу ГОСТов в частности и стандартов вообще, а также про необходимость следовать им. Итоги подвел
hedgeov, заодно собравший ссылки на некоторые части дискуссии:
http://hedgeov.livejournal.com/337510.html
В этой записи я тоже хотел бы вспомнить про ГОСТы, конкретно — про серии 19 и 34, регламентирующие содержание документации на программы и автоматизированные системы соответственно. Их, разумеется, считают устаревшими — хотя из явных анахронизмов там можно назвать лишь необходимость распечатки текста программы (да и ее можно обойти). Более конструктивный аргумент — это то, что в ГОСТах 34 серии приведен список документов, которые сопровождают процесс разработки программы и якобы этот список вынуждает при разработке использовать «модель водопада».
Видимо, эти критики не видели ни одного титульного листа самого завалящего технического задания, составленного в соответствии с ГОСТ. Берусь утверждать, что эти ГОСТы определяют «итеративную модель» наподобие RUP или OpenUP, а «модель водопада» существует лишь в воспаленном бреду различных апологетов «внедрения RUP».
Аргументация будет очень простой. Во-первых, и в так называемой «модели водопада», и в RUP-подобных итеративных процессах, и в ГОСТ выделяются четыре стадии разработки, только называются они по-разному. У буржуев это Inception, Elaboration, Construction и Transition, в ГОСТах названий не приводится и обычно «стадии» называют по получающимся в конце документам («артефактам», в терминологии RUP): техническое задание, технический проект, рабочая документация (одновременно с ней разрабатывается и сама ИС) и ввод в действие. Конечно, апологеты RUP утверждают, что стадии RUP и стадии «водопада» — это «две большие разницы», но их настойчивость в этом убеждает в обратном.
Перейдем ко второму пункту. Я не зря упомянул про титульный лист. Дело в том, что он убивает все противопоставления «водопада» итеративным процессам. Фанаты последних утверждают, что в случае «водопада» ТЗ, проект и вообще все «требования» «спускают сверху». Так вот, на титульном листе всегда есть подписи двух сторон — заказчика и исполнителя. Всякое согласование документов само по себе и порождает итерации — и в «идеальном» случае порождает из ГОСТовской модели что-то похожее на OpenUP.
Разумеется, я не зря упомянул об «идеальном случае». Дело в том, что основная часть всех «методологий» — это здравый смысл и прочие Best Practices. А если на здравый смысл положили с большим прибором — то «от дурака» не спасет ни ГОСТ, ни RUP.
PS Типичная (к сожалению) ситуация, когда ТЗ согласуется на уровне какого-нибудь недостижимого начальства, а в патологическом случае — этим же впадающим в маразм начальством и пишется — на уровне RUPовского здравого смысла называется «неправильным определением заинтересованных лиц» и к ГОСТам отношения не имеет.
PPS Кстати, применительно к фазам RUP, по-новому звучит шуточка «любое начинание делится на четыре части: запутывание, запугивание, наказание невиновных и награждение непричастных».