Все секреты безупречного качества продукции Apple

Компания Apple сегодня является флагманом качества в мире технологий. Такой статус она получила благодаря тщательнейшему подходу к тестированию продуктов и грамотно построенному циклу разработки и производства.

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

Покупатели знают, что их устройство будет качественно функционировать с первого дня использования. Но покупка идеального продукта сопровождается значительными затратами, поэтому фундаментом корпоративной культуры Apple является обеспечение безупречного качества и его постоянный контроль.

Правда, в последнее время Apple тоже дает сбои. То с операционной системой iOS 8 возникнут проблемы, то платформа HealthKit подведет, то карты начнут работать некорректно… [pullquote]Пока другие компании стремятся стать полностью открытыми, Apple держит все внутренние процессы в строгом секрете.[/pullquote] Большие компании рассказывают о своем производстве, сегодня можно найти множество материалов о разработке и тестировании продуктов Google или Microsoft. Например, про тестирование Google пишет Джеймс Уиттакер в книге How Google Tests Software («Как Google тестирует продукцию»), также о нем можно узнать с конференций компании. О тестировании продуктов Microsoft рассказывает книга How We Test Software at Microsoft («Как мы тестируем продукцию в Microsoft).

Про тестирование Apple вы не найдете ни одной книги. Более того, нереально отыскать даже доклады на конференциях или интервью членов команды Quality Assurance в Apple. На все вопросы журналистов, связанные с производством, представители компании отказываются отвечать.

Мы попытались собрать всю доступную информацию о разработке и тестировании продуктов Apple. Безусловно, нельзя безоговорочно верить всем представленным источникам, поскольку их предположения часто основаны на субъективных выводах и догадках. Но некоторые моменты заслуживают внимания, так как они проясняют многие нюансы, связанные с разработкой продукции Apple.

Например, Адам Лашински в книге Inside Apple («Внутри Apple») так описывает технологический процесс создания продуктов:

«Согласно философии Apple, продукты начинаются с дизайна. Конкуренты могут лишь восхищаться тем, какое высокое положение занимают дизайнеры в компании. «В большинстве фирм сначала составляют план, проводят анализ рынка, намечают ориентиры, а уже потом дают указания дизайнерам», – говорит Ив Беар, руководитель калифорнийской художественной студии Fuseproject.

В Apple все с точностью до наоборот: дизайнер излагает свою концепцию, которая для остальных является руководством к действию. «Если он говорит: «нужно использовать такой-то материал», коллектив молча кивает в ответ, – поясняет Беар. – Везде производственный отдел диктует свою волю дизайнерскому, в Apple – наоборот».

Как только в дизайнерском отделе Apple закипает работа, подключаются остальные подразделения компании; два из них – снабженцы и инженеры – отвечают за конечный продукт. Начинается процесс создания новинок Apple – Apple New Product Process, или ANPP. Такое название носит пошаговая инструкция для внутреннего пользования. Сказать, что ANPP – изобретение Apple, нельзя: в конце 1970-х – начале 1980-х годов аналогичные документы существовали в Xerox, Hewlett-Packard и некоторых других компаниях. Один из бывших инженеров Apple назвал процесс производства Macintosh смесью искусства с наукой.

При этом цель ANPP – «идеально отладить научную составляющую, чтобы осталось время на занятия искусством». В документе четко указаны этапы разработки, исполнители, распределены задачи между функциональными подразделениями и установлены сроки выполнения поставленных целей.

Перед тем как готовый продукт покинет стены лаборатории, инициативу в свои руки берут два человека – главный инженер и главный логист. Первый определяет, каким должен быть продукт, и руководит работой технических специалистов. Он наделен такой огромной властью, что вселяет страх в сердца сотрудников: у них даже в ходу название «инженерная мафия». Главный логист отвечает за глобальные цепочки поставок; в его ведении созданный Тимом Куком операционный отдел; логист решает, где достать материалы, необходимые для создания продукта. Эти двое руководят всем: подбором поставщиков, закупками и производством. Правда, бывают ситуации, когда им совсем непросто договориться. «В Apple достаточно сказать: «Так будет лучше для продукта», затем привести убедительные аргументы, чтобы спор прекратился и решение было принято в твою пользу», – рассказывал в середине первого десятилетия нового века один из инженеров компании.

