You’re a hot, young software developer, fresh out of college and it’s time to make a living. Problem is, odds are likely you’re working at a job that forces you to maintain code older than you are. Don’t worry, unless you accepted a job at a start-up, or work at one of the bleeding edge firms, odds are high that one of the reasons you’re looking to freelance is to do stuff that you think matters. The number one reason is because you want more money.
Get Paid: Getting paid to do freelance work is one of the hardest things to start doing and once it starts it is one of the hardest things to stop doing. This may seem confusing, but one of the elemental details of every business in America is that cash flow involves paying the people and creditors who are the least threatening to your bottom line, last–that’s you. Free lancers the world over have dealt with businesses that don’t want to pay you on time. It’s gotten better, but I’ve had large companies slow pay me for 18 months and small companies fold before the check cleared. The first step is to establish a relationship where payment is broken up into survivable chunks, built on milestones and is seen as either a bargain to the customer and thus something they want to pay and/or is seen as a necessary evil that keeps you on the job.
Step 1: Come to terms before you work on how you will be paid, how the payments will be deposited, any penalties and the agreement of work up front. These are the very definition of terms. Work for any large company and they’ll have a threatening boiler plate document you sign in order to work for them. That document almost never protects your rights and responsibilities. The better thing is to use your own boiler plate and establish a policy of invoicing for your work and being paid on 1099. Google what is a 1099 and you’ll spend a lot of time trying to figure out a relatively simple idea in taxes. This is other income. Your maturing stock portfolio in a brokerage is 1099S income, your retirement income will be paid by 1099, but as a contractor you will be paid a 1099 because you are not a regular employee and this is not regular income.
What does that mean, “not regular income?” It means you have to pay all of the taxes, all of the social security, all of the withholding for state and federal and on top of everything else, you’ll pay a 10% self-employment tax. All of this you’ll do so you can file the mother-lode of tax filing incentives the schedule C. Schedule C is where you honestly and correctly put all of your expenses for your contracting business. Every receipt for a working lunch or dinner you pick up, every piece of equipment or software you buy for this job, every penny on rent for the business property or other stuff recognized as a legal business expense is going on your schedule C in order to claim it as a deduction from the money you earned in order to lower your tax base. I’m not a tax professional so I can’t give tax advice. You’ll eventually want an accountant for that anyway, but what I can do is say the one piece of advice nearly every human being must learn from an early age and work to master–Get organized!
Get on a schedule of filing receipts every single day. It’s the computer age, but you may be tempted several times to create your own accounting system. Every incoming check should be kept in a ledger that helps you match up jobs to the expenses you incurred them on. Documented expenses for when you need to put out incremental and final invoices. Don’t know what those are? This is where Google will help you. Every mom and pop business in the world started with getting this organized with pen and paper. You can do this. You can turn this into the worst nightmare or best dream possible and you’ll know exactly what you’re getting based upon how organized you are. Don’t spend a penny until you’ve got this sorted out.
Now I’ve already told you how to break out the payments, and you may have read this on http://jasonstarin.com/wp/?p=
Step 2: Setup a way to track your progress, save your progress, and code drop your progress. I’ve been on both sides of the contractor’s fence. I’ve been brought in to manage a team only to find that the team’s first through sixth code dumps to me were cut and pastes harvested from the internet. Likewise, I’ve spent all weekend working only to have the Monday morning status meeting tell me the direction I went was wrong. This developed into 5 core guidelines.
1. Check in early and often
2. Have a design document that outlines your process and their process for approval, complete with when something is done.
3. Control iterative changes, indecision and scope creep with documented change control mechanisms, even when you’re doing agile as part of an internal company’s agile team, work still takes hours, and hours should be paid for.
4. Insist on using a source control system, preferably one the customer maintains, but just in case, maintain one of your own that allows you to deliver code and redeliver code in case of catastrophe. There are nearly a dozen options here.
5. Ask pointed questions in written communication that get answers on: Is this done? What will it take to call this done? What do you expect next? When do you expect it?
This controls the pace and flow of code and work going in and out. Each guideline has a reason borne of a mistake in understanding. They’re not loose, in fact they’re very strict, painful lessons I had to learn the hard way.
Step 3: Own your mistakes…
Oh if I could punch my younger self, it would be for this. Your mistakes are yours. Fix them and only them and then move on. Do not allow a mistake to be used as leverage beyond the make good you offer. Do you know what a “Make Good,” is? It’s a core understanding of the freelancer. When you goof up, you say, “My bad, this is what I will do to fix it.” Often you say things like “no charge,” “this one is a gimme,” or “on the house.” These should be exceedingly rare, but when something is honestly your mistake and not the fault of the client, this is the barrier between you and getting fired. You are the first person fired after trouble. Ditching the contractor is the easiest thing to do and I’ve limited it to three, miserable events out of 90 principal engagements. Owning your mistakes, making a plan for fixing them, communicating that plan and executing successfully are keys to success.
Step 4: Commit to a goal that is 80% of what you think you can do, but get stretch goals that cover the other 20%. Oh this is so important. Contract for just 5 things that would take the time of 4 things and you’ll find yourself spending the time it takes to do 5 things to get 5 things done. Have 6 things that you could do, but be on the hook for only 5, and you’ll figure out a way to get all 6 things done in the time it takes to do 5. How? Challenge breeds good work and every employer and employee worth their pay knows it. Step up, stare down the barrel of the loaded gun, have the team on your shoulders and play Queen’s rock anthem “We are the Champions,” when you deliver above and beyond those expectations. Two ways to do it, first low ball and sand bag a little to cover for difficulties, and second work more than the minimum. Did I say two ways to do it? No, I meant two steps in the same process.
Step 5: Protect yourself. Get the contract from step 1, find some cheap legal advice, buy some liability insurance, get organized, but above all things, watch what you say and protect yourself from problems by being proactive, honest and clearly communicate what is going on. I’ve gotten extremely sick on a job before and been unable to deliver. You need to notify them early on that something bad has happened, but you may not be in a position to do it–I mean you might have tubes in your neck used to help you breathe. To that end you need an agent to represent you and communicate what’s going on. You need some cash to help you limp along. You need disability insurance, you need some alternative contacts your customer can lean on, you need to have a game plan that covers you having a heart attack or any critical piece in the mix failing or being lost in a fire. Seriously, this is not one thing, but many things joined together in a list inside a firebox somewhere other than the place where you sleep, eat and/or work. Someone other than you needs to know how to execute that plan–someone you can trust. Sometimes, rarely, these are your partners, but the world is littered with the failings of partners during a crisis. If they are the ones to depend on, spell out exactly what they are supposed to do during a crisis. On Monday of every week, put together the call sheet you need to execute for the next two weeks. This involves copying data from the previous week and updating it as needed. It includes notes on what was said, key passwords to certain systems(encrypted), file names, completed objects and tasks as well as those in process with status and names for the files. This can be kept as part of an email, but the key there is it needs to be in multiple boxes. There are security concerns with this information, but you need to be ready for a crisis of any stripe.
end part 1.