Participei de três projetos que foram claramente fracassos. Isso foi bastante doloroso, mas olhando para trás, dois dos três não tiveram consequências negativas na minha carreira, e mesmo o terceiro não foi o fim do mundo.
Aqui estão algumas observações que eu lembro.
Desenvolvedores em posições juniores ("código por especificação", "consertar o bug", coisas assim) não são afetados muito, a menos que relaxem devido ao moral reduzido na equipe. Em posições como essas, uma estratégia de sobrevivência sensata e, às vezes, bem-sucedida pode estar apenas fazendo o melhor que você pode.
- Por exemplo, uma das falhas que experimentei foi superada pela correção simples e metódica de mais de cem bugs conhecidos que (juntamente com uma abordagem particularmente inteligente de promover esse progresso pelo líder técnico) acabaram levando a alta gerência à decisão de recuperar o projeto e fornecer mais uma chance com um novo lançamento, que, por sua vez, obteve um sucesso razoável.
Programadores em posições influentes mais seniores estariam melhor preparados para compartilhar as consequências negativas do fracasso do projeto. Espera-se que um arquiteto, líder técnico e desenvolvedor sênior cause um impacto grande o suficiente para ser considerado responsável pelo sucesso ou fracasso do projeto.
Na posição sênior, seria melhor estar preparado para ganhar com a falha "indiretamente", analisando o que deu errado e o que poderia ter sido feito melhor.
Esses conhecimentos, lições post-mortem podem ser inestimáveis se aprendidos corretamente, a carreira de muito sucesso em cargos seniores pode depender de quão bem eles são aprendidos, conforme explicado nesta brilhante resposta no WP :
O julgamento não vem do sucesso, mas de fracassos. A maioria das empresas deseja contratar pessoas que tiveram suas falhas pagas por empresas anteriores ...
Em uma nota mais prática, pode-se considerar a abordagem "próxima versão / atualização" como uma possível saída da falha. Coincidentemente ou não (acho que não ), mas as duas falhas que não prejudicaram minha carreira passaram por cenários muito semelhantes: o lançamento N
foi um desastre total, o lançamento N+1
foi tolerável, o lançamento N+2
e, posteriormente, o sucesso.
Andando no seu lugar, eu provavelmente colocaria algum esforço na preparação / promoção da idéia de "próximo lançamento". Faça (e comunique !) Algo como uma lista provisória de problemas conhecidos que você deseja corrigir após a liberação planejada. Rascunhe um roteiro informal e áspero para os próximos lançamentos.
Pense em como você pode comunicar essas idéias às pessoas ao seu redor, como você pode influenciar a gerência a considerar esse plano. Se o projeto tiver alguém com boas habilidades de marketing, tente envolvê-los na amortização do dano por falha, agrupando a versão futura em termos mais suaves, como "acesso antecipado", "beta", "visualização do cliente", "versão introdutória", coisas como este.
Pense em um plano de backup para o caso de altos aparecerem surdos a essa idéia. Lembre-se da história acima sobre "consertar mais de cem bugs conhecidos"? realmente há uma chance de as coisas mudarem.
A gerência pode parecer surda às idéias do próximo lançamento agora, mas há uma boa chance de reconsiderar diante de fortes evidências convincentes do progresso da qualidade do projeto.
- É bem provável que haja muito tempo entre o congelamento do código para a liberação planejada e a decisão de gerenciamento para eliminá-lo completamente. Essa é a sua chance: se você se concentrar em resolver problemas conhecidos e "evangelizar" adequadamente o progresso, isso pode fazer a diferença (como antes me ocorreu).