Javier enfatiza que a mudança de requisitos é um fato difícil da vida. Eu também fico frustrado com essas situações, pois muitas vezes me vejo trabalhando em um produto em que o desenvolvedor precisa tomar decisões. Minha opinião costumava ser "Por que a gerência não consegue descobrir isso com o cliente?" Ou "Por que começamos este projeto se o cliente não sabe o que queria?", "É muita dor de cabeça quando eles mudam tanto atrasado no desenvolvimento ".
Fato simples: isso sempre acontecerá, não apenas na programação / desenvolvimento de software, mas em todas as esferas da vida. O mundo seria simplesmente um lugar muito chato e muito diferente se as pessoas nunca mudassem de idéia, nunca se adaptassem, nunca abordassem a mudança. As pessoas tendem a olhar para o que recebem e melhorá-lo. Você não faz a mesma coisa com o seu código? Se eu tiver um bloco de código com o qual não estou feliz (é ineficiente, confuso), eu o melhorarei. (O sistema operacional se queixa de mim? ... às vezes, se estou usando um sistema operacional sem nome, mas geralmente não)
Como programadores, precisamos aproveitar oportunidades para melhorar as coisas e não ficar deprimidos ou irritados com eles. Aproveite a oportunidade para conversar com as pessoas, melhorar seu estilo, melhorar sua ética de trabalho, abordar as coisas com a mente aberta, esforçar-se para ser melhor do que era ontem. Avance na sua carreira e não se acomode com muita facilidade.
Entendo que nem todos concordam com esta resposta, mas acho importante que as respostas a essa pergunta cubram uma perspectiva mais ampla.