I have been working on an monolithic ERP web app/tool which has grown more than I initially expected, I didn't thought about microservices at the time and now it's becoming harder to outsource work with other developers without sharing the entire code base (which they would need to go over) and most importantly dividing resources between different services and users.
Starting the app from scratch again using micro-service architecture is not an option now since it would take a really long time to re-implement everything. Is there any other solution to this?
This is not only related to Microservices but business aspect as well.
Your current situation
Long term goal
Microservice is good solution for your desired scenario at the same time it is hard now as product already developed.
You can evaluate following things.
Definitely it is time consuming process and step by step you have to do it. Many organization are transforming this way only even there product is 10-20 years of development.
Update 1:
Monolith ( specially non-modular) has issue with coupling. All modules are not depends on abstraction so it is kind of tighly couple.
First identify contract for each module that other module can use.
public interface IModule1Contracts
{
// Method expose by that module to another module.
}
Same needs to repeat for each module.
At first point when IModule1Contracts implements concreate type. It is still call module1 directly by creating object but by this way you have separate contract.
You can do process like separate all databases for all domain. You can do that if you have timeframe to do that.
Instead in above point when I mention that you can separate module as a service. At that point you can think of separating db for that module1.
This is architectural concern and also it very project to project. I am not aware of any tool that do this process. Mostly this is manual process but once do for one or two module process will become visible in context of your project.