Как создавать программное обеспечение с низкой привязкой к поставщику

Как создавать программное обеспечение с низкой привязкой к поставщику

10 марта 2022 г.

Привязка к поставщику относится к ситуации, когда стоимость перехода к другому поставщику (или собственному решению) настолько высока, что клиент, по сути, остается с первоначальным поставщиком (Источник).


Проблема привязки к поставщику возрастает, если:


  • Для интеграции со службой требуется несколько точек взаимодействия (глубокая интеграция), и для этих точек взаимодействия не существует общеотраслевого стандартизированного API.

  • Служба владеет критически важными данными приложений.

Это проблема не только для клиентов, но и для компаний, предлагающих программное обеспечение (особенно стартапов): клиенты рискуют застрять с поставщиком, даже если качество их услуг снижается, они меняют фокус на продукте, повышают цены. или в худшем случае - они разорятся. В результате у стартапов возникает проблема завоевания доверия потенциальных клиентов, и поэтому они должны проектировать свое программное обеспечение так, чтобы минимизировать эти риски. Это приводит к большим дополнительным инженерным затратам, а иногда и к упущенной выгоде.


Управление данными


Эту проблему можно решить, предоставив самостоятельную версию вашего продукта, которая будет хранить все данные в базе данных вашего клиента. Большинство приложений используют базу данных SQL, поэтому поддержки MySQL и PostgreSQL будет достаточно (пока ваш продукт не станет достаточно популярным).


Однако с этим подходом есть проблемы:


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

  • Если вы также хотите предоставить версию своего продукта с управляемой службой, то поддержка этой версии и версии с собственным размещением требует дополнительных технических затрат.

  • Могут возникнуть проблемы с монетизацией собственной версии. Даже если для использования требуется лицензионный ключ, его всегда можно «взломать», чтобы он не требовался.

  • Запуск дополнительной службы — это дополнительная работа для ваших клиентов, а некоторые потенциальные пользователи могут даже не обладать навыками работы с инфраструктурой, необходимыми для настройки новой микрослужбы.

Чтобы смягчить некоторые из этих проблем, вот две идеи:


  1. Разрешите пользователям быстро приступить к работе, используя версию управляемой службы, и предоставьте им возможность перенести данные из ваших баз данных в свои базы данных. Это дает пользователям уверенность в том, что они могут контролировать ситуацию, если это необходимо. Самое приятное в этом подходе то, что как только они начнут использовать версию управляемой службы, они, возможно, никогда не будут беспокоиться о переходе на версию с собственным хостингом.

  1. Разрешите пользователям использовать версию управляемой службы, которая может подключаться к их базе данных. Это избавляет их от необходимости выполнять дополнительную работу с инфраструктурой, а также дает им необходимый контроль. Это также может быть опцией, эксклюзивной для вашего самого дорогого ценового уровня.

Управление кодом [1]


Этот раздел посвящен двум аспектам:


  1. Настраиваемость кода и функций в соответствии с бизнес-требованиями

  1. Возможность запуска продукта независимо от поставщика.

Один из способов решить эти проблемы — сделать ваш продукт открытым. Однако это имеет серьезные последствия для бизнес-модели вашего продукта. Если это невозможно, вы можете рассмотреть модель «доступный исходный код»[2] , которая преобразуется в модель с открытым исходным кодом в случае закрытия вашего бизнеса. Вы даже можете взимать с пользователей дополнительную плату за предоставление им лицензии, позволяющей изменять исходный код. Наконец, в зависимости от того, как работает ваше предложение управляемых услуг, вы можете разрешить пользователям изменять исходный код вашего продукта, а модифицированная версия может размещаться у вас.


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


Сосредоточьтесь на миграции


Большинство компаний сосредотачиваются на упрощении перехода на свой продукт. Чтобы свести к минимуму привязку к поставщику, вы также должны сосредоточиться на том, чтобы облегчить переход от вашего продукта.


Поначалу это может показаться нелогичным с точки зрения бизнеса, шансы на то, что производственный клиент на самом деле откажется от вашего продукта, очень малы (при условии, что ваш продукт и услуга соответствуют их ожиданиям). Вам лучше оптимизировать для этого, так как это создает впечатление расстановки приоритетов и сосредоточенности на клиентах, что, в свою очередь, увеличит вероятность получения новых клиентов.


Заключение



Подводя итог, можно свести к минимуму проблему привязки к поставщику следующим образом:


  • Предоставление пользователям возможности использовать собственную базу данных через самостоятельную версию вашего продукта.

  • Предоставление им возможности выполнять сложные настройки с изменением и без изменения кода, который вы предоставляете.

  • Предоставление пользователям возможности перейти от использования вашей версии управляемой службы к самостоятельной версии вашего продукта.

  • Разрешение вашей версии управляемой службы подключаться к базе данных пользователя.

  • Максимально упростите миграцию на ваш продукт и обратно.

Сноска:


*[1]: Я не юрист. Пожалуйста, ознакомьтесь с одним из них, прежде чем внедрять / серьезно рассматривать идеи, указанные в этом разделе. *


[2]: Исходный код доступен для просмотра, но под проприетарной лицензией, что ограничивает распространение и модификацию кода и обычно требует лицензионного ключа для запуска.


Написано людьми на SuperTokens — надеюсь, вам понравилось! Мы всегда доступны на нашем сервере Discord. Присоединяйтесь к нам, если у вас есть какие-либо вопросы или вам нужна помощь.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE