Как искусственный интеллект меняет разработку программного обеспечения в Shopify: интервью с Фарханом Таваром (часть 1)
Транскрипт подготовил Дмитрий Жечков (https://t.me/llm_notes).Оригинальное видео: https://www.youtube.com/watch?v=u-3IILWQPRM
Введение
**Фархан Тавар:** Мы уже давно используем инструменты искусственного интеллекта в инженерии. Я уверен, что мы были первой компанией за пределами GitHub, которая начала использовать GitHub Copilot. Я знаю это, потому что когда Томас Домке стал генеральным директором GitHub, в тот же день я написал ему: «Я хотел бы получить GitHub Copilot». Это был 2021 год, за год до появления ChatGPT. Он ответил мне: «Он недоступен для коммерческого использования». А я сказал: «Я не об этом спрашивал. Мне всё равно, что у вас есть для коммерческого использования, я хотел бы внедрить это для всех инженеров Shopify как можно скорее».
Думаю, ему потребовался примерно месяц, и нам не выставляли счета около 2 лет, потому что не было тарифного плана для нас. Мы сказали: «В обмен на это мы предоставим вам много обратной связи». Так что мы использовали Copilot довольно долго, а затем, изучая их дорожную карту, мы также внедрили Cursor. На самом деле, мы относительно недавно начали использовать Cursor, примерно год назад.
Мы постоянно пробуем разные инструменты, смотрим, что работает, а что нет, и затем даём доступ большему количеству инженеров. Самое интересное в Cursor то, что его использование в Shopify растёт в основном за пределами инженерного отдела и отдела исследований и разработок. Финансы, продажи, поддержка — вот команды, которые используют Cursor.
Что происходит, когда компания полностью переходит на ИИ
**Ведущий:** Что происходит, когда компания полностью переходит на ИИ? Shopify сделала именно это несколько лет назад, и руководитель инженерного отдела Shopify Фархан Тавар рассказал мне, как всё идёт. В этом эпизоде мы обсуждаем:
- Как Shopify тесно сотрудничает с лабораториями ИИ, и почему Фархан провёл час в паре с инженером из Anthropic, работающим над командой Claude Code
- Почему Shopify планирует нанять 1000 стажёров в год и как они интегрировали ИИ в процесс собеседований
- Почему в Shopify нет ограничений на то, сколько инженер или команда могут тратить на токены ИИ
- И многое другое
Если вам интересно узнать, как работает технологическая компания, ориентированная на ИИ, этот эпизод для вас. Подкаст был записан в формате живого выступления на LDX3 в Лондоне.
Роль руководителя инженерного отдела в Shopify
**Ведущий:** Добро пожаловать на этот особенный живой подкаст с Фарханом Таваром. Мы поговорим об ИИ в Shopify, но прежде чем начать, я хотел бы немного узнать о вас, Фархан. Я провёл небольшое исследование, поговорил с несколькими инженерами в Shopify, и они рассказали мне, что ваша роль — руководитель инженерного отдела. Инженеры сказали, что видят вас везде: вы переработали программу стажировок Shopify, определили, чем занимается Shopify, и даже занимались такими мелочами, как настройка Wi-Fi для внутреннего хакатона. Я хотел бы узнать, чем занимается руководитель инженерного отдела в Shopify, и конкретно, что делаете вы, или, может быть, чего вы не делаете?
**Фархан Тавар:** Интересно то, что в Shopify мы используем выражение «мы не компания с чёткими границами ролей». Это означает, что мы не пытаемся загонять людей в рамки, где вы, например, работаете в продуктовом отделе и думаете только о продукте, или вы в инженерии и думаете только о том, как пишется код или об архитектуре. Мы очень любознательные решатели проблем, и если что-то сломалось, мы ожидаем, что любознательные люди займутся проблемой и попытаются её решить, независимо от их роли.
В прошлом году на нашем саммите Shopify, где собралось около 7000 сотрудников, Wi-Fi работал не очень хорошо. Я провёл всё время на этом саммите в течение трёх дней, пытаясь исправить Wi-Fi. Меня прозвали «главным офицером по Wi-Fi». В этом году, который был две недели назад, я развернул 300 точек доступа Ubiquity и 800 коммутаторов, чтобы обеспечить гораздо более плавную работу Wi-Fi. Команда создала множество мемов, потому что думала, что Wi-Fi не будет работать, но он работал, и я опубликовал все эти мемы.
**Ведущий:** Я должен спросить, потому что многие руководители сказали бы: «Ваше время очень ценно, вы руководите организацией, в которой сколько человек?»
**Фархан Тавар:** 3000 человек.
**Ведущий:** Вы высоко в иерархии, и ваше время, если измерять его в долларах, будет дорогим. Разве не лучше просто нанять специалиста для выполнения этих задач? Почему вы всё ещё делаете эти вещи, и не согласны ли вы с советом сосредоточиться на задачах с высоким рычагом влияния?
**Фархан Тавар:** Нам не нравится понятие «нанимайте умных людей и не мешайте им». Вместо этого мы говорим: «Нанимайте умных людей и работайте с ними над проблемами». Разница для нас в том, что мы действительно любим привлекать, очевидно, много умных, практичных людей, и вместо того, чтобы просто сказать: «Эй, возьми эту область, уйди и просто реши её для меня, а потом вернись», мы любим работать с ними в паре и говорить: «Ты умный, я умный, можем ли мы вместе работать над этой проблемой?»
Сотрудничество с лабораториями ИИ
**Ведущий:** Это хорошо подводит нас к следующему, о чём я слышал о вас: в Shopify вы перешли на подход «ИИ в первую очередь», и мы поговорим об этом немного позже. Но одна вещь, которую вы делаете — у вас есть доступ к некоторым из ведущих лабораторий ИИ, и вы только что сказали мне, что работаете с ними в паре. Вы рассказали мне, что на днях работали в паре с инженерами из Anthropic. Можете рассказать об этом парном программировании и о том, как вы работаете с этими лабораториями ИИ?
**Фархан Тавар:** Опять же, мы очень любознательные решатели проблем, и когда в отрасли происходит что-то интересное, мы хотим быть ближе к этому. Очевидно, выходит ChatGPT, затем Anthropic создаёт свою модель, у Gemini есть своя модель, у Cohere есть своя модель — мы хотим быть как можно ближе к передовому краю. Поэтому мы стараемся быть ближе к этим людям и тому, над чем они работают.
Одна из вещей, которые мы делаем, когда что-то выходит — в данном случае это был Claude Code — мы внедряем его в Shopify, видим, как люди его используют. Это было в мае, примерно 3-4 недели назад. На самом деле Claude Code вышел раньше, примерно 6 месяцев назад, и затем мы начали проводить время с Anthropic. Я хотел увидеть, как Anthropic использует Claude Code внутри компании, аналогично тому, как OpenAI сейчас выпускает Codex. Я хотел понять, как они используют его внутри компании.
Я обратился к Anthropic и сказал: «Эй, я хотел бы поработать в паре с одним из ваших инженеров по прикладному ИИ». Мы провели час, создавая разные вещи, и я узнал, как он видит использование Claude Code внутри Anthropic. Затем я могу вернуться и сказать: «Вот как мы используем его в Shopify, и вместе мы можем понять, куда, по нашему мнению, это всё движется».
**Ведущий:** Это просто вопрос того, что вы просто спросили их?
**Фархан Тавар:** Да, поскольку мы Shopify, нам очень повезло, что люди хотят видеть, как мы работаем. Мы склонны работать неортодоксальным способом, и им также интересно, как мы используем их продукты, но они также используют их сами. Так что это было больше похоже на настоящую работу в паре, а не на то, что я как клиент пытаюсь их подтолкнуть и сказать: «Я действительно хочу...». У нас есть общий канал в Slack, я написал им там: «Эй, кто хотел бы поработать со мной час над чем-то, что я создаю внутри Shopify?» Кто-то поднял руку, инженер по прикладному ИИ, и сказал: «Мы покажем вам, как мы работаем, а вы покажете, как работаете вы, и вместе мы сможем понять, куда, по нашему мнению, этот продукт может двигаться». Я делаю это со многими поставщиками.
**Ведущий:** Когда вы работаете в паре, это только вы, а потом вы рассказываете людям, или...?
**Фархан Тавар:** Я могу записать сессию, а затем поделиться ею внутри компании, сказав: «Эй, я только что провёл сессию парного программирования с Anthropic». Они могут использовать это для кейс-стади, который они создают, но идея в том, что, опять же, поскольку мне просто любопытно, когда кто-то что-то говорит, я спрашиваю: «О, как это работает, как мы можем это использовать?» Я думаю, это способ для нас просто учиться.
Операция «Красный код»
**Ведущий:** Одна недавняя вещь, о которой я хотел бы поговорить, прежде чем мы перейдём к более подробному обсуждению ИИ, это действительно интересный факт, о котором большинство людей не знает: вы только что вышли из «красного кода» длительностью семь месяцев. Я думаю, это первый раз, когда мы об этом говорим. Что это был за «красный код», о чём он был, и что видели люди внутри и вне Shopify?
**Фархан Тавар:** Мы внутренне видели много вещей, которые не всплывали на поверхность, но которые могли фактически повлиять на работу системы. Обычно это называют техническим долгом, но у нас было много сигналов, показывающих, что технический долг растёт. Не только общие сигналы, такие как увеличение времени на обновление программного обеспечения или создание второй версии продукта, или трудности людей с поддержкой некоторых программных стеков. Мы видели вещи, даже не внешне, но внутренне, которые подавали сигналы — много исключений, растущих в некоторых случаях.
Поскольку мы создаём вещи на очень низком уровне стека, например, мы патчим Ruby, мы основные контрибьюторы Ruby, мы патчим MySQL (я считаю, у нас второй по величине флот MySQL в мире после Meta), и мы видели такие вещи, как сегментационные ошибки, и я не был готов просто двигаться дальше и создавать функции как обычно.
Мы собрались вместе, потратили... мы не думали, что это займёт 7 месяцев, мы думали, что это займёт, может быть, 3 месяца. Мы взяли примерно от 30 до 50% инженерии, у нас не было точного числа, мы просто сказали, что эти вещи не должны больше расти. Например, количество исключений, количество уникальных исключений должно уменьшаться, должно быть ноль сегментационных ошибок, мы должны понимать всё, что происходит в системе. И мы потратили почти 7 месяцев на это, с ноября до настоящего времени.
**Ведущий:** Как вы убедились, что исправляете правильные вещи? Вы говорили с командами, прося их выявить проблемы? И как вы решили, когда остановиться? Потому что, когда я слышу об этих «красных кодах», многие компании проводят «жёлтые коды», «красные коды», но иногда они могут тянуться бесконечно.
**Фархан Тавар:** У нас было несколько метрик, которые мы использовали. Одна из них буквально то, что я сказал: количество исключений, количество уникальных исключений и сегментационных ошибок. Мы буквально говорили: «Сегментационные ошибки теперь на нуле, а исключения должны уменьшаться». Но мы также смотрели на другие метрики, которые у нас есть, например, мы хотим иметь четыре линии надёжности для наших различных поверхностей: витрины магазинов, административной панели продавцов, точек продаж. Мы смотрели на все эти вещи, а также использовали 28-дневное скользящее среднее этих показателей. Когда все они стали зелёными, и мы увидели, что уникальные исключения остановились и сокращаются, мы почувствовали, что находимся в том месте, где можем снова начать создавать функции.
Использование инструментов ИИ для написания кода
**Ведущий:** Теперь перейдём к ИИ. Вы являетесь огромным ранним пользователем инструментов ИИ для написания кода. Можете рассказать, какие инструменты вы начали использовать, что вы используете сейчас, что вам нравится, что нравится инженерам, особенно в контексте разработки программного обеспечения, но, возможно, и за её пределами?
**Фархан Тавар:** Мы уже давно используем инструменты ИИ в инженерии. Я считаю, что мы были первой компанией за пределами GitHub, которая использовала GitHub Copilot. Причина, по которой я это знаю, в том, что когда Томас Домке стал генеральным директором GitHub, в тот же день я написал ему, говоря: «Я хотел бы получить GitHub Copilot». Это был 2021 год, за год до ChatGPT. Он ответил мне: «Он недоступен для коммерческого использования». А я сказал: «Я не об этом спрашивал. Мне всё равно, что у вас есть для коммерческого использования, я хотел бы внедрить это для всех инженеров Shopify как можно скорее».
Думаю, ему потребовался примерно месяц, и нам не выставляли счета, я думаю, около 2 лет, потому что не было тарифного плана для нас. Мы сказали: «В обмен на это мы предоставим вам много обратной связи». Так что мы использовали Copilot довольно долго, а затем, работая с ними и изучая их дорожную карту, мы также внедрили Cursor. На самом деле, мы относительно недавно начали использовать Cursor, примерно год назад.
**Ведущий:** Да, тогда они были крошечным стартапом.
**Фархан Тавар:** Да, я думаю, это очень поздно, вы говорите, что это очень рано, но я чувствую, что это очень поздно для Cursor. Мы знали о Cursor долгое время. Нам нравится иметь один инструмент в Shopify для вещей, которые мы делаем, поэтому мы не любим иметь несколько инструментов. Например, у нас есть Figma, мы не пытаемся иметь много других инструментов визуализации, у нас есть MySQL, у нас нет других баз данных. Мы стараемся сосредоточиться на одном инструменте.
Наша ставка была на VS Code, но из-за распространения ИИ и того, что мы не знаем, что произойдёт, мы начали менять нашу позицию в отношении использования большего количества инструментов, чем просто один. Может быть, мы консолидируемся, может быть, нет, но сейчас у нас есть Cursor и VS Code как два наших инструмента ИИ. Затем появился Claude Code как агентный рабочий процесс, и мы начали использовать Claude Code. Мы пробовали Devon в прошлом году. Так что мы постоянно пробуем все эти вещи, и по мере того, как мы их пробуем, мы хотим видеть, что работает, что не работает, а затем даём доступ большему количеству инженеров.
Самое интересное в Cursor то, что его использование в Shopify растёт в основном за пределами инженерного отдела и отдела исследований и разработок. Финансы, продажи, поддержка — вот команды, которые используют Cursor.
**Ведущий:** Для чего они его используют?
**Фархан Тавар:** Происходит то, что, поскольку Cursor на самом деле настолько универсален для создания вещей, они используют его для создания MCP-серверов за пределами обычной инженерной области. Например, Salesforce, Google Calendar, Gmail, Slack — они используют, они создают MCP-серверы для доступа к этим сервисам, а затем создают домашние страницы для себя. Например, вы продавец, подключаетесь к Salesforce, подключаетесь к Google Calendar, подключаетесь к своей электронной почте и узнаёте, над какой возможностью вам следует работать.
**Ведущий:** Возвращаясь к MCP-серверу: когда у вас есть сервис, вы можете поставить MCP-сервер, а затем получить к нему доступ, например, с помощью Cursor или с помощью агента?
**Фархан Тавар:** Именно так.
**Ведущий:** Инженеры помогают создавать этот MCP-сервер?
**Фархан Тавар:** Иногда да, но часто нет. Теперь, когда эти сервисы выпускают свои собственные MCP-агенты, вы можете буквально просто загрузить MCP-сервер GitHub, вам не нужно создавать его самостоятельно. Но часто они на самом деле просто создают его сами, смотрят видео и просто развёртывают его самостоятельно, без какого-либо вмешательства инженеров. Сейчас это end-of-one, они создают программное обеспечение для каждого отдельного человека, а не инфраструктуру для всех людей.
**Ведущий:** Это напоминает вам что-нибудь? Вы давно в технологической индустрии, но тот факт, что нетехнические люди теперь создают... видите ли вы какие-либо параллели из прошлого, или это происходило раньше, или это что-то новое?
**Фархан Тавар:** Эта часть кодирования новая, хотя, если вы помните, например, редакторы WYSIWYG и людей, начинающих самообслуживаться, я думаю, это напоминает об этом. Но они на самом деле не читают код, они действительно в основном «вайб-кодят», и если это не работает, они просто удаляют и начинают заново. Но даже если вы прочитаете документацию Anthropic по Claude Code, они говорят, что в трети случаев вы можете получить что-то работающее с первого раза. И мы начинаем видеть это, и люди привыкают к тому факту, что если это не работает, они просто удаляют и начинают заново, пытаясь заставить это работать.
**Ведущий:** Я нахожу это действительно интересным, как это происходит. Меняет ли это вашу динамику с инженерией? Одна вещь, которую я заметил, работая в таких местах, как Uber: все немного завидовали инженерии, они хотели инженерных ресурсов, не могли их получить, они действительно хотели одну из этих вещей. Видите ли вы какие-либо изменения?
**Фархан Тавар:** Я скажу да и нет. Происходит странная вещь, когда, скажем, вы PM, если вы не технический PM, теперь у вас, вероятно, достаточно знаний, чтобы «вайб-кодить» какую-то новую функцию, которую вы ждали, чтобы инженерия создала для вас, самостоятельно. Вопрос в том, можете ли вы отправить PR, и должен ли PR быть принят инженерией. Я сначала спрошу вас, а потом скажу, что я думаю.
**Ведущий:** Я думаю, вы всегда можете отправить PR, и инженерия скажет вам, почему он может быть принят, если он хорош, или что в нём не хватает, будь то концептуальные вещи, стандарты кодирования и все эти вещи. Но по крайней мере, они видят, что этот человек хочет сделать, я думаю, это должно быть отличной вещью.
**Фархан Тавар:** Я скажу да, с одной оговоркой, и оговорка заключается в том, что проблема с «вайб-кодингом» сегодня в том, что вы можете сгенерировать 10 000 строк кода для очень простой функции приложения, и теперь бремя на инженерии прочитать эти 10 000 строк. Поэтому мы говорим: да, вы можете отправить PR, но вы должны понимать код, который вы пишете, прежде чем отправлять его. Потому что я мог бы сделать то же самое и сказать: «Эй, я собираюсь написать блог-пост, сгенерировать 20 страниц, а затем отправить его вам и сказать: «Эй, отредактируйте это и опубликуйте в своём блоге», и теперь у вас есть бремя чтения. Но если я скажу, что прочитал всё это, и это мой голос, и я согласен с этим, тогда вы, возможно, с большей вероятностью прочитаете это.
Интересно, что мы, вероятно, увидим эту проблему с проектами с открытым исходным кодом, потому что так легко использовать инструменты ИИ, и они получат много таких вещей. Так что я думаю, что такие политики интересны.
Будущее SaaS и влияние ИИ
**Ведущий:** Я хотел бы узнать ваше мнение об одной вещи, которая обсуждается в социальных сетях. Многие люди предсказывают конец SaaS, потому что теперь люди могут создавать свой собственный SaaS. Вы сказали мне, что некоторые из ваших нетехнических людей создают небольшие решения для себя. Как вы видите, это потенциально меняет поставщиков SaaS или нет? Или это просто больше персонального программного обеспечения? Вы также кто-то, кто на самом деле покупает много SaaS-вендоров, вы их понимаете. Как вы думаете, это что-то меняет или не совсем?
**Фархан Тавар:** Я хотел бы думать, что мы покупаем меньше SaaS, чем большинство компаний, только потому, что мы пытаемся консолидироваться. Тем не менее, есть это понятие, мы сейчас находимся в средней зоне. Средняя зона — это в основном идея о том, что вы можете «вайб-кодить» что-то, может быть, для себя. Неясно, можете ли вы «вайб-кодить» как платформу или «вайб-кодить» что-то, что попадает в инфраструктурный слой того, что вы строите, потому что вам действительно нужно понимать, как вы упомянули ранее, вы можете поставить себя в очень опасное положение, если вы строите на чём-то и строите на чём-то, что вы не понимаете, что вы строите. Может быть, это прототип, это нормально, или доказательство концепции, но если вы строите инфраструктуру для интернета, вы, вероятно, хотите понимать, как это строится.
Так что мы ещё не там. Идёт ли это? Да, это точно идёт, когда кто-то может «вайб-кодить» что-то, и, знаете, Anthropic, или OpenAI, или Gemini, или кто бы то ни было, модель создаёт что-то, что на самом деле архитектурно элегантно и имеет правильную архитектуру для того, что вам нужно. Мы не там сегодня. Так что мы находимся в этом понятии всё ещё человека в цикле, и всё ещё «начать заново», и «это не то, что я имел в виду», и «промпт-инжиниринг», английский как язык программирования. И поэтому я думаю, что вы можете продвинуться очень далеко, но я ещё не беспокоюсь о SaaS, и я думаю, что мы не должны беспокоиться, кстати.
Давайте посмотрим на это с другой стороны: сколько программного обеспечения, по нашему мнению, должно быть в мире? Вероятно, в 10 000 раз больше, чем есть сейчас, в 100 000 раз... В мире должно быть много программного обеспечения, и мы удовлетворяем 0,001% или 1% спроса. Так что теперь, когда все могут генерировать программное обеспечение, мы должны приветствовать их в мире программного обеспечения. Мы считаем, что каждый должен писать программное обеспечение, как моя команда продаж, и все становятся более продуктивными. Я ещё не беспокоюсь о индустрии программного обеспечения, я всё ещё верю, что это парадокс Джевонса: чем больше мы получаем, тем больше мы хотим.
**Ведущий:** Действительно хорошая аналогия, которая запомнилась мне, была от Саймона Уиллиса, который сказал: «Как изменилась индустрия кино с тем, что у всех есть... раньше это стоило 5 или 10 000 долларов несколько лет назад, эта камера, у всех есть одна в кармане». И, знаете, всё ещё существует профессиональная киноиндустрия, но теперь есть куча, знаете, есть YouTube, есть TikTok, есть все эти вещи. Так что это стало больше, но барьер для профессионалов на самом деле не изменился. Знаете, «Дюна» и некоторые из этих удивительных фильмов всё ещё так сложно создать.
**Фархан Тавар:** Парадокс Джевонса: чем больше у вас есть, тем больше вы хотите. Мы все хотим быть кинематографистами, теперь мы можем быть кинематографистами, и всё ещё будут люди на высоком и низком уровне. Я бы сказал, возможно, спорное, острое мнение заключается в том, что эти телефоны на самом деле принесли больше пользы экспертам, то есть камера... возможность достать свой iPhone и снять видео на самом деле принесла больше пользы тем, кто уже был действительно, действительно хорош в этом. И то же самое, возможно, потенциально верно для «вайб-кодинга»: ИИ-агенты помогут лучшим инженерам больше, чем посредственным инженерам.
Продолжение здесь