О классификации методологий...
От: Astellar  
Дата: 23.12.04 03:38
Оценка:
Господа проджект менеджеры и остальные уважаемые люди!
Возникло горячее желание упорядочить знания о методологиях разработки ПО, что требует, для начала, ознакомления с ними и четкой классификации по каким-либо критериям.
После прочтения ряда статей, из которых хочется выделить
Устаревшие методологии – на пенсию!
Автор(ы): Джим Хайсмит
Дата: 11.01.2004
Использование методологии Adaptive Software Development (ASD) поможет вам выполнять работу в условиях частых и срочных изменений в проекте.

"Не верьте тому, что вам втолковывали на протяжении всей жизни: форма основывается не на функциональности. Форма основывается на ошибках.

"Форма созданных человеком вещей меняется всякий раз, когда он обнаруживает в них уже существующие или потенциальные недостатки" – пишет Генри Петроски (Henry Petroski), профессор, преподающий гражданское строительство, и автор книги "The Evolution of Useful Things" ("Эволюция полезных вещей"). "Этот принцип справедлив для всех изобретений, инноваций и нововведений. Именно он заставляет работать творческую мысль изобретателей и инженеров". В том же ключе пишет и другой автор, Стюарт Брэнд (Stuart Brand). Он тоже полагает, что постулат "форма проистекает из функциональности" – не более чем иллюзия. В его книге "How Buildings Learn" ("Чему учит строительство") мы читаем: "Луи Салливан (Louis Sullivan) провозгласил, что форма следует за функциональностью, в результате чего большинство архитекторов более ста лет свято верило в то, что могут предвидеть все нюансы функционирования своих творений".

Итак, что же из всего этого следует?" ...
,
Каждому проекту своя методология,
Процесс разработки или…разрабатываем процесс!
Так вот, соответственно, возникло естественное желание разделить методологии по
схеме управления процессом разработки:
1. Водопадные (каскадные) [Устаревшие. Кто-нибудь сейчас ими пользуется?]
2. Водоворотные (возвратные) [SADT очень похожа на именно такую методологию, я прав? Какие еще есть?]
3. Спиральные [RUP, MSF...?]
4. Адаптивные [XP, все семейство Agille]
Но это слегка однобокая классификация, поэтому очень уместным кажется такой критерий, как "объем", описанный Коуберном как произведение Project Lifecycle * Roles * Activities,
где, насколько я понял
1. Project Lifecycle – набор видов деятельности, выполняемых в рамках разработки системы.
2. Roles – набор ролей участников проекта.
3. Activities – набор видов деятельности, выполняемых в рамках управления проектом.
Тут мы можем прямо получить численный эквивалент тяжести. Но число нам конечно не нужно, а лучше выделить
"легкие", "средние" и "тяжелые".
Очень бы хотелось узнать Ваше мнение на тему какие методологии имеют какую "весовую категорию".
В идеале, для каждой существующей методологии разработки ПО можно дать такое описание: Методология такая-то, процесс управление такой-то, весовая категория такая-то.
Самому мне не приходилось, к сожалению, работать в проектах, где применялись тяжелые методологии, да еще строго применялись, поэтому прошу Вас высказывать свое мнение по всем известным Вам методологиям
Спасибо!
Я весьма доверчив, когда речь идет о моих словах. Я верю всему, что
говорю, хотя и знаю, что я лжец.
Re: О классификации методологий...
От: AndreyFedotov Россия  
Дата: 23.12.04 11:22
Оценка:
Здравствуйте, Astellar, Вы писали:

Мне кажется, что RUP и XP относятся как к спиральным, так и к адаптивным технологиям. По той простой причине — что имеют как ярко выраженный спиральный (итеративный) процесс и одновременно — наличествует обратная связь с заказчиком (в виде изменения требований) в процессе разработки — т.е. адаптация.
Что до оценки "тяжести" процесса разработки — я предложил бы несколько другой подход. Нужно просто суммировать общий объём работ (в человеко-часах) по всем видам деятельности (включая собрания, написание и чтение внутренних документов, проектирование, написание кода и т.д.) и поделил бы это на общий объём работ (в тех же единицах) на написание итоговых артефактов (кода, пользовательской документации и т.д.) — т.е. на результат, видимый и нужный заказчику. Чем это соотношение меньше — тем легче процесс, чем больше — тем процесс тяжелее.
Хотя возможно, что полезно будет делить не на написание итоговых артефактов, а объём самих артефактов или их функционал. Правда тут же возникает вопрос об оценке объёма артефактов или их функционала (полезности).
Re: О классификации методологий...
От: Gaperton http://gaperton.livejournal.com
Дата: 27.12.04 13:47
Оценка: 44 (2)
Вы говорите на самом деле о так называемом "цикле разработки ПО".

