I get asked every now and again about how to operate a services business offering my skills for hire. I’d like to share some lessons learned the hard (and expensive) way primarily earning income from clients for the past 15 yrs. I just got into the MIT Media Lab and am hibernating my business, so this post serves as a reference for others who might consider getting into the consulting game sometime in the future.
General Platitudes, Focus, & Attention
- Contracting is a very tough road. It’s the clearest and fastest way to get cash, but it’s VERY easy to screw up the cash flow.
- If you don’t put 100% of your effort into growing your business and knocking it out of the park for EVERY client, you will have a mediocre business. You will spend a very disproportionate amount of time trying to decide if what you’re doing is what you “should” be doing.
- Focus & attention are your scarcest resources. So decide: are you in the business of generating business or are you in the business of doing the work. You can try to do both, but you will be mediocre until you focus.
- Realize that contracting is an almost impossible thing to do “on the side” while you work “on your own stuff.” Doing “my own stuff” is a large part of why I’m taking a break at the moment. In retrospect, I would have taken on one large contract per quarter to build up a nest egg (focusing on doing a world-class job for that sole client), and spend the next quarter only working on my own stuff.
Regarding Elance and Getting Projects
- Elance is helpful at the beginning. HOWEVER – you cannot sustain yourself on it – you’ll be WAY under compensated; for every awesome client you might connect with, there are dozens of people looking for the lowest cost resource. The faster you get off of elance, the better.
- Be careful of the “free” projects that “help you build your portfolio”; they will most definitely cost you something. If nothing else, opportunity cost when you could be off making money somewhere. My advice there might be to make sure you have a lot of control over scope, design, etc on those projects and figure out when you’ve done “enough” to both make for a satisfied client and also to have something new for your portfolio.
- I do think a portfolio / track record is critical to getting potential client’s attention. One thing to consider if you are partnering w/ other people to take on bigger projects — roll up all of your individual projects together into your new studio’s collective portfolio. There’s no reason those projects shouldn’t “count” for your collective experience.
- Don’t take on more than you can handle. If you can sell well, you’ll be tempted to take on 15 projects, but you will fail at all of them. (Note: successful, healthy studios scale up and take on simultaneous gigs by hiring up subcontractors and then employees. The gap between “a couple people working in a garage” and a “steadily growing studio” is massive.)
- Yes, it’s ok to turn work down if anything doesn’t feel right. It should go without saying, but don’t take on projects that you feel you can’t 100% knock out of the park. Actually, it does need to be said. I’ve had months where I felt cash strapped, and took on underpaying projects on bad terms, in desperation. It NEVER works out and left me even worse off than had I held out for a better gig.
- Fewer larger projects are better than many smaller projects
- If you aren’t good at project management, everything else will constantly suck (and project management is a full time job, so either commit yourself only to that or hire somebody to help).
- Be very strict w/ your clients when it comes to changes. We were constantly being too flexible and it always backfires; if there are new features, they should be compensated. If there are tweaks and changes that will cause you more work, then you should have a limit on those so you can push back when those “little” tweaks eventually stack up.
- I split up the projects into multiple milestones (usually tied to deliverables). do as many as make sense. Understand that every deliverable / playable has a large amount of overhead. (for the record, weekly playables aren’t feasible).
- “Don’t sign an NDA during the sales process, or hopefully any time, until you sign the work contract. Have a lawyer review anything that makes you uncomfortable or that seems unusual. Make sure the NDA is mutual or provide your own NDA for the client too. Make sure any subsequent rights, etc are clearly detailed about who owns what.” (via Donturn suggested edit: 2012-08-29)
- Hire a lawyer to help you draft a reusable contract. Seriously. Go get Nolo’s software development legal guide and use the embedded contract as a starting point. Talk to a lawyer to review and adjust based on things you care about. You could even have them draft a few different options for different circumstance. Get it done for under $1K. Simple iOS dev contracts (at least those where contracts will save you down the line – i.e. those worth taking) should start at 50K. No-brainer investment
- You ALWAYS provide the contract to the client. Don’t accept theirs. (this is easier with smaller clients who don’t already have years of experience hiring contractors and a separate legal and A/P department) If the client and potential $$$ are big enough and they refuse your contract, hire your lawyer to review theirs and compare to your own contract.
- A contract is not the final say until it’s signed. It’s ALL negotiable.
- You are in the business of contracting to multiple parties, and your contract is “standard” so that taking on any particular gig never precludes you from taking another in the future. I’ve had clients provide contracts with all sorts of creepy non-competes and endless warranties. (IANAL, again, but unclear how much that kind of non-compete clause is even enforceable. I’d rather not find out).
- In reality, you are always negotiating contracts and will adjust the final copy. Consider adding low-hanging fruit to your standard contract for things you don’t care about losing in negotiating (ex. give a super short warranty period and offer to extend it during negotiating)
- ALWAYS: You own all of the IP until you receive the last penny owed you. Period. This is never negotiable. Partial payments are fine, but you still own 100% of the IP. withholding payment until maintenance period is over is fine, but you still own 100% of the IP until you’re paid. As soon as you hand over IP, all your leverage is gone for collecting down the line.
- If you get sued, you never talk to the client’s lawyer. You have your lawyer talk to their lawyer. Always.
- Unless the contract is extraordinarily large, taking cases to court will usually be more costly than what the contract is worth. However if you get sued or need to sue or collect on a client, a clear contract will make the settlement negotiations more cut and dry.
- I had a case where it was much cheaper to just give a client back all of their money than fight in court.. we had a great lawyer who basically said, “don’t fight this. I can try to spend lots of hours showing how you might be right, but you’ll still lose.” For what it’s worth, if a client sues you, you picked the wrong client AND you screwed up the project management.
- Outright or Less Accounting and Freshbooks
- Keep increasing your rate — you are probably worth at least quadruple what you think you are worth. Paradoxically, the higher your rate, the less hand-holding and oversight your clients may have. Likewise, when you give time estimates, triple what you think it will take…. if somebody wants something any faster, then your rate should go up accordingly.
- Flat fee or hourly / weekly? – open for debate. I’ve tended to do flat fee (which I calculate based on an estimated time * my hourly rate) – the hourly rate contains an “overhead” and “profit” padding; I’ve been a pretty flagrant underestimator, though. Lately I just triple my internal estimate and that’s starting to work out.
- Ask for 25%-50% down payment depending on the size of the contract, size of the client, and your level of comfort w/ the project. Don’t ever start a project until you have a down payment (or escrowed funds like Elance).
- make sure you have a kill fee spelled out in your contract. i.e. if the client decides to cancel the project for any reason (without cause), you should be paid for a fee and retain ownership over code you have written. It should be an amount that will cover any work you put into the project and opportunity cost; remember, spending time on 1 contract means you can’t spend the same time on another.
- If a client is over 15 days late and stops returning your calls, IMMEDIATELY assume they are flaking on you and just send to collections. You’ll have to pay a collections sevice around 25% of the collection size (only if successful). For a larger contract, have your lawyer handle collections — it’s amazing what 1 scary letter can do. You REALLY don’t need the aggravation and don’t have the time to chase money down. I’ve heard downright amazing excuses from delinquent clients. It’s all untrue, and you don’t owe it them to be nice once they start lying to you. (Note: as per your contract, you should still own the IP if a client hasn’t paid. A c+d letter should be in your arsenal if a client is posting anything about the app in an app store, on their website, etc)