На чем же основана эффективность принципов,
о которых мы будем говорить?
Во-первых, это достаточно длительное исследование
на основе анализа целого ряда различных регионов и культур.
Это Южная Корея, Турция, Соединенные Штаты Америки,
Канада и другие страны. Т. е. на самом деле, культуры
в достаточной мере разные. Скажем, мне приходилось
взаимодействовать с представителями турецкой культуры,
и я могу сказать, что, поскольку в этом обществе до сих пор
сохраняется существенная иерархичность и зависимость,
определенная субординация на уровне общества
и, соответственно, команд разработчиков, такие подходы как,
скажем, гибкие принципы, гибкие практики разработки
программных систем работают существенно хуже,
чем, может быть, в западных культурах.
Т. е. в принципе определенные культурные аспекты существуют,
но, те подходы, о которых мы будем говорить,
позволяют их во много сгладить и нивелировать.
С другой стороны, нужно сказать, что принципы,
эти 7 принципов, о которых мы будем говорить, не связаны
с конкретной предметной областью, конкретным опытом,
т. е. могут быть применены к разным сферам деятельности
и различным социальным аспектам, культурным аспектам,
т. е. на самом деле, во многом являются инвариантами
относительно этих аспектов.
Для кого же те принципы, о которых мы будем говорить,
будут наиболее полезны?
Прежде всего, это люди, которые связаны с трансфером
технологий, с передачей знаний, с информационным общением.
Естественно, это и преподаватели, в широком смысле
этого слова, наставники, менторы, руководители любого уровня,
в том числе и технические руководители разработки,
это одна из основных ролей в программной инженерии,
ну и, конечно же, все, кто занимается обучением других
или хочет больше узнать о процессе обучения.
Особенно отметим роль ментора, наставника, человека,
который формирует или призван формировать определенные
личностные качества своих подопечных, контролировать
или управлять развитием мотивации, развитием команд
разработки и больших коллективов, которые учувствуют
в создании крупных и сложных программных систем.
Подведем краткие итоги по рассмотрении 7 принципов,
по крайней мере, номинально. Какие выводы можно сделать?
Ну, прежде всего, обучение, как уже было сказано, или передача
знаний в случае разработки программных систем — это процесс,
а не продукт. Это некий процесс, который ведет к развитию,
к саморазвитию и пересекается по образовательным
или информационным траекториям как внутри команды
с различными личностями, которые в этом участвуют,
так и между командами. Предыдущие знания, навыки и
способности людей, которые участвуют в процессе разработки
программных систем и передачи знаний, ведут к повышению
их мастерства и сопряжены не просто с какими-то
качественными характеристиками, не просто с технологиями,
которыми они овладевают, но и в определенной мере
с их психологическим и эмоциональном состоянием.
И во многом от этого состояния зависят те локальные кризисы,
которые могут возникать в командах разработки и определять их
развитие, а также успех продукта.
И те 7 принципов, которые мы перечислили, должны быть
использованы в совокупности, они достаточно сильно
взаимосвязаны. При правильном их использовании они влекут
к существенному качеству, к существенному повышению
качества и уровня разработки тех крупных и сложных
программных продуктов корпоративного типа,
о которых идет речь в курсе.