Hi Pepe,
The subject is so complicated, I don't think a good answer is possible without referring you to other sources. (e.g., the book, "Eric Sink on the Business of Software" is a good one.)
With that said, I've been doing this for a few years. Here's some stuff to think about:
* What are your competitors charging? Adjust your prices to how much better or worse you are than them. For example, if you're 50% better, charge 50% more. It's not perfect, but it's a reasonable place to start.
* Almost everyone equates price with quality. Cheap = bad. Expensive = good. If you undercut your competitors because you really need the money, your customer is going to second-guess everything you do and expect you to work weekends and nights. If you're expensive, they'll let you work in peace and when you make suggestions, they'll actually listen to you.
* Some corporations have rules that require them to take a discount if one is available. You can use that to your advantage by offering a discount if they pay in advance. Most of my bids are paid for in advance. (I offer 15% off.)
* Per hour rates are scary for clients. What's to stop you from taking your time? It's like a blank check.
* A flat price is much easier to get accepted. It's straightforward. But it's dangerous for you. You're going to have to really protect yourself. Specify exactly what is going to be done for that price. Don't be vague about anything. Because in the middle of the project, when they ask for something not in the original agreement, you're going to have to be firm from the start. Say something like, "That's a great idea. But I'm going to have to run some numbers and get back to you on what it's going to cost." If you give them anything free, they'll ask for something else, then something else, then something else, then the next thing. And there's going to be hurt feelings when you finally put your foot down. You can avoid all of that by being firm the first time they ask, then they'll respect you as a professional.
Good luck!
- Michael Judge