Несмотря на то, что место работы инженеров и логистов – офис в Купертино, большую часть времени они проводят в Китае. Там на контрактной основе корпорация производит свои компьютеры и мобильные устройства. Другие компании на месте Apple разрабатывали бы продукты в офисе, а потом отправляли готовый проект внешним производителям – так дешевле. Но Apple выбирает едва ли не самый затратный путь: проектирует продукт в офисе, а затем производит и тестирует опытный образец на заводе-изготовителе.

Чтобы добиться нужного результата, зачастую приходится воспроизводить всю цепочку несколько раз: снова разрабатывать, изготавливать и тестировать продукт. По выражению бывшего инженера, в Apple существует «открытый цикл»: каждые 4–6 недель на китайской фабрике встречаются основные участники проекта. Обычно главный инженер, который сводит вместе специалистов по «железу» и софту, принимает свежий опытный образец и везет в Купертино на суд вышестоящего начальства. Потом опять садится в самолет и летит обратно. Так повторяется снова и снова».

Хотя про тестирование здесь не сказано ни слова, но понять общую специфику процессов можно.

Больше подробностей открывает книга Линдера Кани Jony Ive: The Genius Behind Apple’s Greatest Products («Джони Айв. Легендарный дизайнер Apple»):

«В течение нескольких месяцев после запуска iMac команда «A» довела до совершенства новую методику разработки. Она была названа Apple New Product Process («Процесс разработки нового продукта Apple»), сокращенно ANPP, и стала одним из ключей к успеху Apple. Неудивительно, что в реальности Стива Джобса ANPP быстро превратился в хорошо продуманный процесс вывода новых продуктов на рынок путем детального планирования каждой стадии разработки продукта.

Принцип ANPP, воплощенный в компьютерной программе для внутренней сети компании, напоминает гигантский контрольный лист. В нем подробно расписано, что каждый сотрудник должен делать на каждой стадии. Инструкции есть для всех подразделений, начиная с отдела аппаратного обеспечения и кончая программистами, операционным, финансовым и маркетинговым отделами и техподдержкой, которая решала проблемы и занималась ремонтом продуктов после их выхода на рынок. «Процесс охватывает все, от цепочки снабжения до магазинов, — объясняет один из бывших директоров, и касается не только поставщиков, но и субподрядчиков. Сотни компаний. Все, начиная с красок и винтиков и заканчивая микросхемами».

С самого начала ANPP вовлекает в процесс отделы, работа которых видна только после запуска продукта, например, маркетинг. «У нас в Apple о потребностях клиента и конкурентоспособности думают сразу, как только начинается работа над продуктом, говорит директор по маркетингу Фил Шиллер. Маркетологи равноправные члены команды, они создают продукцию наряду с инженерами и операционной группой».

Система ANPP была построена с учетом лучших наработок Hewlett Packard и других компаний Кремниевой долины. Джобс задумал ее еще в NeXT и довел до совершенства почти сразу после возвращения в Apple. Хотя такая процедура может показаться негибкой, она стала важным достижением. Один сотрудник в то время описывал ее так: «Процесс очень четко расписан, но не обременителен и не бюрократичен. Он дает каждому возможность творить там, где это нужно, но не более того. Посмотрите на результаты! Apple очень быстрая компания».

Система охватывала и отдел Джони, поэтому дизайнеры отныне должны были отмечать галочками все этапы от исследований и создания концепта до разработки и производства. Салли Грисдейл работала менеджером группы продвинутых технологий, которая тесно сотрудничала с группой дизайна. Она говорит, что ANPP отличался от систем в других компаниях систематическим документированием.

«Записывали все. Это было неизбежно, ведь элементов так много, говорит она. Когда я работала, все процессы были прописаны. Именно поэтому в Apple было так здорово работать: у нас были буклеты о том, что и как надо делать, и это очень помогало при разработке программ и аппаратуры. Во всем была стройность и логика. Когда я перешла в другие компании, Excite и Yahoo, я столкнулась с жестокой реальностью у них ничего подобного не было. Никто ничего не записывал. Какой процесс? Вы смеетесь? Отдали и забыли!»

Другим источником вдохновения для ANPP было «комплексное проектирование» современная система управления технологическим процессом, благодаря которой отделы могут работать параллельно, в отличие от старой схемы, где проекты последовательно переходят от одного коллектива к другому.

