Почему Дарен и Трей увидели это решение, а я нет? Не стоит забывать, что я все время создавал классы С++. Это то, что обычно делают программисты. Вместе с тем мне приходилось заниматься другими техническими проблемами в других частях проекта, которые в этом рассказе я пропустил, чтобы он не получился слишком длинным. Да, когда я, в конце концов, попросил помощи у Дарена и Трея, я мог ясно объяснить все проблемы. Они соединили мои объяснения со своим свежим взглядом, благодаря отличным навыкам системных архитекторов быстро увидели ускользавшее от меня решение и смогли подкрепить его общим принципом, который обосновывал их предложения.
Хотя я и зашел в тупик, а они были замечательными профессионалами, для нашей встречи важными оказались и мои состояние ума и настрой. Если бы я обратился за помощью раньше, я мог бы занять оборонительную позицию при подобном техническом разборе моих достижений коллегами. Я горжусь своим мастерством и умением решать серьезные проблемы, и, хотя считаю себя человеком, готовым к сотрудничеству, это не всегда так заметно, как могло бы быть. Если бы я не увяз так отчаянно, возможно, я не стал бы прислушиваться к советам Дарена и Трея с такой готовностью. Да и едва ли я стал бы просить мне помочь, разве что попробовал бы намекнуть каким-нибудь странным способом.
В самом деле, как все обернулось бы, будь я настроен совсем по-другому? Если бы я нарисовал меньше графиков и схем, вещал бы монотонным голосом, и коллеги начали бы отвлекаться от моего рассказа? Что, если бы я каким-то образом продемонстрировал нежелание выслушивать отзывы о своей работе — например, стоял бы, скрестив руки, когда не был занят рисованием? Что, если Дарен и Трей возились со мной только потому, что им велел Дон, который был начальником для нас троих? Что, если бы я затаил злобу на Дарена из-за того, что он увел у меня должность менеджера Safari, и он ощутил бы мое отношение? Если бы любое из этих социальных препятствий встало на пути, это техническое совещание прошло бы не так хорошо, и я и дальше оставался бы в тупике.
Но этого не случилось. После совещания я полностью и без всяких оговорок начал следовать советам Дарена и Трея. Я следовал их программистскому рецепту в точности, как они предлагали. Далее, показывая им измененный код, я делал демоверсии, где было видно, что благодаря их советам я исправил определенные ошибки; движения точки ввода стали более последовательными там, где они пропускались, а там, где курсор исчезал, он стал наконец видимым.
Наше дальнейшее взаимодействие привело к результату, которого я не ожидал. Когда Дарену и Трею стало ясно, что их советы привели к явному улучшению моего кода, им, кажется, это понравилось. Несмотря на то что вся техническая работа по улучшению поведения точки ввода оставалась моей ответственностью, они могли порадоваться со мной по поводу выхода из кризиса. Исправление ошибок теперь было темой, которую мы могли детально обсуждать во время разговоров в коридоре и кафетерии, а благодаря нашему сотрудничеству они смогли понять, что происходит, и предлагали мне дальнейшие улучшения.
Я добился успеха в привлечении коллег к моей работе по точке ввода, не просто попросив у них помощи на одном совещании и поблагодарив их после того, как оно закончилось, но еще и показал, как много их советы для меня значили, применив их в работе с кодом, показывая демоверсии и общаясь с коллегами за обедом. Корректная работа точки ввода была теперь не только моим проектом. Это был
Вот такой урок я усвоил во время работы с редактированием в WebKit: люди важнее программ. Это может прозвучать банально, но многие программисты гораздо лучше ладят со своими компьютерами, чем с коллегами, и в Кремниевой долине появилась тенденция рассматривать любой вопрос как имеющий чисто технический ответ.
Тем не менее, если бы Скотт не нашел правильные слова, которые он сказал мне, когда в команде Safari сменилось руководство, я бы мог уйти в Google и не подписался бы на проект редактирования WebKit.
Если бы мы с Доном и Дареном не смогли продолжать работать вместе из-за того, что я чувствовал по поводу той же смены руководства, или если бы я оказался слишком гордым для того, чтобы воспользоваться их советами, я так и остался бы в тупике с этой непредсказуемой точкой ввода и мой проект попросту провалился бы. В итоге с проектом все было нормально и, хотя я разработал все идеи редактирования HTML и написал буквально каждую строчку кода, с помощью которого клиенты могут редактировать и составлять веб-страницы в электронных письмах, я не могу сказать, что сделал все сам.