Dal 2000, i processi di sviluppo del software che sfruttano il riuso di software già esistente e si stanno diffondendo sempre di più:
Sistemi di applicazioni indipendenti che sono configurati per essere utilizza in un particolare ambiente, ad esempio: un sistema di gestione delle vendite che viene configurato per essere utilizzato in una particolare azienda
Collezioni di oggetti che sono sviluppate come un componente o un pacchetto da integrare tramite framework di interazione dei componenti. I componenti possono essere sviluppati in qualsiasi linguaggio di programmazione e possono essere integrati utilizzando dei framework
Servizi web sviluppati in conformità agli standard e che sono disponibili per essere utilizzati da siti remoti su internet, per esempio semplici siti che consentono attraverso delle API di essere integrati in altri sistemi, per esempio: un sito web che fornisce previsioni meteo (e delle API) potrebbe essere utilizzato da una applicazione che fornisce informazioni sui voli aerei in base ai cambiamenti metereologici (integrati grazie al primo sito)