Читаем Как сдвинуть гору Фудзи? Подходы ведущих мировых компаний к поиску талантов полностью

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

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

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

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

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

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

Перейти на страницу:

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

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

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

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT