Соблюдать это правило стоит в силу двух причин. Во‑первых, когда специфические новые функции включаются в ядро платформы, вместо того чтобы «крепиться» на периферии, приложения, которые не пользуются этими функциями, будут работать медленно и неэффективно. Если же функции запускаются через приложение, а не ядром платформы, пользователи получают куда более приятные впечатления.
Во‑вторых, экосистема платформы может развиваться быстрее, когда ядро платформы – чистая, простая система, а не клубок бесчисленных функций. Поэтому Карлисс Болдуин и Ким Кларк из Гарвардской бизнес‑школы описывают грамотную платформу как состоящую из двух уровней: стабильное ядро, которое ограничивает вариативность и лежит в основе постоянно развивающегося уровня, допускающего вариации[41].
Этот принцип сегодня применяют самые качественные платформы. Например, Amazon Web Services (AWS), наиболее успешный поставщик облачных систем хранения и управления данными, сосредоточена на оптимизации нескольких базовых операций, включая хранение данных, вычисления и обмен сообщениями[42]. Другие услуги, которые использует только часть клиентов AWS, ограничены периферией платформы и доступны через специальные приложения.
Власть модулярности
В интегральном подходе, когда система развивается максимально быстро, чтобы служить единственной цели, особенно в первые дни ее существования, есть свои преимущества. Но в долгосрочной перспективе успешная платформа должна обратиться к модулярному подходу. Полное рассмотрение этого принципа выходит за рамки данной главы, но мы затронем некоторые важные идеи. Начнем с определения, данного Болдуин и Кларком (1996 г.).
Модулярность – стратегия эффективной организации сложных продуктов и процессов. Модульная система состоит из единиц (или модулей), разработанных независимо, но действующих как единое целое. Разработчики достигают модулярности, дробя информацию на видимые технологические стандарты и скрытые параметры. Модулярность выгодна, только если деление точно, недвусмысленно и полно. Видимые технологические стандарты (видимая информация) – решения, которые влияют на дальнейшую разработку. В идеале они закладываются в начале процесса и доводятся до сведения тех, кто в нем участвует[43].
В статье 2008 г. Карлисс Болдуин и Джейсон Вударт предложили полезное и емкое определение стабильного ядра системы.
Мы утверждаем, что фундаментальная архитектура, лежащая в основе всех платформ, по существу одна и та же: система разделена на набор «ядерных» компонентов с низкой вариативностью и дополнительный набор «периферальных», высоковариативных. Низковариативные компоненты составляют платформу. Это долгоживущие элементы системы, которые таким образом скрыто или явно определяют интерфейс системы и правила, управляющие взаимодействиями между разными участниками[44].
Почему же модулярность эффективна? Потому что, когда системы явно поделены на подсистемы, они могут работать и как целое, объединяясь и взаимодействуя через четко прописанные интерфейсы. Следовательно, подсистемы могут разрабатываться индивидуально, если подчиняются общим стандартам разработки и совместимы с остальной системой с помощью одного стандартного интерфейса. Вы, наверное, встречали термин «программный интерфейс приложений» (Application Programming Interface, API). Это стандартные интерфейсы таких систем, как Google Maps, New York Stock Exchange, Salesforce, Thomson Reuters Eikon, Twitter и многих других, используемые для облегчения доступа внешних участников к корневым ресурсам[45].
Amazon особенно эффективен в открытии API своих модульных сервисов. На рисунке 3.1 охват API, открытых Amazon, сравнивается с API ведущего розничного продавца Walmart, который пытается стать заметным игроком на рынке платформ. Как видите, Amazon существенно опережает Walmart в количестве и разнообразии API.
Рис. 3.1. У Amazon куда больше комплексов API, чем у Walmart. Это единые платежи, онлайн‑торговля, облачные сервисы, сообщения, распределение рабочих задач и др. Пока Walmart оптимизирует логистику, Amazon разрешает третьим сторонам создавать ценности с помощью своих модулярных сервисов. Источник : Эванс и Басоль, с использованием данных ProgrammableWeb[46]. Воспроизводится с разрешения авторов
Возможности модулярности – одна из причин, почему индустрия персональных компьютеров так быстро выросла в 1990‑е. Ключевыми компонентами систем ПК были: центральные процессоры, которые отвечали за вычисления; графические процессоры, которые создавали красочные изображения на экране; оперативная память, обеспечивающая рабочую память; жесткий диск, который обеспечивал большие объемы под долгосрочное хранение данных. Каждая из этих подсистем объединялась с другими, используя четко прописанный интерфейс, который допускал невероятные инновации, по мере того как Intel (CPU), ATI и Nvidia (GPU), Kingston (RAM) и Seagate (HD) независимо работали над улучшением качества своих продуктов.