A>1. Водопадные (каскадные) [Устаревшие. Кто-нибудь сейчас ими пользуется?]

Это, например, PSP/TSP. Используется. Они, конечно, что-то лепечут про итеративную разработку. Но это ерунда.
Почему так? Основная проблема и отличительное свойство Waterfall — строгая привязка фазы цикла к виду деятельности. Что налицо в PSP.

A>2. Водоворотные (возвратные) [SADT очень похожа на именно такую методологию, я прав? Какие еще есть?]

Чистого водопада в реальной жизни не бывает, на деле они все "возвратные". Так мозги человеческие устроены.

Насчет SADT. Это не методология разработки софта. Это методология разработки документации, а именно, диаграм SADT (IDEF0). Она глубоко итеративна, и там нет привязки фазы к виду активности. Основной формальный цикл в ней — это цикл "автор" — "читатель" с нелимитированным количеством итераций.

A>3. Спиральные [RUP, MSF...?]

MSF — это вроде как спиральная. Которая на деле не далеко уходит от waterfall, основное отличие, что спиральку красивую нарисовать придумали.

Цикл разработки, используемый в RUP называется "контроллируемая итерация" (controlled iteration). Обратите также внимание на критерии входа-выхода в их фазы, и график разных активностей по фазам. Разительное отличие от Waterfall-подобных систем. Вместо фраз в духе "фаза дизайна окончена, когда готов документ такой-то и диаграммы такие-то" вы увидите что-то вроде "когда вся команда имеет одинаковое представление о том, как будет реализовано 90% сценариев использования".

A>4. Адаптивные [XP, все семейство Agille]

Ага. Это можно выделить в отдельный класс.
Re: О классификации методологий...
От: NickSm  
Дата: 17.01.05 12:28
Оценка:
Здравствуйте, Astellar:

Сразу хочу сказать, что хорошо знаком только с RUP и XP.
Но сравнивать их, на мой взгляд, очень сложно. Если XP – это всего лишь набор советов как организовать разработку, при это последовательность действий, документация и прочее остается, не описано. Т.е. даются буквально общие советы.
RUP же в противоположность, наоборот описывает все процессы, дает шаблоны документов, советы по проектированию и анализу. И мало того, весь процесс имеет мощную поддержку со стороны программ компании Rational.
Мало того, RUP – адаптируется под проект. Т.е. можно на RUP организовать процесс как в малой, так и в большой фирме.
Если необходимо организовать крупную фирму, то сама методология RUP и инструментальные средства это с легкостью позволят, для этого необходимо будет содержать администраторов по продуктам Rational, специалистов по инструментам и провести обучение сотрудников.
Но сама идея RUP заключается в том, что вам необязательно брать его как есть, т.е. даже наоборот Rational советует каждый раз составлять свой «адаптированный процесс», на базе RUP. Там даже документ такой есть, так и называется «адаптированный процесс».

Мало того XP и RUP это подход к разработке с разной стороны.
При желании, в сети можно найти информацию о том как организовать группу разработчиков на основе XP и RUP вместе. Т.е. именно из-за того, что методологии рассматривают разработку с разной стороны они не противоречат друг другу. Ну и к тому же они имеют много схожих моментов. Например, истории (в XP), и прецеденты(UseCase в RUP)…

Вообще, обзор получился какой-то сумбурный, как-то мало времени…
Можно эту тему пообсуждать еще.
Конкретно RUP я знаю очень неплохо, перерыл его основательно, да еще на курсы для укрепления знаний недавно ездил, так, что будут вопросы спрашивайте.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.