лист III · стратегия 71 / 80

Компонуемость

Composability

Скорость и масштаб Держит Глубина 3 · Буровая

компоненты собираются в разные конфигурации

В какие рвы вырастает

  • #20 Экосистема разработчиков 3 · Буровая

    Части, собирающиеся в разные конфигурации, — то, на чём строят разработчики; каждая их постройка — капитал, вложенный в ваши примитивы, и их невозвратные вложения — ваша «Экосистема разработчиков».

  • #6 Интеграции 2 · Экскаватор

    Каждая конфигурация, дотягивающаяся до другого инструмента, — это «Интеграции», которые вам не пришлось писать, а широта этих коннекторов — то, что сопернику придётся отстраивать заново.

Кратко

Компонуемость — это открыть продукт как набор частей, которые другие собирают так, как вы не планировали: API, набор примитивов, труба, подходящая к любой другой трубе. Преимущество в том, что каждая чужая сборка — причина остаться и коннектор, который вам не пришлось писать. Держит через «Экосистему разработчиков» и через «Интеграции».

Как работает

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

Работу делает интерфейс. Он должен быть достаточно стабильным, чтобы прошлогодняя сборка всё ещё работала; достаточно общим, чтобы были возможны сборки, которых вы не предвидели; и описанным так, чтобы незнакомый человек собрал свою, не спрашивая вас. Каждое ограничение на стыковку частей, которое вы убираете, добавляет конфигурацию, которую кто-то соберёт. Каждое ломающее изменение уничтожает часть сборок и учит строителей подстраховываться.

Почему держит — или только занимает

Компонуемость держит, потому что сборки строят и оплачивают другие, и остаются они там, где построены. Это «Экосистема разработчиков»: третьи стороны вкладываются поверх вас, и их вложение становится вашей стеной — двусторонний сетевой эффект плюс их собственная стоимость переключения, работающая на вас. Каждая сборка, дотягивающаяся до другого инструмента, — ещё и «Интеграции»: коннектор, который вы не писали и не поддерживаете, но который ваш продукт теперь несёт. Экосистема — буровая и устойчива к ИИ; интеграции — экскаватор и под атакой, потому что агент теперь пишет коннектор за вечер. Ров опирается на первое.

Есть ли это у вас

  • Разработчики используют ваши части для того, чего вы не документировали, и вы узнаёте об этом из их анонсов.
  • Ломающее изменение сломало бы продукты, которые продают другие компании, и вы знаете какие.
  • Ваши примитивы чаще сочетают с другими инструментами, чем используют по отдельности.
  • Справочная документация собирает больше трафика, чем маркетинговый сайт.

Как копать

  • Выпускайте примитивы, а не функции: платёж, сообщение, запись — каждый годен без остальных.
  • Заморозьте интерфейс рано и версионируйте: сборка, построенная на вас, должна работать годами.
  • Пишите документацию для незнакомца: первую сборку разработчик должен собрать, не написав вам письма.
  • Публикуйте чужие сборки, чтобы следующий строитель начинал с работающей комбинации.
  • Не выпускайте ломающих изменений без пути миграции: каждое учит строителей страховаться от вас.

Как размывается

  • Для интерфейса возникает стандарт, и ваши части становятся взаимозаменяемыми с частями соперника.
  • Агент пишет коннекторы за вечер, и широта интеграций больше никому ничего не стоит.
  • Вы начинаете конкурировать со сборками, построенными на вас, и строители уносят работу на нейтральную базу.
  • Ломающие изменения копятся, пока разработчики не заворачивают вас в абстракцию, позволяющую вас заменить.

Соло, без капитала

«Интеграции» целиком по силам одному человеку: чистый API, вебхук, формат плагинов можно выпустить за квартал и подключить к инструментам, которыми уже пользуются ваши люди. «Экосистема разработчиков» в одиночку достижима лишь отчасти: строить на вас должны другие, а они не станут, пока нет базы пользователей, ради которой стоит строить. Выпускайте интерфейс сейчас; экосистема, если придёт, придёт после аудитории. Часть того и другого можно арендовать у существующей платформы — ценой того, что строите на её земле.

Что матрица говорит о его рвах

В природе, в бизнесе

Природа
—
Бизнес
APIs, Stripe

Случаи

  • Stripe — Открывает платежи как небольшой набор объектов API, и бизнесы собирают на них биллинг, маркетплейсы и оформление заказа, которых он не проектировал.
  • Twilio — Превратил телефонные звонки и SMS в вызовы API, а построенные на них разработчиками потоки уведомлений и верификации стали самостоятельными продуктами.
  • Unix — Сделал каждую программу фильтром с текстом на входе и выходе, так что инструменты, написанные с разницей в десятилетия, всё ещё сцепляются через пайп.

Сочетается с

  • Модульность — Независимые блоки — это части; компонуемость — интерфейс, позволяющий другим их собирать, и копаются они вместе.
  • Стандартизация — Общий интерфейс, на котором другие уже говорят, снижает цену каждой сборки на ваших частях.
  • Агрегация — Среда, построенная для широкого участия, даёт сборкам место, где их найдут и переиспользуют.

Эта стратегия на карте → Показать сочетание на карте →

Конфликтует с

  • Полнота — Всё-в-одном закрывает швы, которые компонуемость открывает: нельзя одновременно владеть каждым шагом и позволять другим собирать шаги.
  • Секретность — Открыть свои части через публичный интерфейс — противоположность защите того, как они устроены.

Показать конфликт на карте →

Таксономия стратегий © kepano (Steph Ango), пересказана с указанием источника. Роли и маппинг на рвы © Атлас рвов. Many ways to win ↗