# Жан-Дени Грез о построении API-продуктов: «API — это не продукт»

Источник: https://www.youtube.com/watch?v=Q0PLI7azQ18
Канал: Startup Grind
Опубликовано: 26.02.2021

---

## Как быстро масштабировать API-стартап: уроки от Plaid
[[JUMP:00:04]]

Скорость итерации — главный двигатель успеха для любой растущей компании, однако работа с API-продуктами накладывает уникальные ограничения, отличающие их от привычных UI-интерфейсов. Жан-Дени Грез, технический директор компании Plaid, на встрече с комьюнити Startup Grind рассказал, почему классические методы «быстрого запуска» здесь не работают и как выстроить архитектуру так, чтобы не утонуть в техническом долге.

### 🛠 Специфика API как продукта
[[JUMP:02:05]]

В отличие от таких UI-продуктов, как Instagram, где разработчик может принудительно «подсадить» пользователя на новую кнопку или функцию через интерфейс, API требует от клиента активных инженерных действий. Грез выделяет несколько «острых углов», с которыми сталкивается каждый создатель API:

* **Барьер внедрения:** Чтобы воспользоваться вашим обновлением, клиент должен написать код. Если ценность косметического изменения (например, чуть более чистые коды ошибок) меньше усилий, затраченных на переписывание интеграции, клиенты просто проигнорируют обновление.
* **Конкуренция за ресурсы:** Вы соревнуетесь не только с другими решениями, но и со всем бэклогом вашего клиента. Даже если ваше обновление полезно, у компании может быть свой критический план разработки, который перевешивает.
* **Зависимость циклов:** Ваш цикл итерации состоит из двух этапов: сначала клиент внедряет ваш API, затем он должен запустить конечный продукт для своих пользователей. Вы не контролируете второй этап.
* **«Ошибки как фичи»:** Разработчики часто случайно или намеренно строят логику своих моделей вокруг багов вашего API. Исправление бага может стать для них «ломающим» изменением (breaking change), что вызовет волну недовольства.

### 🚀 Стратегии ускорения разработки
[[JUMP:06:45]]

Для поддержания высокой скорости итерации без потери клиентской базы необходимо использовать несколько подходов:

1.  **Дизайн-партнеры:** Это компании с сильной инженерной командой, готовые глубоко интегрироваться с вами на всех этапах жизни продукта. Грез отмечает, что Stripe успешно применял эту модель с компаниями вроде Lyft и Shopify.
2.  **Новые пользователи как полигон:** Для новых клиентов вы всегда предоставляете «лучшую» (актуальную) версию API через гайды по быстрому старту. Это позволяет быстрее внедрять инновации, хотя и требует осторожности, чтобы не игнорировать потребности старых, крупных клиентов.
3.  **Техническое версионирование:** Грез рекомендует использовать версионирование на уровне конкретных фич или клиентов, а не просто API в целом.
4.  **Использование «прокладок» (shims):** Внедрение трансляционных слоев (shims) позволяет изолировать технический долг, связанный с поддержкой множества версий, в одном месте кода, вместо того чтобы разбрасывать условия `if-else` по всей системе.

### 💡 API — это не продукт
[[JUMP:12:38]]

Ключевой инсайт для зрелого стартапа, по мнению Греза: API — это не сам продукт, а лишь строительный блок. Реальный продукт — это то, что клиенты создают поверх вашего кода.

* Если вы предоставляете API для отправки SMS, вы конкурируете не с другими SMS-сервисами, а с любыми другими способами верификации личности (например, решениями Apple).
* Для Plaid успех означает, что они помогают кредиторам выдавать займы, а необанкам — финансировать счета.
* Конкурентная среда для таких компаний — это любой метод, который решает бизнес-проблему клиента лучше, чем ваш инструмент.

Хотя поддержка старых API требует времени и часто приводит к компромиссам — например, когда 2% клиентов просят отсрочку депрекации, и вам приходится идти навстречу из-за бизнеса — именно эта сложность создает высокий «ров» вокруг вашего бизнеса. Сложность копирования всей экосистемы Plaid делает практически невозможным для конкурента просто «скопировать и заменить» ваш продукт.