Все секреты безупречного качества продукции Apple
Потребители всегда знают, что гаджеты Apple не подведут. Название компании ассоциируется не только со стилем, инновациями и классным интерфейсом, но и с высочайшим качеством. Apple ценят за продуманные до мелочей обновления, оперативное исправление обнаруженных мелких дефектов, отсутствие проблем с безопасностью сервисов и программного обеспечения. Именно эти факторы служат главной причиной лояльности потребителей продуктам компании.
Покупатели знают, что их устройство будет качественно функционировать с первого дня использования. Но покупка идеального продукта сопровождается значительными затратами, поэтому фундаментом корпоративной культуры Apple является обеспечение безупречного качества и его постоянный контроль.
Правда, в последнее время Apple тоже дает сбои. То с операционной системой iOS 8 возникнут проблемы, то платформа HealthKit подведет, то карты начнут работать некорректно...
Пока другие компании стремятся стать полностью открытыми, Apple держит все внутренние процессы в строгом секрете.
Большие компании рассказывают о своем производстве, сегодня можно найти множество материалов о разработке и тестировании продуктов 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 - незначительные дефекты, с которыми компания, как правило, справляется до того, как пользователи получают предыдущее обновление.
Примечательно, что на этих встречах часто возникают споры между инженерами и менеджерами. Первые стремятся сначала исправить все ошибки, а вторые хотят выпустить вовремя продукт, а устранение дефектов отложить на следующие версии.
Бывшие сотрудники Apple говорят, что большинство тестов производится вручную. Однако для iPhone используются автоматические тесты. В общей сложности в разработке и тестировании принимает участие порядка 100 человек.
Кроме отдела 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 связан в первую очередь с высокопрофессиональными и лояльными сотрудниками, а не особенными процессами и передовыми технологиями?