Testing
you can write and run tests at the system level without a production connection, making them purer and faster, also you can swap out the production connections for test and vice versa for any of the connections, input or output without having to rebuild your system.
Information Leakage Protection
The test wall around your application layers will detect whenever someone leaks ui details or technology details into your business logic
Large System Separations
Different teams can develop and own their sections of code independently, test them separately and connect them according to defined and tested interfaces.
Long-running systems
you can replace one external connection with another easily as technology and business needs change over the years.
Domain Driven Design: Once the technology elements are safely outside the application boundary, you can focus on the domain design without distraction.