Хабрахабр

«Уделяя внимание вопросам доступности, вы получаете крайне преданных пользователей»: интервью с Джоном Фоксом (Netflix)

Известно, что accessibility — это важно, но далеко не все уделяют доступности своего приложения достаточное внимание.

Ещё известно, что появление компании NeXT и её последующая покупка Apple — важный эпизод карьеры Стива Джобса, но мало кто лично писал софт для компьютеров NeXT.

На Medium опубликовали опубликовали оригинальный англоязычный текст интервью, а для Хабра перевели на русский.
— Здравствуйте, Джон. К нам на конференцию Mobius с докладом об accessibility приезжает iOS-разработчик Джон Фокс из Netflix, и в преддверии этого мы решили его расспросить: начали с его продолжительной карьеры, в которой фигурировали NeXT, а затем перешли к теме доступности. Расскажите нам о том, как вы начали заниматься IT. Интересно пообщаться с человеком, который пишет мобильные приложения ещё с 2010 года, а работать в IT начал и вовсе десятилетия назад.

Всё это выходило дешевле стоимости типографского набора одного номера академического журнала, который мы выпускали, а на этот набор средства уже выделялись. — Когда я был студентом в Нью-Йоркском университете, кружок, в котором я состоял, уговорил администрацию выделить ресурсы на покупку Mac, лазерного принтера и приложения для вёрстки страниц QuarkXPress. Среди наших клиентов были финансовые фирмы и юридические конторы, которым требовались переводы в чрезвычайно короткие сроки — более короткие, чем посильно для любого живого переводчика. После окончания учёбы я устроился в нью-йоркскую компанию, которая занималась переводами и обучением языку.

Изначально в США машинным переводом занималась IBM, это были оборонные заказы во время холодной войны, и тогда результат был лишён образности. В Нью-Джерси в то время существовала фирма, которая предоставляла время на мейнфрейме, выполнявшем машинный перевод. Несмотря на этот примитивный уровень, алгоритм можно было обучать. Библейскую цитату «the spirit is willing, but the flesh is weak» («дух бодр, плоть же немощна») алгоритм прямолинейно переводил в духе «водка хорошая, но мясо протухло». Налаживание работы этой системы было неблагодарным трудом: мы посылали документы по прямому соединению с проприетарной машины для обработки текстов на наш Mac, затем по многу раз отправляли их на мейнфрейм и редактировали результат, и, наконец, возвращали прекрасно отформатированный готовый документ клиентам. Он выдавал только первичный вариант текста, который переводчик затем редактировал.

Мой сын-подросток давится со смеху, когда я рассказываю ему, как выглядели игры, когда я был в его возрасте. Представляю, как все закатили глаза при описании такой допотопной технологии. Сохраняется со временем только способность собирать новые решения. Но это нормально: то, что сегодня является наиболее прогрессивной технологией, уже завтра будет пылиться в музее.

— Как вы перешли к работе с мобильными приложениями?

Он опередил своё время по меньшей мере на десятилетие. — Вскоре после моего переезда из Нью-Йорка в Сан-Франциско вышел первый компьютер NeXT. В NeXT были использованы два других результата этих исследований: сетевые технологии и объектно-ориентированное программирование. Здесь нужно сказать про исследования Xerox PARC, которые дали множество очень ценных плодов — например, первые GUI, получившие распространение благодаря Mac. Если бы не было NeXT, я вряд ли занялся бы написанием софта. CERN сейчас отмечает 30-летие World Wide Web — это достижение стало возможным благодаря тому, что доступ к программированию был открыт для людей, не имеющих диплома в computer science. К тому времени, как Apple приобрели NeXT, я уже неплохо владел технологиями и паттернами, которые до сих пор используются разработчиками Cocoa и Cocoa Touch. Вначале я научился проектировать и прототипировать приложения при помощи Interface Builder, затем стал писать веб-приложения с WebObjects (другой инструмент NeXT).

Какими были ваши впечатления? — До iOS вы разрабатывали для Mac OS, а она тогда была менее распространённой, чем сейчас.

