The main reason, of course, is that you need to continually replace old, subpar functionality with better stuff to attract and retain customers. And as long as the API to that microservice is backward-compatible, you can develop a new microservice (using any language or framework you like) and swap it in without disruption.
In the process, you may not need to do much coding at all. If external services have the functionality you need, you can ping them instead of building your own. Plus, we live in the GitHub era, so if you need a new microservice you're likely to find open source code for it in a repo somewhere. Microservices, like today's physical servers, are disposable commodities rather than precious assets.
We still face technology challenges on this new frontier. Docker containers may be ideal for microservices, for example, but container orchestration and management solutions like Kubernetes and Mesos are still evolving. We also need better tools for logging, monitoring, testing, and debugging decentralized, loosely coupled applications.
Those solutions will come in time, perhaps sooner than we think. But we're lucky to live in an era when, by accident or design, a surprisingly coherent collection of new technology has already arrived to transform the enterprise.
Sign up for CIO Asia eNewsletters.