Добавить в цитаты Настройки чтения

Страница 23 из 88

Поначалу эта практика казалась такой же экстравагантной, как применявшееся Шокли тестирование интеллекта. Многие кандидаты на работу считали (и продолжают считать), что требования писать во время интервью программы и решать головоломки и задачи унизительны. Но как известно всем, кто смотрел телевизионные шоу, если люди слышат достаточно громкий «звон монет», они, как ни удивительно, могут согласиться совершать публично самые унизительные и нелепые вещи. Кандидаты на работу в Microsoft готовы пройти жесткое интервью, потому что знают, как много работников Microsoft стали мультимиллионерами, когда им едва перевалило за тридцать. Благодаря влиянию Microsoft сегодня задачи на программирование и решение головоломок стали обычной практикой интервьюирования кандидатов на работу в отрасли программного обеспечения.

С точки зрения Microsoft, головоломки тестируют не только интеллект, но и мотивацию, и амбиции. Как бизнес и спорт, решение логических задач делит людей на две категории: победителей и проигравших. Вы или находите правильный ответ, или нет. Как скажет вам любой спортивный тренер, для победы недостаточно одних только способностей. Вы должны быть «голодными» — хотеть выиграть.

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

Кризис наступил, когда программные продукты стали слишком большими и трудоемкими, чтобы с ними мог справиться один человек. Операционная система MS-DOS 1.0 была в основном придумана, написана, компилирована и отлажена одним автором — Тимом Патерсоном. По мере того как программные продукты становились более сложными, появилась необходимость разделить pa6oту над ними между двумя и более разработчиками. Это проще сказать, чем сделать. Фрагменты программы, написанные разными программистами, не удастся объединить, если только они изначально не были созданы для этой цели. Необходим постоянный диалог между разработчиками и поиск способов разрешения разногласий, которые неизбежны, когда определяется более «легкий» способ выполнения работы. «Коммуникабельный» и «легкий в общении» — это не те личностные черты, которые вы часто обнаружите у программистов-разработчиков. Такие люди не склонны к общению — обычно они пишут программы в одиночестве и по ночам. Это было большой проблемой.

Одним из людей, которых позвали, чтобы они помогли решить эту проблему, был Чарльз Симоньи. Симоньи — знаменитый ученый-специалист в области компьютеров, который предпочел работать в сфере бизнеса, что иногда выглядит в глазах академических ученых подозрительно. Работая в компании Xerox PARC, Симоньи написал первую полнофункциональную программу — текстовый редактор. Его раздражало отсутствие интереса корпорации Xerox к маркетингу операционной среды Windows и компьютерной мыши, которые были изобретены в его лаборатории. Во время деловой поездки в Сиэтл Симоньи без предварительной договоренности нанес визит в Microsoft. Тогда процедура приема на работу в этой корпорации была проще, чем сейчас. Один из «чиновников» (это был Стив Боллмер), просмотрев резюме Симоньи, решил, что ему стоит встретиться с Биллом. Гейтс в это время был на совещании и к тому времени, когда он освободился, Симоньи уже было пора в аэропорт, поэтому Гейтс поехал туда вместе с ним, чтобы побеседовать по дороге. У них сразу установились взаимопонимание и личная симпатия. Вскоре Симоньи получил приглашение работать в Microsoft и принял его.



Решением, которое Симоньи предложил для проблемы сотрудничества нескольких разработчиков, было учредить новую должность, которую назвали «мастер-программист». Она чем-то напоминала средневековых ремесленников: именно на «мастере» лежала полная ответственность за разработку дизайна программы и ее написание. Под руководством мастера должна была работать команда ассистентов-«подмастерьев». Их задачей была отладка и оптимизация программы.

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

Благодаря известной тенденции Microsoft все доводить до крайности, идея мастера-программиста очень быстро себя исчерпала. Программные продукты скоро стали такими объемными, что с ними уже не мог в одиночку управиться даже мастер-программист. Была еще одна более фундаментальная проблема: мастер-программист не всегда оказывался способным разработать удачный дизайн программного продукта. Поскольку программы становились все более изощренными, становилось все более важным приспособить их к потребностям клиентов, а эта задача существенно отличалась от собственно программирования. Для одного человека одновременно решать обе эти задачи было непосильным трудом. Конечно, случается, что отличный корректор одновременно оказывается и талантливым драматургом, но все же если вы наняли человека на работу для выполнения одного круга обязанностей, а затем поручаете ему что-то совсем другое — вас, вероятно, будет ждать разочарование.

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