Читаем Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения (ЛП) полностью

Что меня удивило во всех этих проектах? То, что они ясно свидетельствуют о следующем:

Практически любую методологию можно с успехом применять в каком-нибудь проекте.

<p id="bdn__3">Любая методология может привести к провалу проекта.</p>

Тяжеловесные методологии тоже могут успешно применяться в работе.

Облегченные методологии чаще приводят к успеху, и, что более важно, разработчики сами говорят, что успех проекта был обеспечен именно методологией. Я не нашел ни одной теории, которая объяснила бы, почему облегченные методологии (те, в которых мало места уделяется всяческим формальностям), чаще приводят к успешному завершению проекта, нежели тяжелые методологии, где формальности играют очень большую роль (случайные исключения в нашем списке составляют только Cleanroom и PSP/TSP). Конечно, плохой руководитель - весьма существенный фактор, который сильно влияет на весь ход работ, однако его нельзя отнести к методологии. Впрочем, даже если учитывать и качество руководства проектом, все равно достоверных прогнозов не получится.

И тут я наконец-то понял, что прямо перед нами всегда находится нечто, чего мы не замечаем: люди. Именно человеческие качества обеспечивают успех тому или иному проекту, именно они являются фактором первостепенной важности, основываясь на котором надо строить прогнозы о проекте. Теперь я рассматриваю все в обратном порядке - сначала люди, а потом методология, как второстепенный показатель.

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

<p id="bdn__4">Четыре основных свойства</p>

Люди - устройства активные, и у них есть режимы успешной работы и режимы сбоя. Вот несколько основных таких режимов, которые я определил, и которыми пользуюсь и по сей день:

Человек - существо, которому необходимо общение. Причем общаться он предпочитает в режиме непосредственного диалога, лично, по типу "вопрос-ответ".

Человеку трудно постоянно работать сверхурочно.

Человек - существо изменчивое, он меняется в зависимости и от времени, и от пространства.

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

Человеку нужно время, как на размышление, так и на общение (см. [Co98], [Cs], [Dm]).

Человек хорошо работает, опираясь на примеры (этот тезис требует дальнейшего изучения, см. [J-L]).

Человек предпочитает скорее потерпеть неудачу из-за своего консерватизма, нежели рискнуть, но сделать что-то необычным образом [Pi]; ему больше нравиться изобретать, а не находить готовые решения, он может одновременно держать в голове совсем немного сведений, он делает ошибки и с трудом меняет привычки.

Отдельная личность может легко возобладать над проектом.

Способность человека выполнять те или иные задания в большей степени определяется его личными качествами.

<p id="bdn__5">Человек - существо общительное</p>

Основным фактором в разработке программного обеспечения является возможность коммуникации. На рисунке 1 изображена некая кривая, с помощью которой я иллюстрирую свои методологические рассуждения. На этом рисунке видно, как падает эффективность коммуникации, если исчезает ее модальность и синхронизация. Этой теме посвящено несколько исследований (см. [Pl] и [Si]), кроме того, эту же зависимость подтверждает и Вайнберг, который описывал проекты около 30 лет назад [Wei].

Самым эффективным видом коммуникации является непосредственное, личное общение (например, когда вы обсуждаете что-либо и рисуете при этом на доске). Если мы будем убирать одно за другим все свойства общения, присущие двум людям, рисующим у доски, мы увидим, как падает эффективность коммуникации. Убирать мы будем следующие свойства:

Физическая досягаемость. Я не знаю, как это объяснить, но физическая досягаемость собеседников влияет на их общение. Что бы ни лежало в основе этого влияния - трехмерность, синхронизация, запах или малозаметные визуальные сигналы - при коммуникации это имеет большое значение.

Похожие книги