Microservices are all about domain modelling and domain design done right. Microservices is an approach to developing a single application as a suite of small services (a.k.a. Domains). The prefix micro refers to the scale of the size of a microservice should be small enough to fit inside the head of a developer (or formally, a maintainer). In many organisations monolith is the synonym to big ball of mud. The sub division of domains is the same winning Software development strategy I saw applied at bytel,Slough,where the Telco Domain was divided in to sub domains i.e billing, Technician work orders , movie packages, telephone plans etc. Each individual developer was responsible for development and maintenance of their own sub domain, their own microservice.
Grady Booch: The United States Department of defence (DOD) is perhaps the largest user of computers in the world. By the mid-1970s, software development for its systems had reached crisis proportions: projects were often late, over budget and they often failed to meet their stated requirements. It was evident that the problems would only worsen as software development costs continued to rise exponentially. To help resolve these problems which were further compounded by the proliferation of hundereds of different languages.The DOD sponsored the development of a single, common high order programming language. The winning design was originally called the Green Language (so called because of its team colour code during the competition), later was renamed Ada.
Poor quality software cost an estimated $2.84 trillion in the US alone in 2018
Source CISQ: [Consortium for IT Software Quality ].