Resposta mais simples. Eu pararia de codificar qualquer tipo, até que ele tenha uma especificação final para exatamente o que ele / ela quer a partir de agora.
Em seguida, eles precisam priorizar essa lista de recursos, etc., para confirmar quais itens devem ter agora e quais podem ser feitos posteriormente ...
Usando suas experiências para determinar qual é o tempo / custo de cada recurso e, em seguida, diga a eles, se eles querem isso, levará x quantidade de tempo e dinheiro.
Você está lidando com o grande crime de escopo de recursos, e eles continuarão adicionando recursos sem parar, até que nada seja feito ou feito tão mal.
Diga a eles que, depois de ter uma lista final, fará modificações futuras, como preferirem, mas precisará se concentrar nos 15/20 principais que eles devem ter no momento.
Depois, com base no tempo de conclusão, diga a eles que, após o lançamento, você estará aberto para discutir / debater a próxima versão.
Uma vez tomada a decisão final sobre o que deve ser feito para a versão atual, todas as discussões / idéias / sugestões devem ser interrompidas 100%.
Se ele receber as idéias sem parar, peça que as anote, na lista de recursos da próxima versão, e permita que você se concentre em fornecer os recursos mais importantes que eles desejam no momento.
Se eles continuarem a desperdiçar seu tempo, continue mudando de idéia. Então eu simplesmente pararia de trabalhar no projeto e trabalhar em outros projetos, até que eles finalizem suas decisões.
É difícil de fazer, mas a fluência no escopo dos recursos é tão destrutiva quanto ao tempo, energia, motivação e pensamento claro.