Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm trying to get out of the Corporate game and go indie. I've always prided myself on being a jack of all trades so I think it suits me.

If you're a freelancer or independent, what's the best advice you could give me as I start down this road?

share|improve this question

closed as not constructive by gnat, ChrisF Feb 18 '13 at 12:03

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Are you going freelance on your own? Are you going to do all the work yourself, or will you have partners/subordinates? –  Rice Flour Cookies Jun 28 '11 at 13:54
    
I'm going solo. I have a few people that I may contact with for stuff like custom design, but for now it's a one-man show. –  James Jun 28 '11 at 16:58
add comment

3 Answers

up vote 51 down vote accepted
  1. Get everything in writing upfront.
  2. Never do anything for free. Sets a bad precedent for you and your peers. It destroys the local market.
  3. If a customer misses a payment, even one, stop work until they get current. Be professional and un-emotional but be firm. They are already into you for 30 days of work or more, don't dig a deeper hole. You aren't a bank, you are lending them money interest free at this point.
  4. Bill customers that miss payments, interest on the time the payment was late. Send as many invoices with LATE on them as you think you need to, don't be shy about the money.
  5. Get everything in writing upfront.
  6. If a potential customer won't agree to your terms, what makes you think they will be reliable and easy to work with on their terms. Be prepared to professionally walk away.
  7. Be willing to turn down work that won't be profitable. Or worse will cost you money or time being profitable.
  8. Never work on a break even project thinking you will make it up on the next the customer gives. You won't, you have set a precedent for them to expect to be able to low ball you.
  9. Get everything in writing upfront.
  10. Cheap customers are always cheap customers and will only get cheaper, more demanding and suck up all your time.
  11. Learn what a change request is, put this in your contract that they cost money and they push the schedule. Bill at least 25% more for change requests to make sure the client really needs them, just 1 or 2 change requests can sap all your profit off a single project.
  12. Learn to do Agile Methodologies, SCRUM in particular is a good way to manage customers, especially the ones that become difficult.
  13. Get everything in writing upfront.
  14. Never deliver anything sub-par, even if it is going to be late, crap on time is still crap. Crap gets you a worse reputation than late and quality.
  15. Your reputation is everything, it isn't what you know or do, it is what people say about you.
  16. Plan on networking at every user group meeting and the like to get the good paying jobs.
  17. Get everything in writing upfront.
  18. Get paid for every hour you work, don't be shy about the money, watch this video.
  19. Professional relationships are not you bending over backwards to please irrational customers with unrealistic expectations, they are about respect, your customer should see you as an expert and a professional, not a warm body filling a chair costing them money, don't take those jobs there is no profit in them.
  20. Breaking your own rules, even once sets a precedent to the customer that the other rules can be bent or broken, this leads to misery and loss of profits.
  21. Get everything in writing upfront.
  22. Fixed price jobs aren't the fixed price you will make, they are usually the amount that you will lose X 2.
  23. Spend more time learning about marketing and sales techniques and effective communication patterns that technology. As a consultant you should already be an expert in what you do. The other things you need to be an expert in now as well.
  24. Networking is important so you can delegate some things you might not be an expert in to a sub-contractor friend or associate, or at least lean on them for advice and education. You won't know everything but will be expected too.
  25. Charge enough for you time, your customers are not doing you a favor by having you work for them, you are doing them a favor by selling them your time and expertise. Low balling never helps you or your peers or the market.
  26. No matter how good the relationship with the customer is get everything in writing up front and never break this rule or do anything by word of mouth.
  27. Never work for friends, they won't be your friends anymore, especially not for free
  28. Never work for family either, see above.
  29. Never do anything free.
share|improve this answer
4  
+1: I wish I could give this +100. Also, I wish I'd started doing all this stuff 20 years ago, instead of 10. –  Bob Murphy Jun 28 '11 at 5:15
    
Can you explain how you use SCRUM to mange your customers? –  LennyProgrammers Jun 28 '11 at 14:05
3  
@Lenny222 meet with your customers at the beginning of a Sprint, set a deliverable for the next 2 weeks. Deliver that, demo it, and get them to sign off that you completed the work. Bill them immediately Having a Backlog lets them decide what is most important and gives you hard deliverables that you can get signed off on and bill for. It gives your clients complete transparency and manages expectations of what is being done and when it will be delivered. It also gives you a documented history if you need to take legal action if they don't pay. Standard SCRUM stuff. –  Jarrod Roberson Jun 28 '11 at 14:48
1  
+1 for repeating to get everything in writing over and over again. –  Piotr Kalinowski Jun 28 '11 at 15:11
1  
I am tattooing this to my arm :P Thanks for the great tips ! –  Borat Sagdiyev May 11 at 4:09
show 1 more comment

