Respostas:
Eu adicionaria à lista de @ Graham:
Eu adicionaria o seguinte:
O Rapid Development de Steve McConnell contém um capítulo sobre gerenciamento de riscos, com uma longa lista útil de riscos em potencial. Eu o usei como ponto de partida mais de uma vez.
Você tem a mistura certa de pessoas? Todos os seus desenvolvedores são desenvolvedores de aplicativos em um projeto centrado em dados? Você precisa de um designer de banco de dados, um responsável pelo controle de qualidade ou um especialista em UI em vez de contratar apenas pessoas com o mesmo mix de habilidades?
Você possui hardware adequado para apoiar o projeto? Isso é especialmente verdade se você estiver criando um sistema de alto volume ou se for muito barato para comprar servidores de desenvolvimento, além de servidores de produção.
Você configurou backups de seus bancos de dados? Apenas ter o código para recriar um banco de dados não é suficiente, você precisa manter os dados também no dev.
Seus desenvolvedores estão trabalhando com um pequeno conjunto de dados em vez de um do tamanho que a produção terá? Isso quase garante problemas de desempenho de produção, porque as consultas que funcionam bem em um pequeno conjunto de dados geralmente não funcionam em um conjunto grande. Eu já vi muitas atualizações de produção com falha que tiveram que ser revertidas imediatamente devido a esse problema específico.
Você está definindo o que fazer em casos extremos e está testando-os? Por exemplo, eu vi projetos em que ninguém nunca definiu o que acontece, o que é necessário para uma aprovação e o aprovador diz que não.
Você será forçado a fazer más escolhas de design para cumprir prazos irracionais?
No seu planejamento para o projeto, você considerou que as pessoas tiram férias e dias de doença, fazem júri, tiram licença por luto, etc? Você precisa planejar não apenas as pessoas que abandonam o projeto, mas também as folgas do dia-a-dia.