Творческий отбор. Как создавались лучшие продукты Apple во времена Стива Джобса - Кен Косиенда
Шрифт:
Интервал:
Закладка:
На этой карте Манхэттена требуется одиннадцать раз пересечь улицы и четыре раза — проспекты, чтобы добраться из пункта А в пункт В. Итого получается пятнадцать подвижек
Схема, получившаяся при попытке напечатать слово blog
Идеальная словарная схема для слова blog с расположенными точно по центру нажатиями на клавиши
Если два нажатия немного смещены, видно, что требуется совсем немного их сдвинуть, чтобы схема стала выглядеть, как идеальный образец набора из словаря. Это достаточно высокая степень совпадения
На рисунке можно увидеть, что идеальная схема для слова blot (пятно) для первых трех букв совпадает со схемой для слова blog, но для последней буквы требуется куда более значительный сдвиг. Степень совпадения со словом blot меньше, чем со словом blog, следовательно, я могу предположить, что, скорее всего, тот, кто набирал текст, имел в виду последнее слово, а не первое
Таким образом, мои подвижки были подсчетом геометрического отклонения, необходимого для перемещения нажатия клавиши пользователем так, чтобы оно совпало с точкой в схеме словаря. Большое количество подвижек и отклонений указывали на слабое совпадение. Малое количество подвижек указывало на небольшое отклонение и высокую степень совпадения. Эту операцию сравнения схем и суммирования подвижек я назвал «алгоритмом отклонения от схемы».
Когда человек набирает текст на клавиатуре, алгоритм отклонения схем, встроенный в мой код автоисправления, создает схемы, пододвигает нажатия и сравнивает касания со словами в словаре. На выходе в результате работы алгоритма возникает список словарных схем, которые наиболее близко совпадают с тем, что делал пользователь, и, конечно, поскольку каждая словарная схема представляет собой слово, алгоритм также предлагает слова, которые автор текста, скорее всего, имел в виду. Если добавить к схемам отклонений значения частоты использования, то алгоритм автоисправления выглядит так.
1. Представить нажатые клавиши как ряд переключений с соседними клавишами.
2. Провернуть рычажки, чтобы проверить все комбинации букв.
3. Отметить словарные слова, появляющиеся при прокручивании рычажков.
4. Рассчитать схему отклонения для каждого найденного слова.
5. Добавить значение частоты использования для каждого найденного слова во взаимодействии со схемой отклонения.
6. Из всех найденных слов предложить одно с самым большим значением с точки зрения частоты использования и схемы отклонения{40}.
Таким был окончательный алгоритм автоисправления. То, что я употребил слово «окончательный», казалось бы, указывает на достигнутый успех, но, как уже, наверное, стало понятно, в Apple в целом и в проекте Purple в частности всегда оставалось, над чем еще поработать. Первые отзывы от моих коллег по команде были положительными: с помощью алгоритма отклонения от схемы стало легче печатать точнее и аккуратнее. Но несмотря на это я провел много месяцев, настраивая и оптимизируя расчет подвижек, чтобы улучшить качество ввода текста.
В то время как алгоритм отклонения от схемы становился все лучше, наверх моего списка дел перемещались другие задачи. Они были связаны с тем, где будет задействована клавиатура: для заполнения однострочных полей в таких приложениях, как «Контакты», и в многострочных текстовых областях таких приложений, как «Заметки». Я писал код для этих пользовательских виджетов, используя как основу свою работу с текстовым редактором WebKit. Пополнение словаря тоже нельзя было полностью отставить в сторону, и я продолжал им заниматься, добавляя новые названия продуктов Apple, например, Xserve, и такие тонкости, как автоматическое добавление апострофа в cant, что превращало слово в can’t.
Я продолжал улучшать клавиатуру, и со временем при печати возникало все меньше и меньше глупых ошибок.
Все начали более оптимистично смотреть на постоянно включенное автоисправление. Как функция, клавиатура перешла на этап конвергенции. Моя клавиатура приближалась к тому, чтобы стать достойной включения в продукт Apple.
Пока я был полностью сосредоточен на клавиатуре, другие члены команды Purple проходили через свой собственный опыт разработки и делали открытия. Многое в этих сражениях оставалось для меня незаметным, потому что я занимался своей трудной работой и потому что Стив требовал секретности в каждом отделе. Я почти ничего не знаю о том, как придумали сам аппарат, о деталях процесса промышленного проектирования и о переговорах с продавцами телефонов.
Если же говорить о программном обеспечении, то я знаю больше. Я всегда тестировал работу, которую делали мои коллеги, и выдавал им обратную связь так же, как они давали свои отзывы о моей клавиатуре.
Например, на MobileSafari, браузере Purple, страницы часто казались просто крошечными, когда мы отображали их так, чтобы они занимали весь экран смартфона. Было практически невозможно нажать пальцем на ссылку, если бы нужно было попасть по ней точно. Поэтому Ричард Уильямсон и еще один наш коллега придумали схему, по которой касание распространялось от конкретной точки, которой вы коснулись, чтобы нажать ссылку. Самая близкая ссылка к этой точке и считалась той, по которой вы хотите перейти.
Нам нужно было вести счет этих тщательно настроенных поправок и возможных действий, которые мы внесли в наше программное обеспечение, чтобы сделать операционную систему сенсорного телефона интуитивно понятной и простой в использовании.
Испытывали ли мы на себе давление, заставляющее быстрее заполнить подобные пробелы в нашей системе? Да. Я справлялся с ним, контролируя и регулируя свое рабочее время. Если я не уставал, то мог сопротивляться стрессу. По крайней мере, бо́льшую часть времени. Например, однажды, когда у меня с коллегой появились разногласия по поводу решения технической проблемы, связанной с клавиатурой, а в мой код все еще вносились изменения, я сорвался и заорал на него: «Пошел ***** [к черту] из моего кабинета!»
Еще один инцидент произошел с Ким Воррат, которая делала напряженную работу, балансируя между расписанием работ и постоянной оценкой рисков, связанных с нашим продвижением вперед. Однажды вечером Ким разозлилась и так хлопнула дверью своего кабинета, что сломала механизм замка и оказалась запертой внутри. Чем она была так расстроена? Достаточно точный ответ будет такой: ежедневной утомительной работой над Purple. Какая-то незначительная проблема заставила ее взорваться. Скотт Форсталл вызволил Ким из