Recently a project called 'Qt Modularization' was initiated. This is a project that aims to modularize Qt at every level. As you may know already, Qt is currently modularized on the DLL level; each module has its own DLL. However, the project as a whole is still monolithic; all the code is hosted in a single repository, you cannot build a leaf module without building the modules on which it depends. This project aims to change that, so that the modules are hosted in different repositories, with separate maintainers, and modules may have different release schedules.

Just look at the mess that is Xorg since they've split into sd/sp/sr modules. Versions are all over the place, not everything is updated to the new APIs/features, not everything works well together, and we're still waiting for everything to catch up.

Or look at the mess that is your typical Linux distribution, where upgrading 1 piece ends up upgrading half the distro, and things still break all over the place.

The nice thing about a monolithic development model is that you know for a fact that all the pieces in a release will be same for everyone who installs it, and that everything works together, all using the same features. And you aren't stuck waiting for module-foo-x.y.z to be released using feature bar-a.b.c before you can run application-Q (which is where a lot of people are when it comes to Xorg).