I've worked on enterprise .NET solutions with 15+ projects in a single solution. The cognitive overhead was staggering. To implement a new feature, you'd touch files in Application/, Domain/, Infrastructure/, Persistence/, Web/, SharedKernel/, and Contracts/. Compilation times climbed past 30 seconds. New developers took weeks to become productive. This is what I call "Project Hell."
The Root Cause
The problem isn't Clean Architecture's principles — dependency inversion, separation of concerns, and testability are all good things. The problem is that organizing by technical concern (all controllers here, all services there) scatters related code across the codebase. When a feature changes, you must hunt across multiple projects to understand the impact.
The VSA Solution
VSA reorganizes the same principles around business capabilities. Every Indotalent product is a single .NET project. All code for a feature lives in one folder. The API endpoint, MediatR handler, validation, and EF Core queries sit together. Compilation takes seconds. Adding a feature means creating one folder with one file. Need to understand how Sales Orders work? Open Features/SalesOrders/ and read through. Everything is there.
Key Takeaways
- Layered architecture scatters related code across 5-15 projects
- Single-project VSA monolith compiles in seconds with zero cognitive overhead
- New developers become productive on day one by reading one feature slice
- All 9 Indotalent products demonstrate this architecture in production code