В месте где работаю задумывается отдельное направление развития, отдельный проект, проект планируется довольно большой.
Людей набрать проблема, поэтому подумываем воспользоваться аутсорс разрабами, фрилансерами.
Собственно суть вопроса: а как это сделать и избежать слива исходников?
Делать монолит - это значит надо давать доступ ко всему проекту.
Микросервисы - попроще, ок, но для отдачи на аутсорс придется пилить на сервисы, грубо говоря, ограничивающиеся 4 rest методами, и куча sdk для всех сервисов для взаимодействия. Как такое контролировать - опыта нет.
Логические микросервисы (типа: аккаунт юзера, файлопомойка, меседжер, ЛК проекта, внутренние процессы) - опять же "внутренние процессы" и "ЛК проекта" будут довольно большими, и скорее его можно отнести к монолиту.
Поделитесь опытом, как это происходит в больших компаниях, где даже между отделами не знают о работе другого отдела
Собственно суть вопроса: а как это сделать и избежать слива исходников?
В общем никак, если вы отдаете проект кому-то, то всегда есть шанс что он может слить исходники. А так для защиты подписывают NDA.
аккаунт юзера, файлопомойка, меседжер, ЛК проекта, внутренние процессы
По описанию у вас ничего такого нет в системе, особого смысла сливать эти исходники нет. Но если так боитесь слива, то есть методы, которые позволят отследить кто слил(например оставить неприметный комментарий в коде, который будет уникален для каждой аутсорсной компании).
как вариант закатать приложение в пакеты nuget например.
А аутсорсерам дать только проекты с подключенными пакетами.
Ну и самое главное это доверие к подрядчику и четко оговоренные границы в договоре