Condivido il tuo dolore....
La cattiva notizia è che, a seconda del tipo di clienti con cui hai a che fare, potrebbe trattarsi di affari come al solito.
Un problema generale comune è fondamentalmente che i clienti non sanno cosa vogliono . Di solito sanno cosa vogliono raggiungere, in termini di un obiettivo aziendale, ma spesso non hanno idea di come dovrebbe apparire in termini di soluzione software. Quindi in molti casi ti ritroverai in questo ciclo iterativo in cui un progetto rimbalza avanti e indietro per cinque volte tanto quanto la stima iniziale è stata, perché il cliente continua a cambiare idea e desidera che la soluzione sia ottimizzata e ri-ottimizzata. E sì, non è insolito che il risultato finale si trasformi in qualcosa di completamente diverso da quello che sembrava l'obiettivo iniziale.
Ho avuto un esempio epico di ciò accadere un paio d'anni fa - un progetto che inizialmente impiegava 10 settimane per codificare, trasformato in una reindirizzamento di 15 mesi. In quel caso, è stato principalmente perché diversi manager e dipartimenti dell'azienda cliente volevano cose diverse, quindi hanno continuato a rispedire il lavoro, per essere ottimizzato e ri-ottimizzato (il nostro software è basato su abbonamento e questo era un cliente importante, quindi questo non è stata una pelle finanziaria sulla nostra schiena - solo un grande fastidio tecnico davvero).
Quindi sostanzialmente il mio consiglio è questo:
Se questo è il modo in cui il tuo settore particolare e questi clienti sono (è un grande IF), allora abituati. Pensalo come un lavoro agile e orientato alla manutenzione (è così che il mio attuale concerto è più o meno). :)
Se questo non è il modo in cui le cose devono essere fatte e stai prendendo la colpa per i lunghi inversione di tendenza, allora parla con i tuoi capi. Spiega loro che ci sono problemi di comunicazione e che le specifiche che ti arrivano dai clienti non sono abbastanza chiare per te per implementare la soluzione desiderata. Non vuoi trovarti nella situazione in cui stai prendendo la colpa per non dare ai clienti ciò che vogliono, se non stai ottenendo tutte le informazioni necessarie per dare loro ciò che vogliono.