Почему стартап с оценкой $10 млрд позволил мне «вайб-кодить» для них — и почему мне это понравилось? Перевод материала Wired
Я провела два дня в Notion и увидела, как индустрия переживает переломный момент. Заодно я написала немного настоящего кода.
Дисклеймер: это вольный перевод статьи корреспондента Wired Лорен Гуди о том, как она два дня работала вайбкодером в Notion. Перевод подготовил Егор Ярко, PR-директор ИТ-компании «Технократия» и автор канала «Пиарщик на зарплате».
Я попросила своих редакторов отпустить меня поработать в техстартапе. Запрос был, мягко говоря, необычный. Но я хотела научиться «вайб-кодить». У меня было ощущение, что это срочно нужно — чтобы суметь выжить в будущем.
Договориться оказалось удивительно просто: сначала редакторы дали добро, а затем и сам стартап, которому я отправила эту безумную идею — Notion, — согласился взять меня «внедриться» в их команду. Почему? Сложно сказать. Возможно, потому что сама компания Notion уже полностью приняла вайб-кодинг — «вайб» здесь, по сути, эвфемизм для «кода при помощи ИИ». По оценкам некоторых технологических компаний, сейчас около 30–40% их кода пишется искусственным интеллектом.
Notion — это стартап из Сан-Франциско с тысячей сотрудников и оценкой в $10 млрд. Их продукт — универсальное приложение для заметок и задач, где есть бесчисленное множество шаблонов, таблиц и способов всё структурировать. Освоить сам Notion — уже отдельная задача. На YouTube целые армии гуру продуктивности пытаются объяснить, как разобраться с этим сервисом, используя привычный язык «личной оптимизации». Одно из таких видео называется «Как начать работать в Notion и не сойти с ума». У него 3,4 миллиона просмотров.
Я должна была выйти в Notion на работу «вайб-кодером» в четверг, в середине июля. Накануне вечером я в панике смотрела эти YouTube-видео. Казалось очевидным: если Notion допустил меня — филолога! — к своей кодовой базе, я обязана быть экспертом в их приложении. На предварённом онбординге коллега посоветовала мне скачать AI-платформу для программирования Cursor и попробовать её в деле. Я скачала. Настоящего кода из этой «домашки» не получилось.
К счастью, работать в Notion я должна была в формате парного программирования — то есть рядом с опытными (живыми) разработчиками. Когда я пришла в офис, Сара Сакс, руководитель направления AI engineering в Notion, посадила меня за стол. Меня уже ждали фирменный шоппер и блокнот компании. Сара предупредила: на следующий день я должна буду презентовать свою работу на еженедельной демо-встрече для всей команды. Я согласилась. Мы все были настроены отыграть эту роль до конца.
В нескольких шагах от меня сидел Саймон Ласт, один из трёх сооснователей Notion. Высокий, нескладный и немного застенчивый инженер, он отказался от управленческих обязанностей, чтобы полностью посвятить себя роли «супер-IC» — индивидуального контрибьютора. Он встал, чтобы пожать мне руку, а я неловко поблагодарила его за то, что мне позволили «вайб-кодить». Саймон вернулся к своему ноутбуку, где наблюдал, как ИИ пишет код за него. Позже он сказал мне, что работа с ИИ-приложениями для программирования похожа на то, будто у тебя целая команда стажёров.
С 2022 года в Notion встроен AI-ассистент, помогающий пользователям составлять заметки. Сейчас компания трансформирует его в «агента» — такой тип ИИ, который будет автономно работать за вас в фоновом режиме, пока вы занимаетесь другими задачами. Чтобы это стало реальностью, инженерам приходится писать огромное количество кода.
Они открывают Cursor и выбирают одну из доступных моделей ИИ. Большинство инженеров, с которыми я разговаривала, предпочитали Claude или использовали отдельное приложение Claude Code. После выбора «бойца» инженеры просили ИИ набросать код — для новой функции или для исправления багов. Дальше человек-программист отлаживал и тестировал результат (с этим тоже помогал ИИ), а затем уже отправлял код в продакшен.
На базовом уровне генеративный ИИ стоит очень дорого. Теоретическая «экономия» выражается во времени: если бы ИИ помогал сооснователю и CEO Notion Айвану Чжао завершать задачи раньше, он мог бы просто спуститься на первый этаж здания на Маркет-стрит в джазовый клуб и расслабиться. Айван любит джаз. Но на практике освободившееся время он тратит на работу. Фантазия о четырёхдневной рабочей неделе так и остаётся фантазией.
Моя рабочая неделя в Notion длилась всего два дня — настоящий код-спринт. (В обмен на полный доступ к их «логову» я согласилась называть рядовых инженеров только по имени.) Моё первое задание заключалось в том, чтобы исправить отображение диаграммы Mermaid в Notion. Два инженера, Куинн и Моди, объяснили: эти диаграммы хранятся в формате SVG, и хотя в названии «scalable vector graphics» заложена масштабируемость, на самом деле их нельзя увеличивать или зумить, как JPEG. В результате текст в таких диаграммах в Notion часто оказывался нечитаемым.
Куинн пододвинул ко мне ноутбук. У него уже был открыт Cursor с запущенным Claude. Для разминки он пролистал часть кодовой базы Notion: — Видишь, в кодовой базе Notion очень много файлов. Даже если ты инженер, не всегда понятно, куда идти, — сказал он, вежливо назвав меня инженером. — Но мы не будем во всё это погружаться. Мы просто спросим у ИИ в боковой панели.
Стратегия «вайб-кодинга» у Куинна была такой: он часто спрашивал ИИ — «Эй, а почему эта штука работает именно так?» Такой вопрос заставлял ИИ сперва «порыться» самой, а затем ответ помогал нам, людям-инженерам, сформулировать следующий промпт. Подумав, Cursor выдал поток строк: диаграммы Mermaid в Notion на самом деле статические изображения, у которых, помимо прочего, нет обработчиков кликов и интеграции с полноэкранным режимом. Ну что ж.
Используя заметки Claude, я составила запрос и добавила туда комментарии от инженеров в Cursor, примерно так:
Ticket: Add Full Screen / Zoom to mermaid diagrams. Clicking on the diagram should zoom it in full screen.
Notes from Slack: «mermaid diagrams должны масштабироваться и раскрываться на весь экран, как загруженные изображения. Это ведь просто SVG, так что, наверное, можно сделать svg → dataurl → image component, если нужен зум».
Мы ждали. Во вселенной вайб-кодинга время идёт наоборот. Проекты, которые раньше занимали всю карьеру, теперь делаются за дни, а команды, которые должны выполняться за секунды, растягиваются на мучительные минуты. Сто строк сгенерированного ИИ кода спустя диаграммы Mermaid стали раскрываться.
Но не совсем. Они всё ещё были слишком мелкими, некоторые элементы оказались прозрачными, а вокруг них требовалось добавить отступы. Ещё нужно было проверить, будет ли это работать в приложении и в светлой, и в тёмной теме. Следующие полчаса я дорабатывала код вместе с Куинном и Моди, которые терпеливо меня направляли. Через тридцать минут у нас получилась масштабируемая и читаемая диаграмма Mermaid.
Затем я работала с инженером по имени Люси. Она сказала, что теперь мы будем использовать не Cursor, а агента из Codegen — ещё одного инструмента для AI-программирования. Задача была простой: создать в Notion новую функцию под названием Alphabetize. С её помощью пользователь мог бы в один клик отсортировать по алфавиту список или таблицу, например, с популярными породами собак, сгенерированными Notion AI.
И тут случился сбой. Anthropic Claude, который обеспечивал работу Codegen, внезапно упал. Сара Сакс, которая находилась с нами в комнате, получила уведомление на телефон — как врач из приёмного покоя. Она поспешно вышла. Вайб-кодинг и алфавитизация временно были поставлены на паузу. Бульдоги оставались впереди биглей до тех пор, пока Claude не вернётся онлайн.
Следующее задание было таким же открытым, насколько задание Люси было конкретным: мне предложили собрать всё, что я сама захочу. Такая свобода немного пугала — настоящий тест Роршаха для вайб-кодеров. Что я увижу, глядя на мигающий курсор? Я решила, что в Notion должно появиться что-то вроде «умного» списка задач, который можно составить за один шаг. Пользователь открывает приложение, пишет «to do reorder pet food» — и Notion AI понимает, что от него хотят. Ещё я хотела, чтобы функция умела избегать дублирования пунктов из других недавних списков.
Я была в ударе. Настоящая няня для кода: наблюдала, как он рождается у меня на глазах, и аккуратно выводила его «в свет». За одним исключением — моя логика оказалась неверной. Вместо того чтобы предотвращать дубликаты, мой «хак» позволял их плодить бесконечно. Кто виноват — я или ИИ?
Дизайнер продукта по имени Брайан помог мне разобраться: — Представь, что разговариваешь с умным стажёром, — сказал он. Опять эти стажёры!
Я перевернула логику и попробовала ещё раз, более подробно описав, как я вижу работу виджета. «Отличная идея», — ответил мне вежливый до подобострастия Claude и принялся за дело. Через сорок минут мы втроём сделали прототип моей «мизерной» — нет, на самом деле классной! — фичи. По счётчику токенов в Claude Code это обошлось нам в $7. Мне сказали, что другие инженерные проекты стоят куда дороже, особенно если дать ИИ работать часами. На улице всё ещё было светло, когда я завершила первый день.
В пятницу утром я пришла на демо-сессию. В переговорке нас ждали сырные тарелки — в честь дня рождения одного из сотрудников из Швейцарии. Разработчики брали кофе, банки Celsius, стаканы с ароматизированной водой, которую разливала Bevi-машина на кухне.
Одной из первых демонстраций был агент Notion AI, которому добавили память — он мог перенимать выбранный стиль письма. Ради забавы другой инженер сделал приложение, отслеживающее запасы сиропов для любимой Bevi команды. После каждой презентации кто-то обычно ударял маленьким молоточком по ксилофону. В тот день хранительницей ксилофона назначили меня. Настроение было лёгким.
Когда настала моя очередь, я постаралась коротко рассказать о фичах, которые мне удалось «вайб-кодить» (не забыв отдать должное коллегам по парному программированию). Один из менеджеров задал уточняющий вопрос: сколько времени у нас ушло на изменения для диаграмм Mermaid — от начала и до конца?
Я посмотрела на Куинна и Моди. Мы прикинули: около 30 минут совместной работы плюс примерно 15 минут подготовки, которую сделал Куинн.
— Ух ты, — сказала кто-то в комнате.
«Я осмелюсь представить, что обычная публика научится писать код», — написала программист и автор Эллен Уллман в эссе 2016 года «Programming for the Millions».
Доминирующая мысль 2010-х годов, конечно же, заключалась в том, что каждому не помешало бы немного выучить код. «Нам стоит распахнуть двери и ворваться в закрытое общество, где пишется код», — писала Уллман. Это был наш лучший шанс ослабить удушающую хватку софта, которая окружает нас как общество. В рамках своего репортажа Уллман записалась на три массовых открытых онлайн-курса (MOOC), которые обещали научить «обычных людей» программировать. (Могу живо представить её приподнятую бровь в тот момент.)
«Воткните иглу в этот сверкающий пузырь общепринятой мудрости технического мира, — призывала Уллман будущих разработчиков. — Лопните его».
Исправление диаграммы Mermaid или сортировка списка пород собак в алфавитном порядке вряд ли походили на «удар по системе». Но за время в Notion у меня действительно открылся в голове какой-то потайной люк. Я мельком увидела, что значит быть анонимной «логической богиней», держащей в руках рычаги. Я почувствовала в себе способность учиться чему-то новому — и свободу быть в чём-то новой откровенно плохой — в полуприватном пространстве.
И вайб-кодинг, и журналистика — это упражнение в «подталкивании» и «выуживании»: а можно поподробнее? а можно пояснить? а где документы? В общении с людьми мы спокойно относимся к неточностям. Но мой опыт вайб-кодинга показал: ИИ, которые пишут код за нас, требуют, чтобы мы предельно чётко формулировали свои запросы.
За обедом в один из дней в Notion инженер спросила меня, не использую ли я ChatGPT, чтобы писать свои статьи. Этим летом я слышала этот вопрос не раз. «Никогда», — ответила я, и её глаза расширились. Я попыталась объяснить: дело в принципе, а не в том, может ли ИИ сложить в кучу «сносный» текст. Я решила не вдаваться в то, как изменения в поисковых системах и повсеместные AI-саммари в инфополе обрушили трафик новостных сайтов. Почти все, кого я знаю, переживают за свою работу.
Один из инженеров Notion сравнил нынешнюю экономическую панику вокруг ИИ с тем временем, когда впервые появился компилятор. Идея о том, что один человек сможет внезапно выполнять работу ста программистов, должна быть перевёрнута, сказал он: наоборот, каждый программист станет в сто раз продуктивнее. Его менеджер согласилась: «Да, как менеджер я бы сказала так: все просто делают больше». Другой инженер заметил, что для решения больших задач всё ещё нужны совместная работа, уточнения и планирование. А вайб-кодинг, по его словам, в основном полезен, когда нужно быстро прототипировать новые функции.
Эти инженеры выглядели довольно уверенными в том, что люди всё равно останутся «в петле», даже если будущее программиста они изображали в карикатурном виде («в сто раз продуктивнее»). Я тоже склонна в это верить — и что люди с узкой экспертизой или специализированными знаниями будут востребованы в самых разных сферах. Во всяком случае, мне очень хочется в это верить.
Эссе Уллман 2017 года завершается ноткой разочарования. Она справедливо отметила, что MOOCs, за которыми она наблюдала, оказались очень неоднородными: переполненные «мальчишками» и преподавателями, не готовыми поддерживать студентов. Один курс по проектированию алгоритмов, по её словам, проверялся примитивными автоскриптами, и студенты «пытались изучать алгоритмы, которые проверялись неисправными алгоритмами». Сегодня движение «learn to code» кажется почти наивным. Мало кто мог предсказать, что меньше чем через десятилетие компьютеры будут писать код за людей.
И всё же Уллман находила красоту в написании кода. В этом и заключается суть. В этом вообще суть создания чего бы то ни было. Если не сдаваться и пройти через болото разочарования, «какое-то особое очарование всё же пробивается», писала она. «Это похоже на момент, когда слышишь, как кто-то прекрасно играет на пианино, или слышишь саксофон, увлекающий в джазовую импровизацию, и внутри загорается тоска — желание принять все трудности и научиться играть эту музыку».
Вайб-кодинг не разжёг во мне такую тоску. Зато я яснее увидела, что мы вступаем в головокружительную эпоху двойственности в ИИ. Уничтожит ли он наши рабочие места или создаст новые? Да. Построила ли я технически фичу, которая теперь доступна сотне миллионов пользователей, или же я просто «схалтурила», положившись на ИИ и коллег? Тоже да. Нужны ли глубокие базовые знания в программировании, чтобы быть успешной разработчицей, или можно обойтись, даже не зная имени языка, на котором работаешь? И снова да.
В последние часы в Notion я призналась в этом Айвану Чжао, CEO компании: — Я только сейчас осознала, что всё это время так и не спросила, на каком языке мы пишем, — сказала я.
Айвана это позабавило, и он ответил: — Это TypeScript. Такая «более изысканная» версия JavaScript, — он сделал паузу. — Но вообще, язык не имеет значения. Ты формулируешь намерение на уровне человеческого языка — английского, — а машины теперь умеют это переводить. Именно это и делают языковые модели.
Для Айвана момент вайб-кодинга особенно захватывающий. Когда он и Саймон Ласт только начали работать вместе в начале 2010-х (третьим сооснователем позже стал Акшай Котхари), они видели своё детище как приложение «no code/low code» — инструмент, позволяющий людям строить вещи с минимальным количеством кода. Они хотели вывести no code/low code в мейнстрим.
Была только одна проблема: «Никому не было дела», — сказал Айван. — «Никто не просыпался утром с мыслью: „Хочу заняться созданием софта“. Большинство людей думало: „Мне просто нужно закончить эту таблицу для начальника“». Несколько лет спустя они сделали пивот — и так появился Notion.
В октябре 2022 года основатели увезли всю компанию — тогда в ней было меньше пары сотен человек — на выезд в Мексику. Айван вспоминал, что произнёс короткие речи в начале и в конце, на ужине последнего вечера. Всё остальное время они с Саймоном просидели в гостиничных номерах, пили бутилированную воду и делали прототипы с новой игрушкой, к которой получили ранний доступ, — ChatGPT. Они увидели, что он умеет генерировать. Они поняли, что всё меняется. И в какой-то момент осознали: их первоначальная идея для Notion вернулась к ним по кругу — и всё это благодаря генеративному ИИ.
Айван, родившийся в Китае и изучавший когнитивные науки и искусство во время учёбы в Канаде, обожает качественные вещи. На его запястье — дорогие часы (подарок от жены), он увлечён дизайнерской мебелью и не раз замечал в разговоре, что люди, которые хорошо делают свою работу, часто обладают хорошим вкусом. Его любовь к хорошему дизайну распространяется и на инструменты, которые помогают нам общаться: героем Айвана является Дуглас Энгельбарт, изобретатель компьютерной мыши.
Поэтому я просто обязана была спросить: как он относится к качеству всего этого кода, написанного ИИ? Разве вайб-кодинг не плодит в мире больше плохого софта?
Айван ответил, что код либо работает, либо нет — здесь нет субъективной оценки «хорошо» или «плохо». По его словам, если я пишу предложения неудачно, меня можно счесть плохой писательницей, но если программист пишет плохой код, программа просто не запустится. Я возразила: код, сгенерированный ИИ, иногда «сходит с рельс». Если кто-то балуется, собирая сайт, это не страшно, а вот если вайб-кодят софт для реальных поездов — последствия ошибок будут куда серьёзнее.
Айван признал, что у некоторых программистов, особенно молодых, вайб-кодинг может вызвать ложное чувство компетентности. Вот тут и нужно парное программирование, сказал он. То есть связывать новичков с теми, кто учился писать код ещё до эры ИИ. «У сеньоров есть вкус, понимаешь?» — добавил он.
Саймон, со своей стороны, сказал, что предъявляет к ИИ-программированию даже более высокие требования, чем к живым инженерам. Именно поэтому он не любит выражение «вайб-кодинг». По его мнению, оно обесценивает то, что сегодня способны делать эти агенты и люди вместе с ними. Сам Саймон — один из самых активных «вайб-кодеров» в Notion. Он уверен, что за этим будущее. В какой-то момент он даже пользовался сразу тремя разными инструментами для ИИ-программирования. Это оказалось стрессово — словно снова стать менеджером. Сейчас он предпочитает работать только с одним инструментом за раз.
А как он вообще смотрит на инженерные профессии? Айван вздохнул: — Ну, по крайней мере сейчас мы всё ещё активно нанимаем инженеров. Но нам нужны такие инженеры, которые по-настоящему верят в инструменты для кодинга.
Слово «сейчас» в его фразе звучало особенно тяжело.
Все эти изменения — это вторжение ИИ в код — произошли буквально за последние четыре–шесть месяцев. В Notion даже появился инженер по ИИ, прикреплённый к команде корпоративных продаж: он обучает сейлзов использовать ИИ в их собственной работе. И дело не только в Notion. Это повсюду. Мой эксперимент с вайб-кодингом, каким бы «саморефлексивным» он ни оказался, уже отставал от реальности.
— Мир «нагревается» во многих смыслах, — сказал Саймон. — И ощущение у меня не такое, что «вот, у меня освободилось больше времени». Скорее, срочность использовать эти инструменты только растёт.
Эти перемены одновременно вдохновляют его и тревожат. Он признался, что с теплотой вспоминает ещё недавние времена, когда он просто писал код и что-то создавал, «когда не было этого безумного социального цунами». Потом добавил: — Думаю, было бы странно не испытывать хоть немного страха.
И только после того, как я покинула офис Notion в пятничный вечер, во мне снова проснулись журналистские инстинкты. Я поняла, что так и не задала главный вопрос: а чего именно он боится?