Disabling module with config sync and removing with composer
You need two consecutive releases for stuff like that.

First release:

Your colleague uninstalls the module and commits the updated config.

If you don't manage your site via config use hook_update_N instead.

/**
 * Uninstall SOME_MODULE module.
 */
function MYMODULE_update_8001(&amp;$sandbox) {

  \Drupal::service('module_installer')-&gt;uninstall(['SOME_MODULE']);
}


Second release:

The module can be removed via Composer.



Related:

Order of drush commands for automated deployment?