Сколько времени должна занять анимация раскрытия ярлыка приложения, чтобы оно раскрылось на весь экран? Как далеко вы должны провести пальцем по экрану для того, чтобы это касание можно было интерпретировать как свайп? Насколько жест расширения позволяет вам увеличить фотографию в приложении «Фото»? Ответами на все эти вопросы будут числа, возможно, 0,35 секунды для анимации приложения, или 30 пикселей для свайпа, или четырехкратное увеличение для фотографии, но главное тут не в этом. Сами значения ничего не доказывают ни в каком инженерном смысле. Скорее эти цифры представляют собой разумные умолчания[42]
, или приятные эффекты, или способ дать людям то, что они имеют в виду, а не то, что они делают. Для обнаружения того, что представляют собой эти вещи и какие из них являются приемлемыми, нужно время, поскольку слово «эвристический» происходит от слова «эврика», которое, конечно же, пришло к нам из греческого и означает «найти». Именно здесь слово «эврика» входит в наш процесс разработки, поскольку хорошие эвристические правила не появляются в виде вспышек озарения, а являются результатом терпеливых поисков. Нам даже не всегда было понятно, что мы уже отыскали нужное эвристическое правило. К окончательному решению мы приходили только с течением времени, после долгого рассмотрения. Эвристические правила работают так. Они субъективны.Мы используем алгоритмы и эвристические правила так, будто они являются двумя полушариями нашего коллективного разума, занимающегося разработкой продуктов. Реализация каждого связана с пересечением мастерства и вкуса, и мы всегда боролись за то, чтобы соблюсти правильный баланс. Чтобы сделать великолепный продукт высокого технического уровня, алгоритмы и эвристические правила должны сочетаться. Быстрая загрузка веб-страниц, правильное движение точки ввода, эффективный код, живая анимация, интуитивно понятные жесты и продуманное поведение — все это неотъемлемые составляющие такого продукта, как iPhone. Нашей целью была удобная техника и приспособленные к компьютеру гуманитарные науки — комбинация тех и других.
Как бы то ни было, очень важно правильно понять, что лучше использовать в конкретной ситуации: алгоритм или эвристическое правило. Именно поэтому эксперимент Google с сорока одним оттенком голубого кажется мне таким чужеродным, ведь я привык к подходу Apple. Google использовал А/В-тестирование, чтобы выбрать цвет. Он применяет один-единственный, заранее определенный критерий оценки и формулирует его так: лучший оттенок голубого — это тот, который люди чаще всего выбирают во время теста. Это алгоритм.
В Apple мы никогда не рассматривали понятие правильного цвета с точки зрения алгоритма. Мы использовали демоверсии, чтобы выбрать цвет и время анимации, и мы полагались на свой вкус. Когда мы искали правильное «движение пальца согласно правилу», как говорится в отрывке, который я взял из «Патента-949», мы принимали субъективное решение. Мы разрабатывали эвристические правила.
В то же время мы не делали все подряд на основе эмоций и поверхностных суждений. Создание оптимизированных алгоритмов было значительной частью разработки программного обеспечения для iPhone так же, как это было когда-то для Safari. Но важно было сохранять связь и движение между алгоритмами и эвристическими правилами — делать правильный выбор, чему отдать предпочтение: техническим или гуманитарным наукам. Это бывало непросто.