Há um famoso ditado militar, atribuído a Helmut von Moltke: "Nenhum plano de batalha sobrevive ao contato com o inimigo". Na mesma linha, eu não acho que é possível fazer uma especificação que não tenha que ser mudada - a não ser que você possa prever o futuro e ler as mentes das partes interessadas (mesmo assim elas podem não ter ainda decidido, mesmo se eles afirmam que fizeram). Sugiro, em vez disso, abordá-lo de várias maneiras:
- Faça uma distinção clara sobre o que pode ser mudado e o que não pode. Comunique-o claramente às partes interessadas, faça-as explicitamente assinar coisas imutáveis o mais rápido possível.
- Prepare a mudança antecipadamente. Use metodologias de código que permitem alterar as partes mutáveis mais facilmente, investir em configurabilidade, encapsulamento e limpar protocolos que permitiriam que as peças fossem alteradas e substituídas de forma independente.
- Fale frequentemente com as partes interessadas, solicite feedback e aprovação. Isso os manteria em sincronia e os evitaria alegando "oh, não é isso que queríamos" quando é tarde demais. Como observado em outras respostas, as metodologias ágeis e os mini-lançamentos frequentes ajudariam você com isso.
- Coloque na agenda o tempo para acomodar as mudanças inevitáveis. Não tenha medo de dizer "vamos precisar de mais tempo" cedo se você acha que faria - se o cronograma que você está dando é irrealista, é melhor saber (e você está no registro dizendo isso) no início do que em o fim.
- Se as alterações forem muito extensas e ameaçarem o prazo - retroceda e diga algo como "essa mudança é possível, mas vai empurrar o prazo por X vezes, faça sua escolha".
- Faça um processo formal de solicitação de alterações, priorizando mudanças e atribuindo alterações a versões ou releases. Se você pudesse dizer às pessoas "Eu não posso fazer isso neste lançamento, mas ficarei feliz em colocá-lo na agenda para o próximo", é muito melhor do que dizer-lhes "você está muito atrasado, sua mudança não pode entrar , adeus "e faria deles seu amigo - eles ficariam felizes por você liberar a tempo para que você pudesse se libertar mais cedo para chegar ao próximo lançamento que terá a mudança deles - e não seu inimigo.