My proposition to our clients at Real Life Design is that we ask for 'general approval' on designs in stages. Everything is based on user stories and personas - so designs must be fit for purpose, and we bear that in mind before we start. When we have our first design ideas ready, we present some style tiles which give an overview of what we're thinking. We will discuss the ideas together, and refine them accordingly. Once the client has agreed (verbally) to the general design concepts then that's enough for us to get going on the basic site build. Once the most basic areas of the site are in place we then start to theme. We code in SCSS (SASS) which allows us to have the flexibility to address any colour, font or general issues which may arise later.
Once we're far enough along with development to open things up, we then present the site in its 'in progress' state to ensure that the client is still on board with the ideas. This time, they can interact with the elements and see how they play off of one another on screen. Again, discussion is encouraged at this stage, and we decide together if we need to refine anything further or proceed as we are. We still sign no paperwork. We place trust in, and involve our clients at each stage which creates a strong feeling of investment in the design from both parties. We work in agile 'iterations' so that we can demo like this at intervals, so the client isn't 'shut outside' in the dark while we work, wondering what will be delivered and whether it'll meet their requirements. So you see - it's a team effort.
And, once the site is completed and ready to go live, we review again and carry out user acceptance testing. We invite fresh eyes to the table who have not seen the site yet and we discuss what is working and what isn't and from here we make the tweaks necessary to push the site live. This time we need to literally forget EVERYTHING that has gone before, and concentrate on putting ourselves in the mind of the person or people who are going to use this site. Does it work? The most important thing is involvement from both sides throughout, and to continue moving forward. Don't dwell on paddings and margins and shades of colour. Get the thing to the final stages because these are things that aren't costly to change at the end, or even after launch so you get your site out there as a 'minimum viable product', returning on investment asap (that's providing you've written your code efficiently and via a pre-processor as opposed to in CSS directly of course - but that's just for the geeks among you!).
Sounds great doesn't it? It is. Though it's not without its pitfalls. Discussion sometimes means challenge, conflict, and disagreement. And that's healthy and nothing to be scared of. But to avoid being walked all over (on either side!) - always discuss the process up front with the client so they're ready for this. Be sure to talk about the benefits of having this open relationship and working as a team - but remember you can still set boundaries. It's okay to discuss the kinds of changes that are in scope and those that aren't. Be honest about which changes will take more effort, and those which will take less. Discuss and challenge the impact of every change, and whether it's key to fulfilling the 'minimum viable product' brief. And though it seems informal, there are important decisions to be made at every juncture, so if you want an efficient and cost effective project, these shouldn't be taken lightly. A complete re-design last minute is not going to be in anyone's interests, but changing a couple of images or a colour isn't going to be the end of the world.