Javier rende un buon punto che i mutevoli requisiti sono un dato di fatto difficile. Anch'io sono frustrato da queste situazioni perché troppo spesso mi trovo a lavorare su un prodotto in cui lo sviluppatore deve prendere decisioni. La mia opinione era "Perché la gestione non può capirlo con il cliente?", O "Perché abbiamo iniziato questo progetto se il cliente non sapeva cosa volevano?", "È così tanto mal di testa quando cambiano così in ritardo nello sviluppo ".
Semplice fatto: ciò accadrà sempre , non solo nella programmazione / sviluppo del software, ma in ogni ambito della vita. Il mondo sarebbe semplicemente un posto molto noioso e molto diverso se le persone non hanno mai cambiato idea, non si sono mai adattate, non hanno mai affrontato il cambiamento. Le persone hanno la tendenza a guardare quello che viene dato e migliorarlo. Non fai la stessa cosa con il tuo codice? Se ho un blocco di codice di cui non sono soddisfatto (è inefficiente, disordinato), lo migliorerò. (Il sistema operativo si lamenta con me? ... a volte, se sto usando un determinato SO senza nome, ma generalmente non lo è)
Come programmatori, abbiamo bisogno di cogliere le opportunità per migliorare le cose e non deprimerle o infastidirle. Cogli l'opportunità di parlare con le persone, migliorare il tuo stile, migliorare la tua etica del lavoro, approcciare le cose con una mente aperta, spingiti a essere migliore di ieri. Vai avanti nella tua carriera e non accontentarti troppo facilmente.
Capisco che non tutti saranno d'accordo con questa risposta, ma penso che sia importante che le risposte a questa domanda coprano una prospettiva più ampia.