20 to 50 developers is probably the problem. That is pretty high and would need a lot of management and resources to keep everything in check.
I would consider splitting the project up into smaller reusable segments. Abstract certain layers away from the core system.