Быстро и точно! Практика методики повышения эффективности исследований и разработок в Facebook

UI.

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

Итак, как команда может эффективно повысить эффективность НИОКР? Нужно ли не только быстро, но и быстро продолжать?

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

Быстро и точно!  Практика методики повышения эффективности исследований и разработок в Facebook

Ge Jun

Соучредитель и технический директор KodeRover

Вопросы и ответы

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

Гэ Цзюнь: После окончания Китайского университета науки и технологий я поступил в университет штата Айова в качестве аспиранта по информатике. После выпуска в 2004 году он сначала присоединился к Microsoft в США, затем присоединился к Facebook в 2010 году и ушел через пять лет. После этого он присоединился к нескольким отечественным и зарубежным компаниям, таким как стартап Stand Technologies в США и Huawei в Китае; в настоящее время он является соучредителем и техническим директором KodeRover.

Я хорош в двух областях:

Первое - это эффективность исследований и разработок. Основная работа, которую я делаю в Facebook, - это разработка Phabricator с открытым исходным кодом. Это набор инструментов для исследований и разработок, основная функция которого - проверка кода. Кроме того, когда я работал в Huawei, моим рабочим отделом был отдел инструментов разработки, который также работал над эффективностью. Кроме того, лично меня всегда интересовала эффективность. Так что эффективность НИОКР - это первая область, с которой я знаком.

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

Сообщество: Нетрудно сказать из вашего резюме, что вы превосходны. Какое влияние на вашу карьеру оказывает опыт работы в компании мирового уровня?

Гэ Чжун: Каждый опыт важен для моего личного роста. Например, 6 лет работы в Microsoft были моей первой работой после окончания учебы. Сильный технический опыт Microsoft и тщательный процесс разработки заложили основу для моего будущего развития. Очень хорошая основа; и Опыт работы в Huawei позволил мне по-настоящему понять, как работают НИОКР отечественных крупных компаний, и изучить принципы и методы, лежащие в основе их чрезвычайно высокой эффективности.

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

Сообщество: В чем разница между корпоративной культурой Facebook и пониманием эффективности НИОКР?

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

В основном это отражается в трех аспектах:

Во-первых, постарайтесь позволить разработчикам делать то, что им интересно . Например, во время подачи заявки есть Bootcamp, дающий каждому 6 недель, чтобы найти свои любимые продукты и команды.

Второй - дать каждому возможность получить информацию . Например, весь код является общедоступным для всей компании.

Третье - доверие. Например, отказоустойчивость очень высока.

Что касается понимания Facebook эффективности НИОКР, я думаю, что есть две основные характеристики.

1. Прагматизм, всегда находите более рентабельную практику НИОКР, исходя из реальной ситуации в вашей компании.

2. Способен лучше взвесить непосредственные выгоды и долгосрочное развитие. Такие как. Уметь постоянно инвестировать в технологии, чтобы не допустить накопления большого технического долга.

3. Они постоянно обращают внимание на эффективность и постоянно развивают базовую платформу и процесс в соответствии с различными стадиями развития бизнеса . Возьмем, к примеру, эффективность доставки, которая очень важна в DevOps. Примерно в 2008 году они установили плавный процесс непрерывной интеграции, еженедельное развертывание, ежедневное развертывание и развертывание оперативных исправлений, поддерживая выпуск в серой шкале, выпуск сине-зеленого цвета и другие методы. Позвольте тысячам разработчиков эффективно работать в одной и той же ветке разработки. КПД и без того очень высокий. Но в связи с потребностями развития бизнеса они начали непрерывное развертывание примерно в 2017 году. Именно этот подход и метод постоянного совершенствования (Непрерывное совершенствование) позволяет им поддерживать высокую производительность и является необходимым условием их успеха в бизнесе.

Сообщество: Итак, с точки зрения того, как повысить эффективность исследований и разработок команды, чем вы хотите поделиться с нами?

Ге Цзюнь : Прежде всего, определение эффективности НИОКР должно включать три аспекта: быстрый, точный и непрерывный. Другими словами, необходимо постоянно и быстро производить вещи, ценные для пользователей.

Чтобы систематически повышать эффективность НИОКР, нам сначала необходимо понять природу НИОКР в области программного обеспечения. Разработка программного обеспечения - это, по сути, сверхгибкий конвейер. Итак, как можно повысить эффективность этого конвейера? Я думаю, что есть четыре основных направления:

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

1. Прежде чем код будет помещен в библиотеку, позвольте разработке не блокироваться, например, предоставлять услуги самообслуживания для разработки и ее среды.

2. Улучшить способность непрерывной доставки, которой в последние годы является DevOps. Максимально автоматизируйте выборку филиалов, получение среды, развертывание, тестирование, проверку и обратную связь с данными.

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

На самом деле эти точки не изолированы, а пересекаются и дополняют друг друга.

Что касается инженерных методов, оптимизируйте ключевые узлы сборочной линии, то есть этапы проектирования, разработки, тестирования, эксплуатации и обслуживания. Например, управление филиалом, тестовая смена влево и вправо. Кроме того, хорошим конкретным примером является обзор кода. Он обнаруживает проблему как можно раньше и устраняет проблему в колыбели. Что касается обзора кода. Facebook очень эффективен и играет очень важную роль в улучшении качества кода, прежде чем он будет помещен в библиотеку. на этой точке. Многие компании не используют его должным образом. Либо так не может продолжаться, либо это просто формальность.

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

  1. В первую очередь обратите внимание на бизнес и начните разработку с конца.
  2. Изучить некоторые базовые принципы и знания эффективной разработки, включая атомарность кода, архитектуру, парадигму дизайна и т. Д .;
  3. Потратьте время на изучение общих инструментов, таких как командная строка и GIT.
  4. Наконец, что еще более важно, продолжайте учиться.

