Dans votre contrat, spécifiez un taux horaire et gardez une trace de votre temps. Lorsque vous donnez le prix à votre client, précisez qu'il s'agit d'une estimation et que le résultat réel peut être inférieur ou supérieur.
Tenez le client au courant des progrès et, lorsqu'il fait inévitablement des suggestions, vous pouvez simplement lui dire le temps qu'il vous faudra (si le changement dépasse les spécifications d'origine) et il peut décider si le changement en vaut la peine. Par conséquent, seuls les changements importants pour lui seront ajoutés.
Je voudrais personnellement couvrir les bogues acceptables par rapport aux support inacceptables (support payant par rapport au support gratuit) dans le contrat, et ainsi vous aurez au moins un élément écrit dès le départ. Il se demandera sans aucun doute pourquoi vous devriez avoir besoin de cette clause, alors soyez franc et expliquez que si une nouvelle mise à jour du système d'exploitation, qui casse quelque chose, n'est pas une assistance gratuite. Toutefois, les bogues dans votre code conformément à la spécification d'origine sur les plates-formes spécifiées seraient couverts.
Cependant, je devrais mentionner que je n'ai fait que du travail informatique indépendant plutôt que de la programmation. Cela pourrait éventuellement effrayer les clients, mais assurez-vous simplement que votre travail se vend, soyez plus professionnel, plus sociable et plus serviable que le reste, et expliquez clairement les raisons pour lesquelles vous avez un contrat plus strict.
En outre, un client qui n'acceptera pas cette clause est très probablement un mauvais client.