Page 1 of 1

What to know about contract work

#1 Craig328  Icon User is online

  • I make this look good
  • member icon

Reputation: 1866
  • View blog
  • Posts: 3,387
  • Joined: 13-January 08

Posted 09 February 2011 - 08:41 AM

*
POPULAR

One of the nice things about being a software or web developer is that you can offer to build things for others on a contract basis either as a full time occupation or as a part time, side effort. The ability to connect with people, communicate, build software/sites and exchange money over the internet for such work lends itself well to independent contracting. However, as in all things that involve 2 human beings, care should be taken in how and what you do so that you don't find yourself getting ripped off (either as the contractor or the contractee). A few months back a regular D.I.C. member posted a thread wherein he was seeking advice for collecting on a contract agreement. The description of his troubles was something I (and surely others) have experienced and so I wanted to start a tutorial thread to promote discussion for how to enter into such agreements safely and productively and ensure that both parties get what they want out of the contract. Being as this is a developer forum, the viewpoint of this discussion will be decidedly from that side and will involve issues found in the United States. Please feel free to contribute information for other countries if you have it or if it differs from what's stated here.

So, you've decided you want to be a contractor or earn some money on the side. Great! How do you get started? Well, first things first: are you old enough to enter into a legally binding contract? That seems like a silly question but when you consider that in 47 of the states, the age of majority is 18, in Nebraska and Alabama it is 19 and in Mississippi it is 21, it may be something some of you need to know. You cannot sign a contract if you don't meet the minimum age requirement to do so (or are legally emancipated). Can you still do the work? Of course. However, you won't have the benefit of a binding contract to fall back on if things don't work out.

Let's say you're old enough to do this kind of work. The second consideration is: do you possess the maturity and level of expertise necessary to engage in such work? This one is tough for some people to answer because it requires being brutally honest with yourself. If you start talking to someone about building them something that's going to require 20+ hours per week and you work full time, this means when you're done with your full time job, you're still looking at an additional 4 hours per night, every night, or working on weekends to meet the time pledge. While that sounds nice in theory, in practice it can be tough to force yourself to stick with it. Also, if you're discussing constructing the logic algorithms for IBM's next Big Blue supercomputer, for instance...do you really have the skill to do that? Biting off more than you can chew in a contract is THE major reason for the developer defaulting on the work agreement. So, have the expertise and make sure you can dedicate the time you say you can. If you're not certain then play it safe and pass.

I need to mention here that a contractor typically supplies all the work materials needed to do the project. That means a computer, the software you need to do the job and so on...unless the contractee agrees to supply such to you. This is an important point to cover and make sure both sides knows who's bringing what to the table.

Let's assume you're of age, can do the work and have the time and equipment to devote to it. What now? Well, this may sound silly but you (and the contractee) need a definitive description of what's to be built. This is absolutely essential to the process and needs to be explicit down to a moderate level of detail. Consider what you'd get from 10 devs if the order was "build me a website". In order to have all 10 devs come back with essentially the same thing, they'd need a detailed description of what to build, what it will do, how it will function, on what platform(s) and software(s) it will do it's thing and so forth. This leads directly into something called a "statement of work" which defines the work you will do, how you will do it and includes things like deliverables and a timeline. It will also tend to include any detailed requirments, milestones, pricing and so forth. Milestones (a scheduled event signifying the completion of a major deliverable or a set of related deliverables) will help both you and the contractee keep track of the progress of the project, and when combined with periodic payments upon meeting milestones, means you don't end up working too much and then not getting paid. For this reason, milestones should be quite detailed in their description so that there's a reduced potential for dispute whether they've been reached later on.

Outstanding! You have a solid agreement of what's to be built, have agreed on a price or rate per hour and have established concrete milestones for delivery and payment. Are you ready to go yet? Not quite. A lot of developers tend to end the process with diving in and working and hopefully having a pleasant and mutually agreeable end to the contract via delivery of the product and reception of full payment for their services. This is entirely okay however there may be a couple more things you may want to consider.

If you live in the United States you need to consider tax implications. After all, you are doing work for monetary gain which means, legally, you have to report this income to the IRS each April. Anyone legally allowed to work in the United States can simply file it as extra income on their 1040 as an individual. In an above board situation the contractee will send you a 1099 form IF the work you do for them in a calendar year exceeds $600. That is, they prepare a 1099 and send a copy to you and a copy to the IRS. The question often arises though: what do I do if I did work in excess of $600 (per contract) and do not receive a 1099? Legally, you're supposed to report the income on your tax return anyway (and you'll know how much you got by checking your records). If you don't and either you or the contractee are audited you could be found to have committed income tax evasion which can land you in a world of grief. This is more properly a discussion to have with an accountant but safety says to report the income for each contractees (from all contracts for them) that, in total, exceed $600 for the year.

