IMHO, se potessi fare solo una cosa prima di distribuire il tuo progetto (direttamente o indirettamente), ti consiglio di raddoppiare e triplicare il controllo che si compili così com'è dal controllo del codice sorgente.
Non ridere, ma non posso dirvi quante volte sono stato "aggiornato" da un controllo del codice sorgente e non è riuscito a compilare, solo per scoprire in seguito che non ero "nella vecchia scatola di Fred" perché apparentemente il codice "solo compila sulla vecchia scatola di Fred ". Ho anche avuto un ex datore di lavoro che rimuoveva prontamente il mio desktop dal mio cubo e lo sostituiva con "la vecchia scatola di Fred" in modo da poter lavorare sul progetto che dovevo supporre.
Come estensione della raccomandazione di cui sopra, poiché a volte non è necessario ottenere le ultime novità per compilare un'applicazione, ti consiglio di creare un file README.txt e inserirlo nella directory principale dell'applicazione e metterlo nel controllo del codice sorgente. Questo documento README dovrebbe contenere un elenco di dipendenze esterne che non è stato possibile controllare nel controllo del codice sorgente (se presente), come impostare il database e qualsiasi altra stranezza relativa ai cicli di compilazione, esecuzione o distribuzione dell'applicazione.
Qualunque cosa sopra e oltre i due suggerimenti precedenti sarebbe solo una salsa, ma IMHO i due precedenti sono quasi richiesti su qualsiasi progetto più grande di "Hello World".
MODIFICARE:
Sul tema della documentazione ...
Nel corso degli anni ho sia scritto che letto la mia giusta dose di documentazione software allo scopo di facilitare la transizione di uno sviluppatore. Direi che tali documenti raramente valgono la carta su cui sono stampati. Gli sviluppatori (me compreso) raramente pensano alle parti importanti dell'applicazione mentre scrivono tali documenti, tendiamo solo a pensare agli incendi più recenti che abbiamo combattuto. Al di là del fatto che questi documenti tendono a non coprire tutti gli aspetti importanti del software, diventano obsoleti MOLTO rapidamente. Una volta che il documento non è aggiornato, è probabile che un futuro sviluppatore lo ignori completamente invece di ripristinarlo per adattarlo alla realtà (pensa a cambiare i requisiti).
Invece della documentazione in sé, raccomando i test unitari. So che probabilmente sembra vecchio a questo punto, ma lascia che il codice faccia la documentazione per te. I test unitari rotti sono difficili da ignorare (e più facili da individuare) di un documento di Word. Inoltre, la lingua inglese è orribilmente imprecisa per articolare i punti più fini della progettazione del software. Ci sono semplicemente troppi modi per interpretare il significato anche della più semplice delle frasi inglesi, e questo porta solo a confusione e / o bug.