Nolo Press has a number of books. I picked Hiring Independant Contractors: The Employer's Legal Guide ISBN 0-87337-367-7 and The Legal Guide for Starting & Running a Small Business ISBN 0-87337-527-0. There are more listed on my reading list at Dave's Recommended Reading. At a minimum, these two books will get you started on the legal issues you'll have to deal with.
Once you've done your reading, there are a number of things you will need to do. Without further ado, here's the list:
- Figure out what you need to survive. That is, figure out what your lowest possible monthly expenses can be without drawing on savings or credit. Make a note of this number, since it's your (post-tax) breakeven, and is the first target you should aim for.
- Figure out what you're going to pay yourself in salary. You may not be able to do this right away, but you should know what the number is. The payroll service from step 5 will want to know this number, and you should base your initial estimate on your minimum monthly needs. If you don't pay yourself salary and your corporation makes money, the IRS will look at you very carefully, and you don't want that kind of attention.
- Incorporate. If you'd like me to refer you to a lawyer who can handle all the details for you (which I strongly recommend -- it's about $500 and all the details are handled for you), drop me a note. You want to do this for a number of reasons, the main one being that it keeps the finances separate, which shields you from liability (somewhat), and keeps the IRS off your back. I'd recommend starting as a Subchapter S Corporation. Once your business is making a profit, you switch to a C-Corp.
- Find a lawyer. If you have a lawyer do the incorporation for you, talk to that lawyer about other work. You'll need legal help at various points, and you'd might as well find someone you'll be comfortable with at this point.
- Set up a corporate checking account. Also get a Corporate Amex card. Don't use either for personal things. This helps keep the finances clear, which your accountant and the IRS will appreciate.
- Get an accountant. You'll probably end up doing much of your bookkeeping yourself, but having an accountant to help you get things set up and to do a quarterly check on your books will save you huge headaches come tax-time.
- Get a payroll service. I went with Paychex. I can refer you to my rep there if you're interested. They charge a fixed fee for printing paychecks and handling all the withholding for 1-5 employees. It's worth it even for a single employee. For larger numbers, it's a HUGE bargain. When you get to the point of wanting health insurance and other benefits, they can handle that as well.
- Buy accounting software. I'm using QuickBooks Pro. I haven't found anything I needed that it can't handle. Note that steps 3 through 7 are deductible business expenses, and you should pay fees from your business account.
- Get on mailing lists that apply to the work you're planning to do. You're going to need to find work somehow. Mailing lists that are targeted are a good way of finding that work. People often post jobs to the lists, and if you often post answers, your name will be familiar to people.
- Look into a web presence. You'll eventually want your own domain name, and you'd might as well start looking into it now. Running servers yourself may not be what you want to do, but maybe it is. Figure that out. If you're looking to have someone else host your site, best.com is good. pair.com also comes highly recommended.
- Get a business "presence". For me, this means I've got an office at home, so I'm using my regular mailing address for business. I have a cell-phone that is strictly business use, though, and all business calls are made from that phone. Again, it's a deductible business expense, so get it in the corporate name to keep the IRS happy. You may want a P.O. Box, as well. Once you've got your corporate Amex card, set up an account with FedEx. You'll need it at some point, and it's a lot easier if you've set things up in advance. You'll also want a stable email address you can put on your business cards. pobox.com offers them for a reasonable rate, as does spamcop.net. ACM also gives you an email address with membership. More on that later.
- Decide on your rates. Typical contract programming rates range from $50 to $200/hour. The low end of that are for things that nearly anyone can handle. The higher end are for rush jobs that require specialized expertise. My base target rate is $75/hour, but I often end up taking less than that. It'll help you in negotiations if you know what your asking price is.
- Get a "standard" contract drawn up that covers things you would like to see in a contract. Many companies have stock contracts, and you'll be stuck with them. Those that don't will want you to provide a contract, and if you don't have one ready, that'll add a delay to getting into the work that actually pays the bills. One thing I have in my contract is a Common Code Clause which basically says that I have a certain amount of library code which I reuse in various projects. This code remains my property. The reason for this is that I want to be able to build up a good code-base that I can reuse in order to complete contracts more quickly. Most companies' contracts make all the work you do for them a Work for hire which means that they own everything. I'm not adverse to Work for hire, but once I explain that letting me keep the rights to my library code means that the work will get done more quickly and be better debugged, few companies have had problems with this clause.
- Do the job: Find Work. Negotiate Payment. Do Work. Get Paid. Pay yourself. Repeat.
Note: most companies pay net-30 to net-60. What this means is that if you bill upon completion of the job, you won't see the money for 30 to 60 days. You're going to have to plan at least two months ahead (for net-30 payment) to keep the cash coming in when you need it.
You'll also be asked to estimate jobs. Remember that even in the best of times, you're going to need to be spending some time keeping the books, hunting down new work, hassling people who are late in paying, etc. I figure that 25% of my time goes to "burden" or non-billable work. This means I don't plan on more than 30 hours of productive work in a week. Some weeks I get more than that in, but I don't PLAN on it when I'm estimating completion times for a job.
- Build up a cushion as quickly as you can. You're going to run into a client who either can't or won't pay you at some point. If you don't have money to cover this contingency, it could well put you out of business, and you don't want that to happen. When I started Polaschek Computing, Inc., I had three months worth of salary in hand. I would strongly recommend having enough money to last six months without seeing a single paycheck. Hopefully it won't come to that, but having only three months' money on hand almost killed my business when I got hit with the double-whammy of one client who couldn't pay and another who took forever to agree on a contract (and then paid net-45 once I did start work).
- Get Insurance. At some point you'll encounter a company that requires you to have Business Liability Insurance. Finding it is tough, since few companies want to handle it for small businesses. You'll need a million dollars in coverage. That should run between $400 and $800 per year. This insurance only covers things like you spilling pop into a client's computers, someone tripping on the steps to your office, or tripping over your briefcase while you're in their office. It does not cover Errors & Omissions, which is a separate policy that is much more expensive. You probably don't need E&O coverage when you're starting out, but once your business is bigger, you'll want to consider it.
- Publicity. In the computer programming biz, there are a few ways to get your name in front of people. Writing technical articles is one way. MacTech is always looking for authors. They don't pay all that well, but you get your name in front of people. If you specialize in a single area, this will get people to think of you as an expert in that area. Publishing shareware (and publicizing that) also gets your name in front of people. If you've got a website, you can publish other things that will draw people in (like I'm doing with this document), and hopefully will draw business. Every little bit helps. It's tough enough to find people to do work that many companies are looking in different ways. Do what you can to make sure they find your name when they're looking.
- Join a professional association. There aren't any good groups for Mac programming, but joining the ACM gets you a permanent email address with them and gets you their newsletter. It looks good for prospective clients and you can get additional information from the ACM.
- Get protection for your data. This includes buying a UPS (I bought mine from TrippLite, but APC also makes good units), doing backups (I use both Zip disks and a CD-R) and taking whatever other measures you think you should do so you don't lose everything to a thunderstorm.
- Figure out a schedule. You're going to be working for yourself, so it can be very tempting to take off when it's a nice day. After all, one of the reasons to work for yourself is the extra freedom it allows you for just that sort of thing. My solution to this is that I wake up about the same time as I always have, eat breakfast, check my email, take a shower, dress for work, and then the workday starts. I don't try and do work before I'm dressed for work, but once I am, I'm on the job. At the end of the day, supper is the sign for me that the day is done. When I get hungry for supper, it's time to call it a day. During the work-day part of the day, I try and avoid doing personal things and stick to the job. There are always exceptions, but the closer you can stick to a regular schedule, the easier it will be to keep your work and play separated.
- guru.com, especially their A Beginner's Guide to Launching a Guru Career guide.
- The Small Business Administration
- Nolo Press
- SCORE - The "Service Corps Of Retired Exectuives"