If you plan to do a lot of contracting you might also consider incorporating. Incorporating confers several advantages like limited legal liability, limiting what creditors can collect from you, and you gain access to several tax deductions you might not have as an individual as well as other more obscure benefits. You might be able to write off expenses associated with business done as a corporation and so on. Again, these are considerations best referred to an attorney and/or accountant but it pays to be aware of them. It can be a pain in the ass and expensive to incorporate too so you need to weigh the pros and cons of incorporating...but at least look into it and educate yourself on this option.

I leave the actual contract to last. Most contracts that you will see will be drawn up by the contractee and the vast majority of them are standard legal boilerplate adapted from another contract or pulled down from some site on the internet. Regardless of the source of the wording, it's very important to read and understand the contract you're considering signing. I'll offer a personal anecdote by way of example for why it's important to read the whole contract:

I've been self employed through my own corporation for the past 2-3 years. Around 2 years ago, I was approached by a guy in another state to build him a grass roots political organizing website. Basically a politically themed contact management system with an heirarchy. After we agreed on the basic principle of what it was he wanted and my rate, he emailed me a copy of the contract he wanted me to sign and we made modifications to it several times to reflect the nature of the work we were discussing. We seemed to finally settle on the wording and he sent it back to me one final time for signature. At the time, I owned and ran a website business that had a number of nifty and unique Google mashups and such. This fellow had seen the site (as I discovered via server logs and the like) but had never mentioned that he'd seen it or been there. Anyway, on this last revision he had inserted language into an obscure part of the contract that essentially said that he was entitled to lay claim to ANY work product I produced during the time I was under contract with him regardless of the contractee. What this meant was that he might could have filed suit and demanded work product I produced for other clients or code I built for my own business. I had checked other revisions of the contract and that wording wasn't there so it was something he had tried to sneak in at the last moment hoping I'd miss it. I did not, confronted him about it and he claimed surprised ignorance. It was removed...however, he turned out to be the worst contract I ever worked (so perhaps a word of caution to trust your gut is required here too).

Finally, how enforceable IS a contract. The answer is: not very. You CAN take the other guy to court but the contract will spell out the jurisdiction for any legal disputes. This is an important consideration should the contractee not be located near you. For this reason, your contract NEEDS to explicitly spell out when, how and for what you will be paid...and under no circumstances should you deviate from that. No verbal agreement to modify should be accepted. If the scope of the project balloons then you need to respectfully request that the contract be revisited if for nothing more than to memorialize the changes to the project (delivery times, milestones, rate, statement of work, etc). The final word can come in a court of law and you shouldn't rely upon emails, instant messages or testimony about the contents of phone calls to support your views.

Contract work can be very rewarding professionally and financially provided you know what you're getting into and you prepare properly and professionally. This by no means covers everything there is to consider about contracting but, it's a start. If you've kept reading through this whole thing and have points to add or debate or want to mention an aspect I forget to address, please do so.

This post has been edited by Craig328: 09 February 2011 - 10:23 AM


Is This A Good Question/Topic? 11
  • +

Replies To: What to know about contract work

#2 CodeGrappler  Icon User is offline

  • D.I.C Head
  • member icon

Reputation: 41
  • View blog
  • Posts: 120
  • Joined: 29-November 10

Posted 09 February 2011 - 10:11 AM

That was a good read, thanks.
Was This Post Helpful? 0
  • +
  • -

#3 Brandon_R  Icon User is offline

  • New D.I.C Head

Reputation: 14
  • View blog
  • Posts: 46
  • Joined: 08-January 11

Posted 01 May 2011 - 08:43 AM

Good article. +1
Was This Post Helpful? 0
  • +
  • -

#4 Craig328  Icon User is online

  • I make this look good
  • member icon

Reputation: 1866
  • View blog
  • Posts: 3,387
  • Joined: 13-January 08

Posted 31 October 2011 - 08:09 AM

So, an update on contract work using me as an example for what not to do and why you need to always follow the rules and not make exceptions for anyone no matter what...and to add one important new rule that will be a no questions demand for any similar work from now on.

So, let's set the stage: way back in January a good friend of mine took a new job with a web analytics startup. The company was really keen on him and they seemed to have a solid book of business and he was (and still is) an up and coming star in the whole WA industry. When he asked my advice and I said it'd elevate his stature within his industry and he'd end up being a "Big Wheel"...something I'd been half seriously calling him for some time before that. So, he took the job. Not long after that he asked if I'd build his new company a Twitter tracking application. Basically, he wanted something their clients could log into to create a customized search that would run every few minutes and record anyone whose tweet contained a word, hashtag or phrase and then appended a Klout score to it so they could presumably see whether the author was important or not and how influential he/she might be. Nothing too terribly complex now that I can describe it at the end.

