Com a ascensão do desenvolvimento de software, as organizações tentam distribuir da melhor maneira suas atividades na produção de software. Esse trabalho objetiva identificar quais modelos de colaboração são utilizados pela indústria e/ou academia para desenvolver software no contexto distribuído, com base no ciclo de vida básico do desenvolvimento tradicional de software (requisitos, análise, implementação e testes). Assim como, apresentar quais são os desafios que afetam cada fase do ciclo de vida das empresas. Os métodos utilizados para levantar as formas de colaboração foi uma revisão sistemática da literatura, método baseado em evidências e uma pesquisa de campo. Para identificar os fatores que afetam as atividades do desenvolvimento foi utilizada a mesma pesquisa de campo no mercado nacional de software, onde através de um questionário, as empresas pesquisadas citaram os problemas que enfrentam e que modelos de colaboração as mesmas utilizam. A partir dos resultados é possível afirmar que os modelos existentes na literatura são distintos dos utilizados na indústria e que os fatores que afetam o desenvolvimento distribuído são comuns entre as empresas.