Человеческий фактор в программировании

ОглавлениеДобавить в закладки К обложке

Для нахождения модели, наиболее подходящей для библиотеки программных компонентов повторного использования, нам нужно пристальнее рассмотреть книгоиздательство и порядок приобретения работ, предназначенных для печати. В издательском деле редакторы серий и специалисты по приобретению книг играют активную роль в поиске новых имен. Они сотрудничают с авторами не только в соответствии с текущим спросом или потребностями читателей, но и для поддержания более полного «списка книг» и опережения будущих требований аудитории. Эта модель, или идея Пейдж-Джонса (Page-Jones) об «искусном покупателе», который не только приобретает работы, но и заказывает их, возможно, больше соответствует модели, необходимой для индустрии программного обеспечения.

Простое коллекционирование разумных компонентов не создаст библиотеку компонентов повторного использования. Нужно еще убедить разработчиков применять эти компоненты, а не изобретать их заново. Во многих компаниях для этого разработаны системы надбавок и премий, однако я не уверен в том, что они необходимы для продуктивного повторного использования компонентов. Более того, в конечном итоге такие схемы даже могут оказаться непродуктивными. Иногда бывает достаточно просто предоставить информацию о производительности. В одной организации понадобилось лишь изменить способ информирования группы о степени продуктивности. Инвестировав средства в развитие библиотеки компонентов, они были разочарованы из-за ее ограниченного использования. Они ежемесячно вывешивали лист с диаграммами, которые отражали продуктивность программистов, измеренную в строках написанного и сданного кода. Вместо этого их убедили сообщать об общем количестве строк, взятых из библиотеки компонентов и включенных в сданный код. Уровень повторного использования резко возрос. Однако является ли ко-личество-строк-библиотечного-кода правильной меркой повторного использования? Возможно, корректное, разумное и уместное повторное использование — это намного более тонкий показатель, который сложно описать и измерить.

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

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

Наверное, хитроумные трюки и дополнительные вознаграждения более важны для слабых библиотек и неудобных инструментов. Возможно, это сигнализирует о необходимости пересмотреть корпоративную культуру и профессиональные ценности, которые в ней поощряются или не одобряются.

Из журнала Computer Language Magazine, том 9, № 7,1992 г.


Логин
Пароль
Запомнить меня