OSGi was adopted to enable dynamic installation and updating of components in a telecommunications system. The system was gradually modularized using OSGi services and bundles over time. This improved extensibility, reduced coupling between layers, and made the code base significantly cleaner and easier to maintain. OSGi enforces better modular design and the use of services improves loose coupling between components.