Normalmente, os processos de desenvolvimento de software são complexos e envolvem muitos níveis de atividades interdependentes.