Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Прогресс в программировании, управление проектами, управление процессами

Интересные материалы про затормозившийся прогресс в программировании (computer science):

http://www.dwheeler.com/innovation/innovation.html -- таблица самых важных достижений в программировании (апдейт 2 января 2007г., но кончается таблица 1994г. -- web crawling search engine).

http://www.windley.com/archives/2006/02/alan_kay_is_com.shtml -- Алан Кей говорит о "software engineering vs computer science" и отмечает прежде всего то, что сегодняшняя парадигма не менялась с 1975г., все главные идеи пришли из далекого прошлого. По его мнению, это все произошло из-за коммерционализации персонального компьютинга, от которой computer science, возможно, уже не оправится. Первый компьютерный курс в колледжах сегодня -- такой же, как в 60-е годы, про структуры данных и алгоритмы. А ведь все восхитительное в сегодняшнем компьютинге ничего не имеет общего со структурами данных и алгоритмами. Много важнее стуктур данных и алгоритмов сегодня параллельные программы и слабое связывание для построения систем. Вообще, этот текст Алана Кея нужно обязательно читать.

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

Основная идея дремучего компьютерного прошлого -- это идея "исполнителя", работающего с "программой". Курс выживания Робинзона Крузо на необитаемом острове. Все идеи "программирование -- это планирование", "программирование -- это моделирование деятельности" должны быть в явном виде переформулированы в "программирование -- это планирование для сотрудников", "программирование -- это моделирование сотрудничества". При этом вместо "алгоритма" у нас вылезает work breakdown structure или workflow -- и сразу становится понятной убогость нынешней ситуации. Заумные представления "параллельного компьютинга" и упрощенные и явно недостаточные представления "управления проектами" и "управления процессами".

Современные "управленцы процессами" и "управленцы проектами" находятся почти в той же самой ловушке "раннего связывания" (early binding), что и программисты одномашинной эры. Нужны новые нотации, новые паттерны мышления, новые исполняющие среды, моделирующие/имитирующие (simulate) деятельность организации.

Какие-то первые слова на эту тему начинают уже звучать (в вебсервисах, где это особо актуально), и они "странные": хореография, оркестровка. Но если подумать, то во всех этих "хореографиях" и "оркестровках" нет средств планирования использования ресурсов (критическая цепь), нет средств альтернативного представления будущего (прогнозы, версионирование). Вместе это кусочки нового большого паззла, и "компьютерная наука" только-только сюда вползает.

Интересно, если программу управления проектами (типа MS Project) или управления процессами (workflow) написать как среду параллельного программирования (или наоборот -- среду параллельного программирования сделать такой, как программа управления проектами, то как бы это было?! Это направление размышлений мне кажется чрезвычайно перспективным -- связь между computer science (наука о планировании работ неких ботов-машин), проектным управлением и процессным управлением.

Не может быть, чтобы в этом направлении кто-нибудь уже не копал. Хотя (как всегда в таких случаях) непонятно, что проще -- найти тех, у кого есть уже результаты в этом направлении, или получить такие результаты самому.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 28 comments