С точки зрения менеджмента и культурного строительства, все вышеперечисленные практики должны поддерживаться менеджментом, поэтому менеджмент является фундаментальным. Кроме того, культура - это негласное правило работы команды. Следовательно, чтобы продолжать производить высокие результаты, мы должны создать хорошую культуру. В целом я считаю, что для повышения эффективности НИОКР технические менеджеры должны делать следующее:

  1. Найдите правильное направление и найдите баланс между бизнес-целями и техническими целями
  2. Тимбилдинг, построение эшелона и поиск талантов с желанием расти
  3. Найдите способы мобилизовать внутренний драйв членов команды. Например, создание среды, поощряющей инновации, методом проб и ошибок.

Сообщество: Каков стандарт для повышения эффективности НИОКР команды?

Ге Цзюнь : Я думаю, что самым важным должен быть вклад команды в компанию. В частности, ниже я перечисляю некоторые показатели, которые можно использовать в качестве справочных:

С точки зрения создания ценности для пользователя или нет , чистая рекомендация - лучший индикатор. Готовность пользователей рекомендовать ваш продукт может интуитивно отражать качество продукта. Не просите вслепую все быстрее и быстрее - все зависит от того, смогут ли разработанные продукты и функции использовать пользователи. Второй полезный показатель - время простоя системного приложения.

С точки зрения процесса , я считаю, что количество незавершенных работ (незавершенных работ) является относительно важным показателем, это одна из основных составляющих метода Канбан; кроме того, очень важна частота выпуска обновлений. Вообще говоря, чем больше чем чаще, тем лучше, конечно, выпуск При этом будут возникать транзакционные издержки. Стоимость транзакции выпуска относится к различным аспектам процесса, которые должны быть выполнены во время каждого процесса выпуска, таким как ветвление, развертывание, тестирование и т. Д.

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

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

Сообщество: С какими серьезными трудностями вы столкнулись в своей карьере в сфере технологий? Как вы решили трудности?

Гэ Цзюнь : Я оказал огромное влияние на эти две проблемы. Первый раз - технический аспект. Тогда я пошел в Facebook, чтобы открыть Phabricator. В то время я не был знаком со стеком технологий Facebook. Мне нужно было как можно скорее открыть Phabricator. Я также отвечал за внутреннюю разработку, развертывание и работу Phabricator в целом, а также за сотрудничество с сообществом разработчиков ПО с открытым исходным кодом. было много работы и много нового. Учеба находится под большим давлением.

Другой раз - поработать в Huawei после возвращения в Китай. Поскольку после окончания учебы я работал в Соединенных Штатах, я не адаптирован к отечественным гуманитарным наукам и корпоративной культуре, поэтому проблема относительно велика.

Чтобы справиться с этими трудностями, нужно быстро учиться. Оба раза требовалось около 3-6 месяцев, чтобы к этому привыкнуть. Оглядываясь назад, я могу сказать, что этот опыт очень ценен для меня, позволяя мне быстро расти и совершенствоваться.

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

Ге Цзюнь : Действительно, есть большая разница.Я думаю, что для того, чтобы быть хорошим техническим директором, вы должны уравновешивать два аспекта и одновременно уделять внимание бизнесу.

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

Во-вторых, управление обучением . Руководитель команды в основном имеет дело с людьми, поэтому он будет общаться. Должны быть разные методы коммуникации для разных объектов коммуникации, таких как генеральный директор, CXO и внутренние члены команды; во-вторых, ставить разумные бизнес-цели и технические цели для команды и эффективно их выполнять; в-третьих, уметь руководить людьми.

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

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

Ге Цзюнь: Я думаю, что для традиционных предприятий очень важно иметь возможность использовать облако (общедоступное облако, частное облако и гибридное облако), если они хотят осуществить цифровую трансформацию. Важные особенности облака включают сервис-ориентированность и самообслуживание. , и эластичность, которые могут быть использованы для предприятий. Обеспечивают большие конкурентные преимущества; во-вторых, с точки зрения обмена информацией можно делать больше попыток обмена информацией, чтобы вывести из затруднительного положения информационных островов; кроме того, очень важен DevOps, что То есть процесс должен быть открыт, ведомственные стены должны быть устранены, а коммуникационные барьеры должны быть устранены.

Сообщество: Наконец, не могли бы вы рассказать о планах или целях на будущее?

Ге Цзюнь : Далее я сосредоточусь на эффективности исследований и разработок. В частности, KodeRover, моя нынешняя компания, занимается разработкой продуктов для повышения эффективности. Цель состоит в том, чтобы помочь компаниям достичь полной автоматизации, самообслуживания, цифровизации, облачности, добиться 10-кратного повышения эффективности доставки и способствовать 10-кратному росту бизнеса.

Кроме того, я также пишу колонку об эффективности НИОКР, систематически сортируя и выводя то, что я узнал за эти годы, в надежде помочь домашним командам повысить эффективность и помочь отдельным разработчикам улучшить свои навыки и счастье в развитии.

В процессе продвижения незаменимы методы и инструменты. Г-н Гэ Джун рассказал нам о различной корпоративной культуре, различных рабочих идеях и эффективных методах работы, которые являются предпосылкой для быстрого и точного достижения результатов. После прочтения статьи у вас есть какие-нибудь идеи, которыми вы можете поделиться с нами? Приходите и оставьте сообщение!

рекомендация

отblog.51cto.com/15127503/2657480