Опенсорс для корпораций - это способ снизить затраты на разработку путём привлечения к ней всего мира. Всему миру отдаётся исходник, который трудно разрабатывать самому и предлагается помочь, запилив то, что нужно вам - есть достаточно большая вероятность, что вам нужно то же самое, что и корпорации.Если вы держите часть исходников в привате, это значит, что придётся
* разрешать все конфликты слияний с этой частью самому
* постоянно адаптировать эту часть к чужим изменениям.
Можно разделить издержки, возникающие при поддержки фичи, на 2 группы.
1. которые присутствуют даже если изменения фичу не затрагивают. В частности сборка и тестированре кода фичи и держание в уме, что есть такая фича и что её не надо ломать.
2. которые присутствуют только если изменения фичу затрагивают. Когда надо внести ломающие изменения, то надо починить всё, что что эти изменения ломают.
1 намного дешевле 2.
Если ты держишь код в привате, сообщество не несёт вообще никаких издержек, при этом постояннотломает твой код, и ты постоянно несёшь 2.
Если ты вливаешь код в апстрим, сообщество постоянно несёт 1, и иногда - 2.
Тотально издержки уменьшаются, но при ътом переносятся на сообщество. Даже если предположить, что ты денежно компенсируешь сообществу его издержки на поддержку твоего кода, тебе выгоднее его опенсорсить.
А теперь подумаем ещё немного, и придём к выводу, что при опенсорсинге издержки сообщества идут к 0 при предположении, что проект нужен только его активным контрибьютерам и что они разрабатывают фичи, нужные всем. То есть все понёсли издержки за друг друга, но в результате никто не понёс издержек больше, чем если бы он не опенсорснул свой код и сидел отдельно и вливал патчи.
Можно, конечно, выделить интерфейс, и сказать, что он неприкосновенен. Но это будет означать, что то, что за интерфейсом - фактически другой продукт.
Поэтому всем выгодно вливать в апстрим всё, что возможно.
BSD не взлетела поначалу из-за соборной модели разработки - когда у кого попало не берут патчи, а потом - из-за взлетевшего линукса.