Os processos de softwares são complexos e, como todos os processos intelectuais e criativos, dependem de julgamento humano. Não existe um processo ideal, e várias organizações desenvolvem abordagens inteiramente diferentes, adequadas a sua realidade, para o desenvolvimento de software. Os processos evoluem para explorar as capacidades das pessoas em uma organização e as características específicas dos sistemas que estão sendo desenvolvidos.