> I will give a lower price to a customer who I believe to have good character, and I would hike up the price if he is a demanding or difficult to deal with type
Please don't. Your beliefs don't matter. Even the coolest guy can come out as a PITA or a scammer. Or even if he's cool, he can have partners who will make your life a living hell. In the end, it's all about the money. Just charge what you're worth, so you don't regret it.
Don't be afraid of losing jobs because you charge too much. When I first started on oDesk I charged $10 an hour, because I didn't want to put people off. Then I realized that kids in my neighbourhood make more walking dogs. Since then I've put my rates up considerably, and even though I still get nervous when talking money, I've never had a client say it's too much.
Charging more lets people know you're serious. Low paying customers typically ask for way more "can you just" tasks, like changing the font colour a dozen times or moving something "just a little to to right". You don't call your lawyer to change the typeface on your legal letters.
+1. In fact in sites like odesk, you put people off by charging too little (putting you in the same league with guys no one wants to hire at any price whatever low).
You are right about the "he can have partners who will make your life a living hell" part. My judgement might be incorrect, and I can't predict what will happen next as well (e.g. the project got taken over by someone).
There is no point in charging less just because someone is easy to work with. If he's really easy to work with, he will profit more from the productive cooperation than from your discount - you will be more focused on quality for the same money and he will get a better product, win win.
Sometimes I truly wanted to tell the customer, "give me the money and trust me". But I guess trust is not easy to come by, especially with new customers.
IMHO, Nothing like agile for freelancing.. every week the customer gets a solid deliverable, every week I get a real paycheck.
If at any time the customer does not like my work or I don't like the customer, we can always part ways, what is done is all 100% his, (documentation, source code etc)
I wish the customers at this part of the world (Malaysia) are sophisticated enough to accept the concept of "time & material". Most of them will refuse to pay if they are not satisfied with the work (in regardless of the completeness); and a partially completed work is of no value to a typical customer (especially non-IT customers).
Trust is a key issue, if we don't trust each other we are already in trouble. Trust goes both ways, so that is why I charge at the end of an iteration with no money advance at all.
If you are charging per iteration, feature creep is great! (joke,joke)
The truth is that I do a lot of guiding for the customer to protect them from bad choices.
When requested to do something I think is wrong, a favorite response of mine is:
What you are asking me to do is like saying: "please hit my finger with a hammer". that said, it is your finger and your hammer , so I'll do what you decide.
What I usually do is say: Projects similar to what you are asking for, have taken me about xxx hours of work.. but our mileage may vary. If you don't like my progress the first week, you can always fire me.
Or.. for xx hours I can go as far as I can, then you can judge if it is worth it.
My rate is high, but I usually over deliver per hour worked, so it is a good deal for someone who has already wasted money with "cheap" developers.
The key is trust and communication, I do spend a lot of time talking with customers to make sure that we understand each other (I charge for talk time, texts are mostly free)
The upfront depends on the project as well; some projects have less, some have more; depends on the size and the number of milestones. If you have, say, a project of $10k with 4 milestones, I would never do a 30/70 payment. Rather 30/10/10/20/30 or something.
Also, you can use the popular agile approach which is popular; in that case you define stories per sprint (which in smaller projects are a week usually) and every monday morning you agree with the client upon the stories to be done that week. When you finished the last story, the client needs to pay the price for that week and go on with the next week. This keeps both sides alert and doesn't allow for slacking on both sides. It can go very wrong if you agree to too much, then you get the dark side of agile which means you'll be working every weekend 24 hours/day to make that monday morning.
I found it interesting that he barely touched what I feel is the most important part of freelancing: marketing. Yes, right now you can name your price if you are a good developer, but how do you show that, and how do you evaluate projects? (I know he touched on what kind of clients to keep.)
When I freelanced, I evaluated clients on three criteria:
* had I worked with them in the past?
* did I know anyone who had worked with them in the past?
* everyone else
If I trusted them or people who had worked with them, it made the engagement easier all around (though you still need a contract!).
As far as finding new clients, I relied on word of mouth, which probably didn't lead to as many opportunities as would have occurred if I was more active in various communities, but I was ok with that at the time.
The only marketing I did is word of mouth: friends & family, those are usually the good paymaster due to our "relationship". Yup, returning customers are the best.
I didn't try any elance stuff, because I felt it's a race to the bottom price with programmers from India.
Same comment I put on the blog, but keen to hear HN responses. Why do so many freelancers gravitate to small(er) clients? It seems to lead to direct competition with platforms such as freelancer.com, odesk, elance, etc which is impossible for a local freelancer.
Clients like digital and creative agencies, funded startups and corporates (managers that don't have access to internal dev resources, but still have dev needs). They use freelancers and they don't come with a lot of issues small clients have.
Interested to hear from freelancers as to how and why they work for smaller clients.
Maybe because you spread the risk? Many small will allow you to do a lot of small projects ; when a client leaves it doesn't matter, while if you have a bigger client (who will have bigger wishes), you are usually suddenly stuck for month in a project and if that client leaves you are done?
That was my reasoning at least when I was a freelancer; that's why I didn't continue doing that and started hiring people quite soon; the risk of losing a big client is too stressful. YOU depend on it; you feel it immediately. Funded startups; I would never do that anymore as freelancer. I had a few; cases in point here. Working on a project for 3-4 months only to see the funding had run out and the company was broke => no money. Funded startups are horrible to work with/for if you cannot peek into their reserves and financial situation. They will play nice weather until the very last moment (they have to of course) when you receive an official letter that they are gone and you can call some lawyer to get in line for your money (which you will never get).
If you don't want to 'work from home', I would say corporates (at least in north EU) are your very best bet at stability. I know guys who have held stable freelance jobs for decades at huge corporations. It's like having a job though, so I don't really see the point.
I guess because if you have one large enough client they become your defacto employer but without any of the benefits of salaried employment.
It can also make you complacent so you won't bother marketing yourself so much. That means that if they do decide to ditch you then you are in trouble.
Perhaps the answer is to provide smaller niche services (performance optimisation , pen-testing, UX design) to larger clients and charging a higher hourly rate so you don't end up becoming their general purpose code monkey.
I just like small projects because I get bored quickly. Three months is about ideal. Projects for larger clients also have a tendency to go nowhere, that is they never make it into production. It is easier to get good rates from larger clients, though.
Couldn't agree more, part of the fun of Freelance work for me is getting to work on a range of projects with a range of differing technologies. Might just be my attention span but more than three - five months full time on a project which isn't my own and start getting itchy feet.
Having more smaller clients means that my status as a freelancer increases due to there being more people who can vouch for me. There also is the people factor. I like to work with startups and help get their MVPs out of the door. Which means that I'm not only coding, but helping people follow their dreams. You don't get that big personal sense of accompishment when some big-Co. is succesful with something that you helped build. When the smaller client hits it big with your code it is a very good feeling. Nothing like helping the little guy get his dreams.
Another point is that smaller clients are more straightforward with me. They just want to get their project done. Big-Co. usually has a list of stupid requirements and proposals that make me waste too much time. In my experience, smaller clients have always paid in time. Big-Co, not so much.
It's easy to get started with smaller clients, with more manageable scope (for newbie) and to built up the portfolios.
Many local clients (especially from non-IT companies) are not sophisticated enough to use services such as elance, thus they are fairly happy to found a programmer which they could work with locally (my customer still expect face-to-face communication).
Eventually I did landed on a semi-government job, where they pay is probably 3x more lucrative than smaller clients, but longer duration + more politics + more stress to handle the human side of things.
The worst is "uneducated" clients, meaning they don't know how custom software development works, and asking why you charge 10x more than off-the-shelve accounting software and still deliver a product "full of bugs" (you should have tested vigorously and solve all the bugs, right?).
It is just hard to get freelance work from large employers, IMHO is just not on their comfort area.
I came from years as a contractor for large Fortune 100's who pretty much beg me to come back as a contractor but won't/can't send me projects as a remote freelancer. It is to radical for their business culture.
I will never try doing anything without a 3rd party technically guaranteing me payments (like the odesk.com which bills people automatically per-screenshot using money pre-blocked from their CCs - absolutely no excuse can exist to avoid payment).
> I will give a lower price to a customer who I believe to have good character, and I would hike up the price if he is a demanding or difficult to deal with type
Please don't. Your beliefs don't matter. Even the coolest guy can come out as a PITA or a scammer. Or even if he's cool, he can have partners who will make your life a living hell. In the end, it's all about the money. Just charge what you're worth, so you don't regret it.