Everything Jarrod Roberson said is spot-on. A few more suggestions:

  1. I would amend his #2 to never do anything for a business customer for free. If you want to contribute time to charity or open-source, that's cool.
  2. But also, never give anybody a seriously cut rate. Keep business in your normal range, and do charity for free. If somebody is paying you half-price, they'll expect full-price service and won't appreciate the favor you're doing.
  3. Always start looking for your next gig before your current one ends. Out-of-work freelancers can't collect unemployment.
  4. If you hit it big on a project, sock it away. Don't just party down. And put the money someplace where it's hard to get to. You'll appreciate it the next time you're between contracts.
  5. It's better to have a few part-time clients than one giant one who can leave you high and dry.
  6. You don't get paid for looking for work, so cultivate good long-term clients.
  7. Learn to read contracts and NDAs, and don't be afraid to demand modifications.
  8. You should insist on signing an NDA before you go very far with anybody.
  9. You should have a standard mutual NDA, and a standard contract, that you can fill in and send to people at a moment's notice.
  10. Be willing to fire clients - even the ones who pay okay but are more annoying than you want to deal with. Life is too short to spend much of it dealing with jerks.
  11. Get the best tools you can afford - software, computers, etc. It impresses the living daylights out of your clients when you have better gear than they do, and can make you more productive and justify a higher rate.
  12. Do what it takes to learn new technologies as fast as you need to. Amazon is your friend.
  13. Be very, very careful about fixed-price contracts. Actually, I've quit doing them, and made way more money since I started only doing hourly work. I also don't have to squabble with clients about why "one little change" is actually going to cost them something.
  14. Keep balance in your life. I've had periods when I took on too much work, and regretted it. Get exercise, hang with your family and friends, etc. When you're on your deathbed, that will be far better to look back on than doing one more contract.
  15. Getting paid now is better than getting paid later. I have a FedEx account and ask my clients to send me checks using my account rather than by mail, where they can get lost. If you can get direct deposit or wire transfers, that's even better.
  16. Tie your rate to your payment terms. If someone wants you to drop your rate $5 an hour, tell them you'll do it if they'll pay net 10 instead of net 30. If they want longer terms, your rate goes up. If they complain, explain that you're not a bank but you can refer them to one if they need to borrow money.
  17. Find a really experienced business lawyer in your area, and see if they'll give you a free half-hour "meet and greet". That way, if you need one, you'll have an established relationship.

Here are two little jewels I got from a great, defunct magazine called "Midnight Engineering":

  • On a new contract, always finish some tangible deliverable within the first two weeks, or earlier if possible. It can be code, or a design paper, or just about anything. But it gives your client the idea you're hitting the ground running.
  • If you're working onsite, always dress either a little better, or a little worse, than the people that work there. That turns you from a contractor into a consultant.

And here is my cardinal rule of business, from a classic '70s business book called "Winning Through Intimidation":

  • If a negotiation turns adversarial, the person who most needs the deal will lose, and the person who can walk away from the deal first will win. So always leave yourself in a position where you can walk away first.

A few more suggestions...

  1. Keep in frequent contact with your customers - they like to know where their money is going. How much depends on the customer, but I'd say a bare minimum is an email every couple of days and a phone call once a week. Even if you don't say much other than "I'm doing exactly what we discussed, and things are going great", it will give them the warm fuzzies.
  2. Learn what your weaknesses are and compensate for them. For instance, one of my weaknesses is to hunker down with code and not communicate. So I have to set myself calendar reminders to do it. Speaking of which...
  3. Keeping organized about priorities is a big challenge, and automated reminders are your friend.
  4. Find things that for you to eliminate distractions. I find having a home office essential. When I'm in there, I'm working. When I'm goofing around, I go somewhere else. I also have a pair of noise-canceling headphones for when I really need to focus and there's distracting noise.
  5. If you haven't, check out the Pomodoro System to help you keep focus and still take breaks. I've been using something similar to that I devised myself for many years.
  6. Set up your own source control and bug tracking systems. On the latter, I find Redmine works great, is easy to set up, and it's free. You probably won't need them for projects where the client provides them, but in my experience, at least half of your clients won't.
share|improve this answer
add comment

@Bob and @Jarrod already provide excellent and complete answers.

To stress one point even more: Make sure you charge enough. Don't be fooled by huge-looking hourly rates, often many, many times what one would make in a normal job.

Remember that all this needs to come out of your pocket:

  • Computer hardware expenses (A computer every x years, a printer every y years...)
  • A pension plan or whatever else you do for retirement provisions
  • Health insurance
  • Other insurances
  • Office equipment - from pens to printer ink
  • A car or other ways to travel - to see a client, to work on site, etc.
  • Meals
  • Tax counsel (or lots of time if you plan to do your taxes yourself)
  • Legal counsel (at some point, you will need it in some shape or form)
  • If you have an office: Everyday housekeeping equipment - cleaning materials, kitchen stuff, coffee, toilet paper... Office furniture, etc.

what is left after this, and after taxes, will be what you, personally, make. It will be much less than the hourly rate suggests.

I've always liked the following, very primitive but effective way of finding out some basic numbers:

  • Estimate what you will have in business expenses over one year - office rent, hardware, etc.

  • Calculate how many hours you will be willing and able to work over one year.

  • Subtract from the number of hours those hours that you will do unpaid work - administration, finding new clients, etc.

  • Divide the business expenses by the number of hours you will be able to do paid work. The result is how much you need to charge for you to break even. The result is going to be a high number already.

  • Add to the yearly total expenses the amount of money you want to earn (before taxes), and do the division again - that way, you can find out what hourly rate you need to charge in order to live.

(Of course, this calculation is naive in that it assumes you will always have paid work, which may not be the case - you'll have to adjust for that.)

share|improve this answer
    
So, you're implying that if you're working on your own, it is necessary to rent an office? –  Rice Flour Cookies Jun 28 '11 at 14:46
    
@Rice no, where do you see an implication like that? –  Pekka 웃 Jun 28 '11 at 14:47
    
@Jarrod yes, but that has nothing with actually working for free for a client. It is to highlight how much of the hourly rate is eaten by expenses one doesn't have as an employee. I'll clarify (Edit: You beat me to it, the edit is great.) –  Pekka 웃 Jun 28 '11 at 14:53
    
+1, especially for health insurance. In the US, that will kill you. If you can get it, use COBRA from your last full time job - it's hard to get better than that on your own, unless you're very young and have never been to the doctor for even a sniffle. –  Bob Murphy Jun 28 '11 at 15:14
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.