Благодаря Cocoa программист мог даже в одиночку создавать красивый и сложный софт. — Cocoa (набор API, унаследованных от NeXTSTEP) тогда давал разработчикам куда больше, чем Windows API. Они предпочли быть первыми в деревне, а не вторыми в городе, и в итоге их деревня превратилась в мегаполис. К моменту появления OS X существовало значительное число инди-разработчиков, многие из которых до этого разрабатывали для NeXT — например, Уилл Шипли (Will Shipley), создатель Delicious Library. Этим же путём прошёл и я — моё приложение MemoryMiner получило отличные отзывы, хорошо продавалось, и позволило мне сделать несколько других продуктов на основе него, а также дало мне работу как консультанту.

Какие ваши обязанности в этой компании? — Вы работаете в Netflix с 2015 года.

После того, как оно было переписано, мы на основе A/B-тестирования сделали много усовершенствований, которые было гораздо проще проделать с современным Cocoa-приложением. — Когда я пришёл в Netflix, их приложение было гибридным (UI на HTML/JavaScript/CSS, плеер на компилированном коде), и они переписывали его целиком на Cocoa Touch.

Что она значит, и в чём отличие от «software engineer»? — В LinkedIn ваша должность обозначена как «product-focused engineer», это довольно необычная формулировка.

