Sono favorevole all'approccio organico, finalizzato alla creazione di una libreria di utilità piccole, indipendenti, piuttosto che di grandi quadri.
Ecco come lo facciamo (in Java), nel mio attuale posto di lavoro. Abbiamo inserito il nostro codice comune di scopo generale in un singolo progetto. Gli sviluppatori lo aggiungono come meglio credono. Di solito il codice comune inizia come codice specifico del progetto e viene fornito in quanto diventa più generalmente utile. Se blocchi di funzionalità diventano troppo grandi, vengono scorporati in un progetto separato. Ognuno di questi progetti si basa su un barattolo. Rifattiamo con cautela e usiamo i test unitari per mantenere stabile la libreria.
Il codice sorgente è tutto in CVS, ma qualsiasi sistema di controllo delle versioni popolare avrebbe fatto il lavoro. Le applicazioni aziendali che utilizzano la libreria comune funzionano in due modi. La maggior parte si basa solo sull'ultimo codice impegnato. Alcuni richiedono più certezza e utilizzano i tag CVS per controllare la versione del codice sorgente che stanno utilizzando. Un terzo modo, che non usiamo, sarebbe quello di costruire i codici comuni come librerie esterne: artefatti pre-costruiti, mantenuti separatamente.