Компонуемость
Composability
Скорость и масштаб Держит Глубина 3 · Буровая
компоненты собираются в разные конфигурации
В какие рвы вырастает
- #20 Экосистема разработчиков
Части, собирающиеся в разные конфигурации, — то, на чём строят разработчики; каждая их постройка — капитал, вложенный в ваши примитивы, и их невозвратные вложения — ваша «Экосистема разработчиков».
- #6 Интеграции
Каждая конфигурация, дотягивающаяся до другого инструмента, — это «Интеграции», которые вам не пришлось писать, а широта этих коннекторов — то, что сопернику придётся отстраивать заново.
Кратко
Компонуемость — это открыть продукт как набор частей, которые другие собирают так, как вы не планировали: API, набор примитивов, труба, подходящая к любой другой трубе. Преимущество в том, что каждая чужая сборка — причина остаться и коннектор, который вам не пришлось писать. Держит через «Экосистему разработчиков» и через «Интеграции».
Как работает
Механизм — чужая работа, накапливающаяся по вашу сторону забора. Когда продукт — это набор частей с чистым интерфейсом, разработчик складывает из них то, чего вы не задавали: оформление заказа, модель биллинга, связку между двумя другими инструментами. Эта сборка теперь его продукт, работающий на ваших примитивах, и заменить вас — значит перестроить каждую сборку, а не сменить поставщика. Чем больше сборок существует, тем дороже уход обходится тем, кто их построил.
Работу делает интерфейс. Он должен быть достаточно стабильным, чтобы прошлогодняя сборка всё ещё работала; достаточно общим, чтобы были возможны сборки, которых вы не предвидели; и описанным так, чтобы незнакомый человек собрал свою, не спрашивая вас. Каждое ограничение на стыковку частей, которое вы убираете, добавляет конфигурацию, которую кто-то соберёт. Каждое ломающее изменение уничтожает часть сборок и учит строителей подстраховываться.
Почему держит — или только занимает
Компонуемость держит, потому что сборки строят и оплачивают другие, и остаются они там, где построены. Это «Экосистема разработчиков»: третьи стороны вкладываются поверх вас, и их вложение становится вашей стеной — двусторонний сетевой эффект плюс их собственная стоимость переключения, работающая на вас. Каждая сборка, дотягивающаяся до другого инструмента, — ещё и «Интеграции»: коннектор, который вы не писали и не поддерживаете, но который ваш продукт теперь несёт. Экосистема — буровая и устойчива к ИИ; интеграции — экскаватор и под атакой, потому что агент теперь пишет коннектор за вечер. Ров опирается на первое.
Есть ли это у вас
- Разработчики используют ваши части для того, чего вы не документировали, и вы узнаёте об этом из их анонсов.
- Ломающее изменение сломало бы продукты, которые продают другие компании, и вы знаете какие.
- Ваши примитивы чаще сочетают с другими инструментами, чем используют по отдельности.
- Справочная документация собирает больше трафика, чем маркетинговый сайт.
Как копать
- Выпускайте примитивы, а не функции: платёж, сообщение, запись — каждый годен без остальных.
- Заморозьте интерфейс рано и версионируйте: сборка, построенная на вас, должна работать годами.
- Пишите документацию для незнакомца: первую сборку разработчик должен собрать, не написав вам письма.
- Публикуйте чужие сборки, чтобы следующий строитель начинал с работающей комбинации.
- Не выпускайте ломающих изменений без пути миграции: каждое учит строителей страховаться от вас.
Как размывается
- Для интерфейса возникает стандарт, и ваши части становятся взаимозаменяемыми с частями соперника.
- Агент пишет коннекторы за вечер, и широта интеграций больше никому ничего не стоит.
- Вы начинаете конкурировать со сборками, построенными на вас, и строители уносят работу на нейтральную базу.
- Ломающие изменения копятся, пока разработчики не заворачивают вас в абстракцию, позволяющую вас заменить.
Соло, без капитала
«Интеграции» целиком по силам одному человеку: чистый API, вебхук, формат плагинов можно выпустить за квартал и подключить к инструментам, которыми уже пользуются ваши люди. «Экосистема разработчиков» в одиночку достижима лишь отчасти: строить на вас должны другие, а они не станут, пока нет базы пользователей, ради которой стоит строить. Выпускайте интерфейс сейчас; экосистема, если придёт, придёт после аудитории. Часть того и другого можно арендовать у существующей платформы — ценой того, что строите на её земле.
Что матрица говорит о его рвах
- #20 Экосистема разработчиков Соло ~ частично Капитал ◐ средний AI ↑ устойчив к AI Аренда ~ частично
- #6 Интеграции Соло ✓ доступен соло Капитал ◐ средний AI ↓ под ударом Аренда ~ частично
В природе, в бизнесе
- Природа
- —
- Бизнес
- APIs, Stripe
Случаи
- Stripe — Открывает платежи как небольшой набор объектов API, и бизнесы собирают на них биллинг, маркетплейсы и оформление заказа, которых он не проектировал.
- Twilio — Превратил телефонные звонки и SMS в вызовы API, а построенные на них разработчиками потоки уведомлений и верификации стали самостоятельными продуктами.
- Unix — Сделал каждую программу фильтром с текстом на входе и выходе, так что инструменты, написанные с разницей в десятилетия, всё ещё сцепляются через пайп.
Сочетается с
- Модульность — Независимые блоки — это части; компонуемость — интерфейс, позволяющий другим их собирать, и копаются они вместе.
- Стандартизация — Общий интерфейс, на котором другие уже говорят, снижает цену каждой сборки на ваших частях.
- Агрегация — Среда, построенная для широкого участия, даёт сборкам место, где их найдут и переиспользуют.
Конфликтует с
- Полнота — Всё-в-одном закрывает швы, которые компонуемость открывает: нельзя одновременно владеть каждым шагом и позволять другим собирать шаги.
- Секретность — Открыть свои части через публичный интерфейс — противоположность защите того, как они устроены.