At the beginning though, it was very disjointed and, as I wanted to help my buddy with his new job, I skipped over several of my guiding rules for contracting...and I'm here to show and tell why that's a bad idea.

Problem #1: I did this without a written contract. My friend had asked me to do it. I trusted him. I met with his bosses. I believe they're trustworthy people. We talked about a contract but they never got the paperwork to me. I offered to supply standard contract wording but before we could get to that, they were on me with "we need this built" and I ignored the single largest rule of contracting: get it in writing. So I began work without a contract.

Problem #2: This project started with no clear vision of what it was supposed to be. My friend and I had worked for several years on projects but that was as me in a more senior or supervisory role and with a clearly defined end product. This wasn't that...not by a long shot. My first "white board" or wireframe was sketched out on the back of a lunch napkin at a Mexican burrito place. Subsequent plans or guides consisted of me sketching screen mocks on a yellow pad and making notes in the margins as to what went where and was supposed to be doing what. In short, no clearly defined end product. What was worse, as happens in every single project ever, things changed. Originally it was supposed to gather data and supply it to possibly as many as three compilation engines...that changed to one. The nature of client access and permissions changed. The nature of his company's permissions and allowed activities changed. These were all noted in various emails, IMs, doodles on notepads...but never contained in a single defining document.

Problem #3 (new rule): I did all the work on their servers/databases. That is, while I do indeed have a local copy on my laptop and on my server at home, I was also working directly on their development box. Why is this a bad idea? When contracting, whether you have a written agreement spelling out what you're to do/make or not, the only real leverage you have to ensure you get paid is your work product against their delivery of a check. In my case, they already had all my work product and I was submitting invoicing AFTER they already had everything I had built. I was entirely at their mercy for when/if I'd get paid.

As of October 1, I had submitted a total of 7 invoices. The first one was paid within 10 days of submission (all via email so there's no snail mail delay involved here). The second within 2.5 weeks, the third within 4 weeks...and then the 4th and 5th eventually got bundled together because the 4th went well over a month and the 5th was getting to be too much for me to hang onto while waiting for the 4th to be paid. Invoices 6 and 7 remaining outstanding for a total of nearly $2700 and 6 was submitted two months ago as of tomorrow.

The story will likely have a happy ending (I hope so anyway) as my increasingly busy and important buddy says he spoke with the person in charge of paying invoices at his firm and he said "he has them". That doesn't mean the guy is going to pay them but he says he has them. I was actually fortunate to get a response from my friend as he's completely transformed from "normal guy" to "super company man" over the past 6-7 months.

The end story though is this: I've been stressing over this money for the past month or so. It causes issues within my home as it bothers my wife that a supposed friend has allowed his company to pretty much dick me for the past couple of months while he's been too busy to actually deliver on my requests for his assistance. I only got a response this morning when I direct messaged him on Twitter (seeing that he was on and active) and said that I needed something today or I start calling people tomorrow and showing up at their office starting Wednesday.

In short, if this didn't start getting handled and handled promptly, I was going to start making as nuisance of myself which, in turn, would look bad on him as he's the reason I have anything to do with their company...but that's a damned sad situation...and it wouldn't even exist had I stuck to my own previously stated guidance and done things by the book, friend or no.

Folks, it may be a trite and quaint turn of phrase but don't mix business with family or friends...and if you do, only do it under strict contract rules. Get everything in writing and make no exceptions for personal relationships. Business, as they say, is business. My new informal rules have two additions to them from now on:

1./ Do the work ONLY on my own equipment and give the customer view permission only. They only get the delivered code after I've received payment for my efforts. That's an obvious one but my tale above wouldn't exist or wouldn't be nearly so dramatic to me had I stuck to this obvious rule of thumb.

2./ For myself, I'll be pleased to take contract work but once the payments for my efforts start to lag, any further work I do will be paid in advance. In short, I'll require an amount up front and will work hours against that amount. That may indeed scare a few contracts away but the situation I described above is the third contract that's had this happen to it and considering I've worked less than 10 contracts of this size, the ratio is high enough to add wording to this effect into all my future contract agreements. A small gig, no problem. A long term gig involving tens of thousands of dollars, this is my new rules. The stress and aggravation just aren't worth it...not as a side job.

So, hope this addendum drives home the point that I blithely ignored myself: make and have rules and stick to them no matter what.

This post has been edited by Craig328: 31 October 2011 - 08:13 AM

Was This Post Helpful? 0
  • +
  • -

Page 1 of 1