Réponse la plus simple. Je cesserais de coder tout type, jusqu'à ce qu'il ait une spécification finale pour exactement ce qu'il / elle veut pour l'instant.
Ensuite, ils doivent donner la priorité à cette liste de fonctionnalités, etc., pour confirmer quels éléments doivent être disponibles à l’heure actuelle, et lesquels peuvent être effectués ultérieurement ....
Utilisez vos expériences pour déterminer le temps et le coût de chaque fonction, puis dites-leur que s’ils le souhaitent, cela prendra x temps et argent.
Vous traitez avec le grand crime du glissement de la portée des fonctionnalités, et ils continueront à ajouter des fonctionnalités sans fin, jusqu'à ce que rien ne soit fait ou soit fait si mal.
Dites-leur une fois que vous avez une liste finale, que vous apporterez les modifications futures, comme ils préfèrent, mais que vous devez vous concentrer sur les 15/20 premiers qu’ils doivent avoir en ce moment.
Ensuite, en fonction du délai d'achèvement, dites-leur qu'après sa publication, vous serez alors ouvert à la discussion / à la réflexion sur la prochaine version.
Une fois que la décision finale a été prise quant à ce qui doit être fait pour la version actuelle, toutes les discussions / idées / suggestions doivent être arrêtées à 100%.
S'il a ses idées à l'infini, dites-lui de les noter dans la liste des fonctionnalités de la prochaine version et de vous concentrer sur la fourniture des fonctionnalités les plus importantes qu'ils souhaitent pour le moment.
S'ils continuent à perdre votre temps, continuez à changer d'avis. Ensuite, je cesserais juste de travailler sur le projet et sur d’autres projets, jusqu’à ce qu’ils aient finalisé leurs décisions.
C'est difficile à faire, mais le fluage des fonctions est tellement destructeur de temps, d'énergie, de motivation et de lucidité.