The more specific you are the less problems will appear.
What seems obvious for you might seem very different to you client. Even if there is something about fonts, text and the number of items on a specific area, you should plan ahead and describe it in details. You should firstly write good specifications for the project. A good specification is a document that answers absolutely all possible questions. It could seem impossible to take into account everything at the first glance. But you have to make it. The good news is you have an exhaustive set of tasks at the inception phase. The bad news is you could work a lot gathering the necessary details and consult with the client to find the goals and solution, after which the client will change his mind and abandon the project, or simply use this specifications to shop around a better price for the project that now has a shape. To avoid this- you should make a contract before you start designing the specifications, or consider this phase as a separate one and charge it.
Do not deviate from your path.
The path was established at the specifications phase. You designed the project and estimated in terms of time and money. You could use different pricing methods like rate/hour or rate/task or rate per project – the last one is very tricky because you have to be very experienced at that. But the point in not deviating from your path is not accepting small or appealingly easy changes. You could thing – “Well, if it is really easy I could satisfy the client in 5 more minutes”, but trust us – you won’t. You should always log the changes, document them, re-estimate the work and make a new contract or a simply add a new page to the first contract. Make sure the client properly understand this and agrees on these scheme of changes. It seems clear that the client risks to run out of the budget, but on the other hand – he needs something worth a better price.
Deliver on time
If you think you will manage to deliver the work in 7 weeks for example, but there is still something undiscovered or you are still dependent on some actions of the client like some new details – just consider the work will be finished in 7 week from the date you have cleared everything or received those new details. This is to inform the client that he is responsible for the final delivery date too. Otherwise you alone will be responsible for the faults with deadlines.
The goal of this post is to protect the developer’s team, but this doesn’t mean it’s to the detriment of the client, as very often the client can be his own worst enemy. Be aware that it is not possible to make a project in its perfect state. The scope is to get the things done and achieve the goals, after which there is room for improvements and upgrades.