Nel contratto, specifica una tariffa oraria e tieni traccia del tuo tempo. Quando dai al cliente il prezzo, specifica che si tratta di una stima e il risultato effettivo potrebbe essere inferiore o superiore.
Mantieni il cliente aggiornato sui progressi e quando inventa inevitabilmente dei suggerimenti, puoi semplicemente dirgli il tempo che ci vorrà (se il cambiamento è al di fuori delle specifiche originali) e lui può decidere se il cambiamento vale la pena . Pertanto verranno aggiunte solo modifiche importanti per lui.
Personalmente coprirò i bug accettabili vs inaccettabili (supporto pagato vs supporto gratuito) nel contratto, e in questo modo almeno avrai qualcosa da scrivere dall'inizio. Si chiederà indubbiamente perché si dovrebbe aver bisogno di quella clausola, quindi sii in anticipo e spiega che se viene fuori un nuovo aggiornamento del sistema operativo che rompe qualcosa, non è un supporto gratuito. Tuttavia, i bug nel codice in base alle specifiche originali sulle piattaforme specificate sarebbero coperti.
Tuttavia, dovrei menzionare che ho fatto solo il lavoro IT freelance piuttosto che la programmazione. Questo potrebbe spaventare i clienti, ma assicurati che il tuo lavoro si venda da solo, sia più professionale, estroverso e utile rispetto agli altri, ed essere disponibile con le tue ragioni per avere un contratto più stretto.
Inoltre, un client che non accetta quella clausola è molto probabilmente un cattivo cliente.