I am a starting freelancer in the webdevelopment sector. I focus on both personal or one-man business full websites and websites for advanced users for which I write plugins or add features (but don't build the whole site).
I would like to know if there is any rule of thumb for determining whether you should use a fixed-price or a price per hour for these clients. For now, I'm using fixed prices because it adds clarity for both parties.
For the second type, fixed prices are fine. There is a clear functional design and I can estimate the time I'd need for it. For the client, a fixed price is good: they get what they want and they know how much it costs, unlike employees of which you don't know what you get for how much.
The first type doesn't have any knowledge of programming, most of the time, and doesn't know how much time the development of the product will take. A price per hour may seem useless to them. So if I'd use a price per hour, I'd have to give my clients at least a rough estimate of the time I'd need. This isn't a major problem, I can do that.
What I'm more worried about is that, since those clients don't have knowledge of the subject, they cannot provide me with a good functional design. Most of the time it's more like "can you make that somewhat lighter" and such. I'm fine with all these minor tweaks, but it takes a lot time, especially contact-with-customer time. Therefore, I would be much happier to use a price per hour. However, that might destroy the good relationship with the client, as he would have in his mind that every minute costs money.
A solution would be to make a functional design or layout before starting developing, and use a fixed price. However, I don't think I want that. For these clients, it's very hard to make up a nice layout without actually seeing it on the website. This would result in bad products.
So, how can I avoid this problem? Should I use a fixed price or price per hour for these clients and what should I do to deliver a good product and keep a good relationship with the client?