Она зародилась в крупных инженерных организациях вроде NASA и Европейского космического агентства. Эта сложная, но гибкая методика позволяла выявлять проблемы на ранних этапах, поскольку учитывала процесс в целом полный жизненный цикл продукта от производства до обслуживания и утилизации. Джони восхищался разработчиками космических спутников, не исключено, что из-за применения ими комплексного проектирования.

Раньше в Apple над изделием сначала трудились инженеры, а затем оно переходило к дизайнерам для разработки оболочки. При Джобсе такая схема перестала работать из-за возросшего значения дизайн-студии. «Если вы так же амбициозны, как мы, традиционные способы разработки вам не подходят, заметил Джони. Задачи столь сложны, что приходится создавать продукцию в тесном сотрудничестве».

Bloomberg пишет, что в состав команды Quality Assurance входит примерно 100 сотрудников. Рабочие обсуждения команды носят название Bug Review Board. Во время этих встреч инженеры компании отчитываются о поиске дефектов и контролируют этот процесс с помощью специального графика:

Руководителем заседания является вице-президент продукт-менеджемента iOS и Mac OS Ким Воррат. Также он отвечает за соблюдение сроков выхода продуктов и их качество перед выпуском. Кроме него в обсуждении принимает участие директор департамента Quality Assurance Джош Уильямс и другие инженеры Apple Software Engineering Group.

В процессе обсуждения все найденные дефекты сортируются по степени важности от P1 до P3. При этом P1 считается существенным дефектом, который блокирует выпуск продукта. P2 и P3 – незначительные дефекты, с которыми компания, как правило, справляется до того, как пользователи получают предыдущее обновление.

Примечательно, что на этих встречах часто возникают споры между инженерами и менеджерами. Первые стремятся сначала исправить все ошибки, а вторые хотят выпустить вовремя продукт, а устранение дефектов отложить на следующие версии.

[pullquote]Бывшие сотрудники Apple говорят, что большинство тестов производится вручную. Однако для iPhone используются автоматические тесты. В общей сложности в разработке и тестировании принимает участие порядка 100 человек.[/pullquote]

Кроме отдела Quality Assurance, который несет ответственность за качество, в Apple с 1980 года существует практика использования своих продуктов. Тогда президент компании Майкл Скотт написал письмо, в котором призвал сотрудников не использовать печатные машинки. Таким образом он хотел убедить пользователей в том, что печатные машинки им больше не нужны.

В книге «Внутри Apple» упоминается такой показательный эпизод: «Типичный пример – iPhone. Его предыстория проста: сотрудников Apple раздражали смартфоны, которые они покупали. «В итоге решили сделать свой», – объяснял Джобс и достигал сразу двух целей. С одной стороны, рассказывал несомненно правдивую историю, с другой говорил покупателю что-то вроде: «Мы обожаем собачий корм настолько, что едим его сами. Приобретайте, не пожалеете». Этот принцип получил название«eating your own dog food» («кушать корм своей собаки»).

Также в компании активно используется тестирование моделей в повседневной жизни. Сотрудники ежедневно используют устройства, чтобы обнаружить дефекты, которые не удалось найти во время лабораторных тестов.

В Apple практикуют программу Bug bounty, которая поощряет людей, обнаруживших в продуктах недостатки и сообщивших компании о них. Также инженеры Apple сотрудничают с FreeBSD Security Team в вопросах, касающихся анализа и релиза патчей безопасности. Компания любит проводить тестирование на пользователях, ради чего выпускает бета-версии своего программного обеспечения.

Судя по списку вакансий, в команду Quality Assurance входят как специалисты по ручному, так и по автоматическому тестированию. Вероятнее всего с каждой продуктовой командой сотрудничает своя команда тестировщиков.

Если говорить об используемых инструментах и технологиях, то Apple почти не отличается от других разработчиков ПО:

  • в разработке используется Сontinuous Integration;
  • тестовые фреймворки пишутся с помощью Python, Ruby и Perl, для автоматизации типичных действий используется AppleScript;
  • компания пользуется JUnit, TestNG, Selenium и WebDriver.

Уязвимым местом Apple можно считать количество автоматических тестов. Как и у многих других компаний, у Apple наблюдается отставание процесса автоматизации тестирования функциональности от темпов разработки этой функциональности.

