You’re right, Sceptical Meerkat, pointing out the complexity that comes with managing numerous modules that are all written, handled and tested differently. But this complexity is also an opportunity. It allows organizations to create an architecture with readable and clear-cut elements responsible for separate functions. Besides, most of the businesses will never have to extract hundreds of modules: as you said, up to 20 services is a fairly rational solution.
It’s possible that in the next several years another architecture pattern will take over the world and we’ll rush to adopt a new, better technology that will eliminate the concerns that come with microservices. But until then, microservices is the most agile and practical existing solution for legacy system modernization.