Skille mellom oppgaver resulterer flere frihetsgrader for noen aspekter av et programmet sitt design, utbredelse eller bruk. Dette resulterer i økt frihet for forenkling og vedlikehold av kode. Når oppgavene er godt skilte vil det være flere muligheter for oppgraderinger, gjenbruk og uavhengig utvikling av moduler. Skjuling av implementeringsdetaljer til moduler bak et grensesnitt gjør det mulig å forbedre eller endre enkeltoppgaver uten å kjenne til detaljene til andre deler, og uten å måtte gjøre tilsvarende endringer i de andre delene. Moduler kan også eksponere ulike versjoner av et grensesnitt, hvilket som øker friheten til å oppgradere et komplekst system i små steg uten midlertidig tap av funksjonalitet.