Покупатели были в восторге от цветной картинки! Я быстро понял, что Роберта наткнулась на золотую жилу – надо было ее разрабатывать по-крупному.
Мы немедленно запустили в разработку еще несколько приключенческих игр.
Роберта была в лучшем случае начинающей разработчицей. Тем не менее она практически в одиночку создала хит номер один среди тогдашних компьютерных игр. Она закончила разработку Wizard and the Princess и сразу же после нее выпустила следующую игру – Mission Asteroid. Роберта пахала изо всех сил, но часов в сутках у нее от этого больше не становилось.
Hi-Res Adventure #4. Ulysses and the Golden Fleece
Может быть, разработкой приключенческих игр мог бы заниматься кто-то еще?
У нас уже было несколько наемных работников, которые сидели за компьютерами и копировали диски. И один из них, Боб Дэвис, подошел ко мне и сказал, что у него есть идея для игры под названием Ulysses and the Golden Fleece.
Я дал ему полную свободу, и вскоре у меня появилась еще одна игра на продажу. Отлично!
– ИНТЕРЛЮДИЯ –
(Небольшое отступление, чтобы я мог вклинить что-нибудь другое)
Глава 13. Советы программистам
Умный человек разрешает проблему. Мудрый избегает ее.
ПРИМЕЧАНИЕ. Эта глава адресована программистам и тимлидам. Остальные читатели, возможно, предпочтут (а может, и не предпочтут) перейти сразу к следующей главе.
Есть на свете одна книга, которую я бы порекомендовал всем, кто хочет построить карьеру программиста, или тем, кто хочет заниматься яхтингом, да и всем остальным тоже: «Дзэн и искусство ухода за мотоциклом»[17]. Эта книга оказала огромное влияние на мою карьеру разработчика программного обеспечения, а спустя десятилетия – еще и капитана яхты.
Тем не менее я не могу утверждать, что по-настоящему прочитал эту книгу. Я пытался сделать это несколько раз и действительно прочел ее от корки до корки, но так и не смог до конца понять все, что прочел. Автор этого творения, Роберт Пёрсиг, был профессором в университете и писал так, как можно ожидать от профессора. Его роман автобиографичен – читается он как блог о путешествии по стране на мотоцикле, которое Пёрсиг совершил со своим сыном Крисом. Как пишет сам автор, эта книга имеет очень мало отношения к дзэн-буддизму или уходу за мотоциклами. Вместо этого книга посвящена скорее его личным размышлениям на тему отношения к окружающему миру.
Я мыслю в категориях «вынесенных уроков», и для меня было не так важно, о чем на самом деле книга. Главное – что удалось вынести из ее прочтения.
Что именно я оттуда вынес:
• Как анализировать проблему.
• Как разбить большую проблему на мелкие части.
• Как определить, что по-настоящему важно.
Моя философия разработки программного обеспечения выросла из чтения книг Пёрсига (он написал и еще одну книгу, «Лайла»[18] – своего рода продолжение первой книги; в «Лайле» он рассказывает о яхтах и путешествиях). В частности, эта книга помогла мне начать думать о двигателе или даже о программе как о комплексе подсистем, у каждой из которых есть какая-то определенная функция или цель.
Например, когда я думаю о дизельном двигателе, я думаю о нем не просто как о цельной «силовой установке». Я пытаюсь думать о нем как о комплексе систем: топливная система, система впуска воздуха, система охлаждения, система смазки, выхлопная система и т. д. Если вы можете смотреть на что-то и воспринимать это как комплекс подсистем, становится легче диагностировать проблемы и понимать, как работают отдельные компоненты.
Это привело меня к правилу номер один в разработке программного обеспечения:
Чем меньше, тем проще.
Первый шаг в анализе любой проблемы – разбить ее на ряд более мелких частей.
Мало у кого столько опыта работы с самыми разными программами, сколько есть у меня. Я работал над сотнями программных продуктов и уже больше сорока лет непрерывно разрабатываю программное обеспечение.
Чем меньше и проще будет ваша программа, тем больше вероятность того, что она заработает как надо с первой попытки. Многие программисты гордятся тем, что находят сложные решения проблем. Я видел, как они часами мучаются над куском кода, пытаясь заставить его работать быстрее или потреблять чуть меньше байтов. Им, похоже, нравится писать код, где можно выпендриться мастерством программирования.