Ho partecipato a tre progetti che erano chiaramente un fallimento. Questi sono stati abbastanza dolorosi ma guardando indietro, due su tre non hanno avuto conseguenze negative sulla mia carriera, e anche il terzo non era la fine del mondo.
Ecco alcune osservazioni che ricordo.
Gli sviluppatori nelle posizioni junior ("codice per specifica", "correggi il bug", cose del genere) non ne risentono molto, a meno che non si rilassino a causa del morale basso nella squadra. In posizioni come queste, una strategia di sopravvivenza ragionevole e talvolta talvolta vincente potrebbe fare il meglio che puoi.
- Ad esempio, uno dei fallimenti che ho riscontrato è stato superato da una semplice e metodica correzione di oltre cento bug noti che (abbinati a un approccio particolarmente intelligente nel promuovere questi progressi da parte del capo della tecnologia) alla fine hanno portato i vertici aziendali a decidere di recuperare il progetto e dare ancora un'altra possibilità con una nuova versione, che a sua volta ha avuto un discreto successo.
I programmatori in posizioni più senior e influenti sarebbero meglio preparati a condividere le conseguenze negative del fallimento del progetto. Un architetto, un capo tecnico e uno sviluppatore senior dovrebbero in genere avere un impatto abbastanza grande da essere considerati responsabili del successo o dell'insuccesso del progetto.
In posizione di alto livello, sarebbe meglio essere preparati a trarre vantaggio dal fallimento "indirettamente", analizzando cosa è andato storto e cosa avrebbe potuto essere fatto meglio.
Queste conoscenze, le lezioni post mortem possono essere preziose se apprese nel modo giusto, la carriera di grande successo in posizioni senior può dipendere da quanto bene vengono appresi, come spiegato in questa brillante risposta al WP :
Il giudizio non viene dal successo, ma dai fallimenti. La maggior parte delle aziende vuole assumere persone che hanno avuto i loro fallimenti pagati da società precedenti ...
Su una nota più pratica, si può considerare l'approccio "next / update release" come una possibile via d'uscita dal fallimento. Per coincidenza o no (penso di no ), ma entrambi i fallimenti che non hanno danneggiato la mia carriera sono passati da scenari molto simili: il rilascio è N
stato un disastro totale, il rilascio è N+1
stato tollerabile, i rilasci N+2
e in seguito sono stati un vero successo.
Camminando nei tuoi panni, molto probabilmente mi impegnerei a preparare / promuovere l'idea della "prossima uscita". Crea (e comunica !) Qualcosa come un elenco provvisorio di problemi noti che vorresti risolvere dopo il rilascio pianificato. Elaborare una road map informale e approssimativa per le prossime versioni.
Pensa a come potresti comunicare queste idee alle persone intorno a te, a come potresti influenzare il management a considerare questo piano. Se il progetto ha qualcuno con buone capacità di marketing, prova a coinvolgerli nell'ammortamento del danno da fallimento, concludendo la prossima versione in termini più fluidi, come "accesso anticipato", "beta", "anteprima cliente", "versione introduttiva", cose come quello.
Pensa a un piano di backup nel caso in cui i piani superiori sembrino sordi a questa idea. Ricordi sopra la storia di "correzione di oltre cento bug noti"? c'è davvero la possibilità che le cose cambino.
Il management può sembrare sordo alle idee della prossima versione, ma c'è una buona possibilità per loro di riconsiderarle di fronte a prove convincenti e convincenti dei progressi della qualità del progetto.
- È abbastanza probabile che tra il blocco del codice per il rilascio pianificato e la decisione della gestione ci sarà un tempo piuttosto lungo per eliminarlo completamente. Quella volta è la tua occasione: se concentri gli sforzi per risolvere problemi noti e "evangelizzare" correttamente i progressi, questo potrebbe fare la differenza (come una volta mi ha fatto).