1. A method comprising: receiving a feature record corresponding to a modular feature of a computer program, determining, from the feature record, a history of invocation of the modular feature by one or more users; determining, from the feature record, a feature-specific separation criterion associated with the modular feature; determining, from the feature record, a status of the modular feature being one of a permanent feature and a removable feature; comparing, using a computer system, the history of invocation to the feature-specific separation criterion to assess a candidate status of the modular feature for removal; and selecting the modular feature for removal from the computer program based on the candidate status of the modular feature.