Sempre existe uma discursão aqui na empresa entre análise e desenvolvimento do seguinte ponto de vista:
A análise sempre quer “prever” todas as possíveis falhas que um usuário pode disparar em suas operações no sistema.
Do meu ponto de vista, de desenvolvimento, acredito que, falhas “muito possíveis” de acontecer em uma interação usuário --> sistema devem de fato ser evitadas; porém, querer “evitar” todo tipo de falha, me parece um esforço desnecessário e tipo vidência, um software muito perfeito é imaginado, e um software que o usuário precisa nunca existe.
Pra mim, a melhor estratégia é a do estilo Google; usar betas - ou seja, lançar uma versão funcional e corrigir os erros que realmente acontecem.
E ai, o que vocês acham?