The largest successful software system we have is the internet.
So perhaps we should ask ourselves: What can we learn from the internet architecture?
And no that does not automatically mean micro-services. The core idea of the internet is to agree on API's (protocols like HTTP) and leave the rest as implementation details. You can do the same with modules, libraries, classes, files etc.
I totally agree and recently wrote a piece about this and how I came to the same question: "what can we learn?" https://github.com/MickDuprez/Protocol-Driven-Development
Even if you do use micro-services you still need a protocol!