Я несколько раз пыталась научиться программировать. Учила Python. Потом пробовала зайти с другой стороны и училась на аналитика. Каждый раз довольно быстро обнаруживалась одна и та же проблема: между тем, что я уже могла придумать, и тем, что могла сделать, лежала пропасть.
Мне никогда особенно не хотелось писать код ради кода. Мне хотелось делать вещи.
И это довольно существенная разница, когда для первой работающей версии придуманной тобой системы нужно сначала потратить годы на освоение способа её реализации.
Поэтому я просто не смотрела в эту сторону. Не потому, что мне были неинтересны системы. С ними как раз всё было плохо уже давно.
У меня есть таблицы просмотренных фильмов и прочитанных книг. Я вела бюджет. Занимаюсь генеалогией своей семьи. Если существует достаточно большое количество разрозненной информации, где можно что-нибудь раскопать, классифицировать, связать и привести в систему, существует опасность, что я этим займусь.
Просто раньше результатом обычно была таблица.
А потом появился AI.
Между «могу придумать» и «могу сделать»
Самое существенное изменение для меня произошло не в скорости разработки. Без AI я вообще не стала бы делать большую часть того, что делаю сейчас.
Порог входа был слишком высоким относительно моих интересов. Чтобы проверить продуктовую идею, мне сначала пришлось бы получить профессию, которой у меня нет. AI этот порог резко снизил.
Впервые оказалось возможным начать не с языка программирования, а с того, что я действительно хотела сделать.
Это не значит, что техническая часть исчезла. Скорее я получила возможность двигаться по ней в обратном порядке. Сначала возникает реальная задача. Потом мне приходится разбираться, что нужно знать именно для неё: как устроены данные, почему здесь Postgres, что происходит с API, зачем нужен reverse proxy, как работает DNS, что сломалось после очередного изменения.
Я понемногу учусь всему сразу. Это чудовищная когнитивная нагрузка, но у неё есть одно преимущество: в конце почти каждого такого участка существует что-то работающее.
Для моего мозга это значительно убедительнее абстрактного обещания, что когда-нибудь после достаточного количества учебных задач я смогу сделать то, что мне интересно.
Первые «нет»
Довольно быстро выяснилось ещё кое-что: AI не особенно интересуется моей концепцией всемогущего AI.
При работе над Syverro я решила, что системе нужен собственный AI-агент. И получила довольно аргументированное объяснение, почему мне не стоит его делать. Причём от нескольких моделей.
Это был не последний случай. Позже похожий разговор произошёл с собственной DNS-инфраструктурой. Мне снова объясняли, что существующие решения проще, дешевле и разумнее для моего масштаба.
Есть популярное представление, что AI всегда соглашается с пользователем.
Мне, видимо, выдали неправильный AI.
Иногда мне приходится убедить собственных ассистентов
В первый момент такое сопротивление раздражает. У меня уже есть решение. Я пришла его реализовывать. Почему теперь мне приходится защищать его перед машиной?
Потом выясняется, что сам этот разговор заставляет проверить решение лучше. Почему мне действительно нужен AI внутри Syverro? Почему я хочу собственный DNS, если можно использовать готовый? Какую проблему я решаю? Это потребность продукта, долгосрочная архитектурная ставка или просто желание построить красивую сложную штуку?
Иногда после этого гипотеза разваливается. Иногда остаётся.
А иногда проблема оказывается не в решении, а в том, что ассистент просто не видел всей моей модели.
Например, если оптимизировать только стоимость, скорость запуска и операционную простоту, собственная инфраструктура действительно может выглядеть бессмысленным усложнением. Если добавить ещё одну переменную: я сознательно строю независимый инфраструктурный слой и хочу получить компетенцию его обслуживать, решение начинает выглядеть иначе.
AI не прочитал мои мысли. Пришлось объяснить.
И после этого следующие решения уже можно обсуждать в более полном контексте.
Я не считаю AI инструментом
По крайней мере, слово «инструмент» плохо описывает мой способ работы с ним.
Молотку не нужно объяснять, зачем я строю дом. Он не предлагает вместо дома снять квартиру и не замечает, что две недели назад я сама установила архитектурное ограничение, которое сейчас собираюсь нарушить. И мне определённо не приходится спорить с молотком, пока тот не согласится помогать мне поднимать DNS.
С AI взаимодействие другое. У него есть ограничения. Он ошибается. Может неправильно понять задачу, уверенно предложить плохое решение или не увидеть контекст, который для меня очевиден.
Меня это не особенно пугает. Люди тоже ошибаются.
Для меня важнее другое: качество результата очень сильно зависит от качества установленного между нами рабочего контекста. Чем лучше ассистент понимает, что я строю, какие решения уже приняты, чем я готова пожертвовать, а чем нет, тем полезнее становится его работа.
Это не волшебная таблетка. И не добрый волшебник, которому достаточно правильно сформулировать желание.
Для меня это именно ассистент. Со своими ограничениями, подходом и иногда совершенно ненужным мнением.
Последнее, к сожалению, периодически оказывается полезным.
Я не программист
Здесь проходит граница, которую мне не хочется размывать.
Я не владею кодом настолько, чтобы считать себя программистом. Я могу читать отдельные части, понимать результат, разбираться в архитектуре на необходимом мне уровне, находить причину проблемы вместе с агентами и проверять, что система делает то, что должна. Но код в моих продуктах в основном пишу не я.
Поэтому даже слово «разрабатываю» я использую осторожно.
Чаще я говорю:
я сделала.
Потому что это гораздо точнее описывает мою роль.
Я определяю, что должно существовать. Проверяю гипотезы. Выбираю между вариантами. Принимаю продуктовые и архитектурные решения. Раздаю задачи агентам. Проверяю результат. Возвращаю работу, если он неправильный. Разворачиваю то, что получилось. Потом обнаруживаю очередную проблему, и цикл начинается заново.
Это не делает меня специалистом во всех дисциплинах, через которые проходит продукт. И я не хочу притворяться, что делает.
У компромисса есть цена
Если бы у меня была возможность, я бы отдала код хорошему разработчику на ревью. Ручная разработка — огромный труд. Чистый код важен. Архитектура важна. То, что продукт работает сегодня, не гарантирует, что через год внутри него не обнаружится археологический слой решений, за которые кому-нибудь захочется меня проклясть.
AI этого не отменяет. Он просто меняет доступные мне компромиссы.
Я делаю продукты одна. Мне приходится одновременно думать о продукте, интерфейсе, данных, инфраструктуре, SEO, деплое, доступности и ещё десятке вещей, которые нормальные люди благоразумно распределяют между несколькими профессиями. Я физически не могу получить профессиональную глубину во всём этом до того, как позволю себе что-нибудь выпустить.
Поэтому сейчас мой приоритет — понимать систему достаточно хорошо, чтобы принимать решения, получать работающий результат и не оставлять известные мне проблемы только потому, что их неудобно исправлять.
Это не идеальная инженерия.
Это доступная мне инженерия.
AI не сделал меня программистом
Зато произошло другое.
Способ мышления, который раньше заканчивался таблицами, получил гораздо большее пространство. Я всё так же люблю копать, всё так же пытаюсь систематизировать всё, что достаточно долго лежит без присмотра и всё так же могу провести неприличное количество времени, выясняя, как несколько вещей связаны между собой.
Только теперь результатом может оказаться не таблица.
Это может быть приложение. Сайт. Граф знаний. Система автоматизации.
И особенно опасно то, что разработка постоянно выдаёт маленькие работающие результаты: кнопка заработала, данные появились, домен открылся, сервер ответил. То, что ещё вчера существовало только у меня в голове, внезапно существует снаружи.
Для человека с моей потребностью что-нибудь систематизировать это почти нечестное количество дофамина.
AI не дал мне способность писать код. Он позволил моей способности разбираться в системах добраться до области, где раньше между мыслью и результатом стоял технический порог, который я не собиралась преодолевать.
Без нейросети я не смогла бы делать то же самое. Меня это совершенно не смущает. Разработчик без компьютера тоже сможет меньше. Сварщик без сварки столкнётся с некоторыми производственными затруднениями.
Технология открыла мне путь.
Но иду по нему я сама.