Con l'aumento dello sviluppo del software, le organizzazioni cercano di distribuire al meglio le loro attività nella produzione di software. Questo lavoro mira a identificare quali modelli di collaborazione sono usati dall'industria e/o dal mondo accademico per sviluppare software nel contesto distribuito, basandosi sul ciclo di vita di base dello sviluppo tradizionale del software (requisiti, analisi, implementazione e test). Così come, presentare quali sono le sfide che riguardano ogni fase del ciclo di vita delle aziende. I metodi utilizzati per sollevare le forme di collaborazione sono stati una revisione sistematica della letteratura, un metodo basato sull'evidenza e un'indagine sul campo. Per identificare i fattori che influenzano le attività di sviluppo è stata utilizzata la stessa ricerca sul campo nel mercato nazionale del software, dove attraverso un questionario, le aziende intervistate hanno citato i problemi che affrontano e quali modelli di collaborazione utilizzano. Dai risultati è possibile affermare che i modelli esistenti in letteratura sono diversi da quelli utilizzati nell'industria e che i fattori che influenzano lo sviluppo distribuito sono comuni tra le aziende.