Но помимо этих критериев есть множество других, не менее значимых: удобство использования, красивый внешний вид, понятность приложения при первом запуске (особенно для пользовательских приложений). — Безусловно, для качественного приложения важно, чтобы его код был лаконичным, чтобы его было легко поддерживать и чтобы он компилировался без ошибок. п.) Если вы хотите создать полноценный продукт, то эти аспекты настолько же важны, как и правильное проектирование приложения (хорошо спланированные классы, юнит-тестирование и т.

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

Значит ли это, что вы работаете исключительно с UI мобильных приложений — с анимацией, визуализацией и т. — У вас в Twitter написано, что вы — «UI Engineer». п.?

В прошлом я довольно много работал и с кодом для серверов, но конечной целью всегда было создание качественного UI. — Да, сейчас я занимаюсь почти исключительно UI: анимацией, воспроизведением видео, локализацией, доступностью.

— Расскажите нам, какие каждодневные задачи приходится решать мобильному разработчику в Netflix.

п.). — Мы выполняем A/B-тестирование, по результатам которого создаём новые фичи, занимаемся поддержкой и улучшением существующих фич, делимся знаниями, и совершенствуем нашу работу (контроль качества, локализация и т. Поскольку мы контролируем свои конечные точки, наше приложение может получить доступ к нужным данным ровно тогда, когда необходимо.

— Какая у вас структура команды — например, контактируют ли iOS-разработчики с Android-разработчиками?

Мы все сидим рядом, и у нас очень дружеская атмосфера. — Наши команды — и iOS, и Android, и мобильная разработка, и контроль качества — работают вместе.

— Как именно тестировщики взаимодействуют с мобильными разработчиками?

Мы автоматизируем всё, что возможно (например, создание скриншотов), чтобы люди могли делать только то, что у них получается лучше всего. — Ответственность за качество лежит на каждом, так что ответственность разработчика — помочь создать планы тестирования совместно с тестировщиками.

А есть ли что-то подобное конкретно для мобильных разработчиков? — У Netflix есть технологический блог на Medium.

Иногда мы проводим выступления, записи которых доступны на YouTube. — У нас довольно активный Twitter Netflix UI Engineers, посвящённый разработке UI в целом. Есть подборка из четырёх, посвященных именно разработке мобильных приложений.

Когда речь заходит о доступности приложений, часто люди задумываются о слепых и слабовидящих, но accessibility может помочь не только им. — Давайте обсудим тему вашего выступления на Mobius. Какие ещё случаи нужно иметь в виду мобильному разработчику?

Этот эксперимент привлек внимание СМИ. — Прошлой осенью мы с двумя другими разработчиками на хакатоне провели эксперимент, в котором управление iOS-приложением выполнялось без рук с помощью AR Kit. Его целью было помочь людям с заболеваниями опорно-двигательного аппарата.

— Что происходит, если не задумываться о доступности своего iOS-приложения — насколько сильно это затрудняет жизнь пользователям?

Если вы пользуетесь компонентами из стандартного UIKit, то в целом ваше приложение будет работать. — Здесь надо отдать должное Apple: они предоставляют основные функции для доступности «из коробки». Если вы используете веб-технологии, то, скорее всего, ваше приложение будет малодоступным. Но если вы используете собственные компоненты, то ответственность лежит уже на вас. По умолчанию у UIView нет метки accessibilityLabel, так что он не будет распознаваться VoiceOver, наиболее часто используемой технологией доступности в iOS.

Там всё время идут бурные обсуждения того, какие приложения хорошо доступны, а какие — нет. У вопросов доступности Apple-софта очень живое сообщество, у него есть сайт — AppleVis.

Например, дизайнер хочет использовать красивый шрифт, но он читается хуже, чем более скучный. — Вступают соображения доступности в конфликт с другими задачами? Как разрешать эти конфликты?

Очень помогает, если ваше приложение использует Dynamic Type. — Для людей с нарушениями зрения и дальтонизмом главные трудности возникают не из-за самого шрифта, а из-за его размера и контраста.

Даже если ваше приложение не поддерживает Dynamic Type, настройки увеличения и инверсии цвета могут существенно облегчить работу с приложением. А вообще говоря, красивое оформление и удобство для пользователя вовсе не взаимоисключающие характеристики.

Когда пора об этом задумываться? — При разработке нового приложения вопросы доступности легко отложить на потом: мол, рано об этом думать, когда основная функциональность ещё не реализована. Влияют ли соображения доступности на решения, касающиеся всего приложения, так что надо думать о них сразу?

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

Может быть куда проще убедить менеджера вложить ресурсы в обеспечение доступности, если есть данные, сколько новых пользователей это приведёт. — Как бы ни была важна эмпатия, многие решения принимаются на основе экономических показателей. Есть ли статистика по этому вопросу?

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

Хочется ли вам что-то ответить? — Некоторые разработчики скажут: «Ну, у Netflix прорва ресурсов, а мы тут в маленькой команде завалены задачами, поэтому нам не до работы над доступностью».

Например, значительная часть проблем с автоматизацией тестирования решается благодаря предоставлению идентификаторов accessibilityIndentifier для элементов UI. — У нас действительно больше ресурсов, чем у маленькой компании, но мы смотрим на эту работу ещё и как на полезную в других отношениях. Здесь можно провести аналогию с локализацией: есть искушение захардкодить строки в элементах UI, но это существенно ограничит рынок, на котором вы сможете продавать ваше приложение. QA-инженер из нашей команды, который занимался этим, уделял этому достаточно внимания, чтобы проставить ещё и accessibilityLabels, и дальше всё разрослось из этого. Уделяя внимание вопросам доступности, вы создаёте крайне преданных вам пользователей.

А как прошел ваш самый первый доклад? — Вы выступали с докладами уже на многих конференциях.

Я очень переживал по поводу выступления, но боги выступлений были на моей стороне, и в итоге всё прошло хорошо. — Это было в 1995 году, я представлял свою систему маршрутизации и утверждения для NeXT вместе с одним пользователем этой системы на Seybold Publishing Conference в Бостоне. У меня случались и катастрофические сбои по ходу доклада, поэтому при обращении к живому демо я всегда на всякий случай держу заранее заготовленное видео, чтобы был запасной вариант.

Mobius пройдёт в мае, когда они уже начнутся. — Были ли вы раньше в Санкт-Петербурге и слышали ли о белых ночах?

А что до белых ночей, могу рассказать историю, которая произошла со мной ещё до учёбы в колледже, когда я был у друга в Швеции ранним летом. — В России я был только один раз, а в Санкт-Петербурге — ещё ни разу, и мне очень интересно будет посмотреть на ваш город. Вот только веселье закончилось с досрочным появлением дома родителя, который был очень не рад обнаружить у себя в сауне компанию пьяных подростков. Там мы решили воспользоваться нескончаемым световым днём для вечеринки. С тех пор я стал несколько более ответственно подходить к жизни.

Джон выступит там с темой «Accessibility for iOS: Doing well by doing good», а кроме этого, будут десятки других докладов по мобильной разработке. Mobius пройдёт в Петербурге 22-23 мая. Увидеть полную программу можно на сайте конференции, приобрести билеты — там же.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»