Стоит более подробно рассмотреть такой инструмент разработки и тестирования, как Radar. Эту внутренняя программа Apple для устранения дефектов. Существует несколько способов работы в Radar. Первый – использование веб-приложения RadarWeb. Второй – использование приложения MobileRadar, предназначенного для iPad и iPhone. Третий вариант – Radar для OS X. Сторонние разработчики могут получить доступ только к RadarWeb с ограниченным функционалом. Сотрудники Apple могут использовать все преимущества программы посредством приложений для iOS, Radar для OS X и RadarWeb.

Майкл Лопп, который ранее работал в Apple старшим менеджером по разработке, рассказывает о своих впечатлениях от Radar:

«Это было мое любимое приложение для внутреннего пользования. Radar написан на Cocoa, он работает как программа отслеживания дефектов. Если вы желаете узнать о конкретном приложении Apple, вам нужно зайти в Radar.

Многие команды в компании ставили приложение во главу угла. Apple принимала жалобы на продукт только тогда, когда Radar фиксировал эти неполадки. Если бы меня спросили: «Вы знаете, что в вашем продукте есть определенный дефект?», я бы задал встречный вопрос: «А есть ли он в Radar?» – «Нет». –  «Пока его там нет, я ничем не могу помочь».

В компании существуют неприкасаемые правила:

  • сообщать о всех, даже самых мелких дефектах продукта;
  • указывать как можно больше подробностей о возникшей проблеме. Стоит также убедиться, что ее еще нет в базе. Обязательно зафиксировать наличие этой проблемы;
  • после сообщения о решении проблемы нужно самому все проверить. Часто бывает так, что проблема остается или на ее месте возникает другая;
  • несоблюдение правил влечет оперативное напоминание о них.

Команды, которые придерживались этих правил, смогли превратить Radar в мощный инструмент и надежный источник данных о продукции. Программа позволяет отвечать на вопросы о состоянии разработки не уклончивыми ответами типа: «Постепенно двигаемся вперед», а конкретно: «Устраняем главные дефекты, по одному на инженера в течение дня. Команда состоит из 14 специалистов, которые работают над 308 ошибками. Если не учитывать новые, то справимся с работой за 22 дня. Новые ошибки приходят по 7 штук в день, их количество будет увеличиваться. Подробную информацию можете посмотреть в Radar».

Если взглянуть на вакансии Apple, то можно предположить, что компания практикует использование методологий Agile и Scrum.

Один из бывших разработчиков Mac OS рассказал об изменениях в методологии разработки ПО. Вместо релизов с огромным количеством модификаций была введена система спринтов – две недели отводится на разработку функционала и одна неделя на устранение дефектов. Этот человек уверен, что нововведения сказались на стабильности приложений и предсказуемости дат их выхода в мир.

Давайте теперь подытожим ключевые особенности разработки и тестирования продуктов в Apple:

  • главная роль отводится команде дизайнеров, а не разработчиков;
  • все обнаруженные ошибки мгновенно фиксируются специальной программой Radar;
  • процесс разработки определяется строгой инструкцией (ANPP), в которой описаны все этапы создания продукта;
  • за тестирование продуктов отвечают два человека: главный инженер и главный логист. Внутри компании они получают фактически безграничные полномочия.
  • все продукты проходят бета-тестирование;
  • сотрудники Apple тестируют опытные образцы в повседневной жизни;
  • компания использует принцип «кушать корм своей собаки»;
  • используется система поощрения Bug Bounty;
  • Все дефекты анализируются в процессе коллективного обсуждения (Bug Review Board);
  • компания отдает предпочтение ручному тестированию;
  • разработка происходит в течение трехнедельных спринтов: две недели идет на разработку функционала, одна неделя – на устранение ошибок.

Со всех этих процессов и рождается конечная продукция Apple. Безусловно, компания в этом плане не открыла Америку, большинство конкурентов подходит к разработке примерно так же. Возможно, секрет успеха Apple связан в первую очередь с высокопрофессиональными и лояльными сотрудниками, а не особенными процессами и передовыми технологиями?

Читайте также:

Apple — 40 лет: все взлёты и падения компании

Apple задает новый стиль, или что особенного в новом iPhone SE