Моделирование динамики процесса разработки ПО
От: Gaperton http://gaperton.livejournal.com
Дата: 05.09.08 11:13
Оценка:

Стало ужасно модной темой последнее время.

из наших этой темой плотно занимается Байрам.
http://edu.it-online.ru/education/guru-academy/annakov_dyn/

да что Байрам, сам Йордан будет в сентябре с семинарами на эту тему в России,

http://edu.it-online.ru/education/guru-academy/yourdon_peopleware_wargames/index2.shtml

Ну и сам Том ДеМарко пишет об этом в своем "Deadline". Это совершенно замечательная книга, роман об управлении проектами, представитель редкого сейчас жанра "производственный раман". Вот помните хардкорные советские производственные фильмы? Вот это примерно то же самое . И в одной из глав данной книги автор рассказывает про динамические модели Абдул-Гамида.

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

Вот, скажем, возьмем процесс найма сотрудников в проект. Мы запланировали, что мы будем привлекать по 4 новых человека в месяц, и с сожалением констатируем, что у нас в среднем 1 человек в месяц уходит. Казалось бы, все нормально, динамика положительная, однако нам надо учесть, как это повлияет на сроки проекта. При этом — мы должны учесть кривую обучения новых сотрудников, а также тот факт, что они отрывают от работы существующих сотрудников, создавая на них нагрузку. Вопрос. Как будет меняться по времени производительность труда всего отдела разработки?

Вот, выражаем это все в виде модели из вентилей-буферов, люди у нас будут, скажем, "водой", и смотрим на результат моделирования. Этот пример довольно подробно разобран в Deadline, обратите внимание (там используется iThink). А если у кого этой книги нет — ее, конечно, надо купить, и вовсе не потому, что там про водопроводы написано, а потому, что читая ее вы будете рыдать. Если, конечно, вы имеете отношение к разработке ПО.

Итак, смотрим на результат моделирования — он, с одной стороны, основан на нашей интуиции, поскольку наши посылки лежат в основе модели, с другой — он бывает довольно неожиданным, ибо мозг не так чтобы хорошо умеет решать в уме нелинейные дифференциальные уравнения. Что, при чем они тут? Ну, тут есть один секрет, который автор дедлайна обходит стороной, вероятно, чтобы читателя не прошиб пот и не хватил удар. Дело в том, что конструируя такую модель с обратными связями, вы на самом деле занимаетесь хардкорной математикой и описываете вашу работу нелинейным дифференциальным уравнением.

Так как я в университете учился на кафедре "нелинейных динамических систем", и знаком с ними не понаслышке, от меня такие системы не спрячешь, и естественно, меня прошиб пот и чуть не хватил удар. Ну ладно, в конце концов — подумаешь, диффуры нелинейные, какая разница? А вот какая.
...

Оригинал и продолжение здесь. http://gaperton.livejournal.com/22107.html

Однако, что я думаю — я и так знаю, это скучно. Интересно, а что вы думаете по поводу динамического моделирования? Тема еще ни разу не понималась, насколько я помню.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.