Developer open-sources 200+ hr project after client refuses to pay
github.com
github.com
Freelancers should always try to get at least a deposit upfront. When I was freelancing, I would get 100% upfront for projects under $500, 50% upfront for projects between $500 and $2000. For projects over $2000, I would get 25% upfront, and then set milestones with payments attached. I had a $7500 project once where the guy made the first 25% payment, I completed the first milestone (graphic comps and UX flowcharts) then he disappeared for a year, not returning phone calls or emails. He then contacted me out of the blue and made the second payment, and I completed the second milestone (HTML/CSS/JS coding), and then he disappeared permanently. Clients like these are exactly the reason you need to get some payment upfront.
Also, to the OP, is a few weeks really enough time? If those were 200 billable hours it seems like it's worth a tad more hunting.
Law school. ;)
Okay, okay. Seriously, besides getting a lawyer and have them draw you up a standard contract, there isn't much you can do to "wrap your head around [contract negotiation] for good" as there's just too much to learn. Some of it comes from experience (you'll start getting a radar for certain kinds of clauses), and there's no quick fix for getting experience besides the passage of time. Specifically, make sure there is a provision in there for getting some of the payment up-front (as grandparent suggests), and specify a late fee % for any overdue bills.
This is a good video about contracts. It's targeted for designers, but I think most of it still applies to developers. I think the best point in the video, have a good lawyer.
And never ever ever start work without a contract in place!
Also, the magic words to avoid the described scenario are "intellectual property will transfer on receipt of payment". The parents video covers this in more detail.
The freelance kit from www.sitepoint.com is where I learned a lot about techniques for freelancing. That's where I picked up the technique for deposits and milestones. In fact, one of the best pieces of advice I got from there was never to be the lowest bidder. There was a project we were bidding on, and the client ended up going with us even though we were the highest bid ($8000). He showed us the other bids, and they came in at ($1600, $2800, and $4500). He liked our proposal for a few reasons: One, the other 3 bids were just Word documents or PDFs attached to email. Ours was printed in color, bound, and sent FedEx overnight. Another, we had detailed writeups of 3 previous projects with testimonials and phone numbers of the clients (used with permission). Lastly, we had suggestions for additional features to add, with a cost/benefits analysis on each, along with suggestions of features that could be cut to reduce the timeline or cost. All of these were suggestions from sitepoint's ebook.
You might almost be better off trying to sneak in under the MSA with the "simplest contract that could possibly work" than you'd be by formalizing the relationship with an MSA. It is very possible to get a one-off contract executed, especially for one-off services. On the other hand, if you ignite the "MSA" neuroreceptors, you may find yourself far worse off than if you had simply gotten a Nolo-style work-for-hire contract signed; for instance, it's the MSA that's going to have IP clauses, noncompetes, insurance requirements, and things like that.
Be careful and don't wave things like "MSA"s around just because they seem like best practices. They are, for a company like ours or like Hashrockets; we're set up to negotiate and review MSA change bars. You on the other hand may not want to round trip with a lawyer several times just to do an $8000 PHP contract.
If your client ends up using your work, your contract is going to end up plenty enforceable.
If your client ends up using your work and you don't have a contract, don't expect to get paid this year, and expect a painful obstacle course of unreasonable support demands. They'll pay you eventually, but since you've reduced the worst case outcome to "amount we agreed on" from "treble damages and site downtime", they have every incentive to drag things out.
I did some freelance without a contract once and because I didn't have an agreement in writing I didn't have much recourse to tell them there'd be a charge for additional services.
A contract will never be a quick and easy solution to stop people doing a runner but you can at least limit the damage caused with one.
Message board cynicism is a poor excuse for bad business practices.
Nolo press has a variety of books that are probably relevant. Your local library likely has an assortment of them.
It's more an issue of customer relations than contracts. Contract specifics should be a reflection of that relationship (or lack thereof).
The way most people really learn customer relations or contracts is The School of Hard Knocks. The introductory sequence consists of SHK101 - Get it in Writing, SHK190 - Retainers, SHK225 - Applying Retainers to Final Invoice, and SHK230 - Termination Fees.
How you structure up front payment is always up to you. We've always had a setup fee, typically a few thousand dollars, which is due before any work starts. However, there has been one single thing which has kept our revenue flowing month after month for years: Freshbooks.com
I seriously love that site. We use it for:
1. Making estimates 2. Tracking hours worked against estimates 3. Invoicing based on hours and services rendered 4. Making sure the client indeed noticed the invoice - it says "viewed" when you send by email and they actually log in and view, so you can call bullshit when they say "I didn't get it yet!" :D 5. Automatically adding late fees to invoices. We charge a relatively nasty fee each month for a late invoice and it automatically adds it to each one. 6. Tracking payment; clients get notified via email when payment has been received, something many have commented on as a great feature.
Quickbooks and other tools are all well and good, but imho I think Freshbooks pretty much handles 90% of what you need to be successful independently :)
Side question, what (in percentage terms) do you call a 'nasty fee'?
I don't have a black and white rule here; I'll just say two things:
* BigCos usually have payable processes, and if they do, your contact at the BigCo is unlikely to have the authority to short-circuit them unless your service is so cheap that they have direct signing authority for it. Otherwise, what you're fighting with the payment-upfront negotiation is the friction it takes to change any part of a BigCo's "how do we release invoices for payment" process. If anyone with title =~ /purchasing/i is involved in your negotiation, give this up.
* Equally importantly, the payment upfront clause mitigates a risk you mostly don't have with BigCo's. Upfront payment is earnest money. You need earnest money when the amount of money you're working with is large enough to be worth your client stiffing you over. For a BigCo, almost any first project you do is going to be worth less than that amount; your $15k web project is a rounding error to them, and any real dispute over payment is going to cost them more than $15k in the end, and they absolutely know it.
That is a good point that I didn't make clear in my earlier posts. As a freelancer, by choice I only dealt with individuals, small businesses, and startups. I soon found that the $10000 mark was the upper limit for projects those types of clients go for. Above that and you start having to deal with big companies and their bureaucracy, lawyers, etc. Those projects took forever to close because the CTO or some VP needed to sign off. But you know they can and will pay...eventually. We ended up avoiding those jobs just because it meant less headaches, getting paid quicker, and that we would have the upper hand in negotiating. There is nothing wrong with going after the low-hanging fruit.
I'm saying this as a data point for people just getting started who might be nervous about asking for payment up front. If we'll do it, I'm sure many other people will too. It's a reasonable request.
On the other hand, just so you know: we never ask for payment up front for our services, ever. That's because we'd almost never get it. Most companies with in-house finance and/or counsel aren't going to pay you anything in advance.
If I were freelancing, I'd ask for up-front payment, but I'd let the issue drop for any company I knew was large/established enough to pay me; if I was in a relationship with such a company and doubted the project really had legs, I'd just walk from the project.
Since a lot of contract work is time-sensitive, waiting for payment to clear before starting work or handing over an initial milestone might not be an option. There's a tension between the desire to make a good impression on a first-time client and the desire to make sure they're not taking you for a ride.
Fortunately there are often warning signs when a client is going to be particularly difficult, and there are far more decent clients than unsavory ones.
At my first contracting gig using a body shop way larger than I was, well, they'd kinda sort of start thinking about paying me 30 days after they got my net 30 invoice. This /really/ bothered me. In fact I made a lot of unprofessional noise to the client, and ended up staying home, once, until they paid me. The thing was, I was really worried that they weren't going to pay me at all.
It did not occur to me that this was just standard operating practice, and that they were planning on paying me; they just wanted to stretch it out a bit.
In any case, yeah: some of your best clients will do a terrible job paying you on time. 'slife in the big leagues.
It was, however, a reputable, well known firm and I had no reason to believe that they where playing games or trying to bullshit me.
I was right and got payed in full when the glitches got ironed out. Nevertheless, it was a tad annoying and part of the perils of a freelancer, I guess. Thankfully, while being persistent with their accounting department I never blew up and always stayed civil.
Very much second that setting up the invoicing for a new supplier can take time, especially at multinationals or other large firms. I can understand this due to the fact, that procurement is one of the most sensitive areas when it comes to fraud and dodgy invoicing. Thus firms set up a lot of safeguards before actual money flows.
* Refuse to sign unless the BigCo agrees to your payment terms.
* Actually expect the BigCo to perceive time elapsing in a way that will get you paid in 30 +/- small n days.
They won't get offended when you ask for net+15. They might even agree. But you're getting paid when the stars align, not when you think the contract says you're getting paid. Established consultancies devote a small but palpable bit of effort managing this issue.
I asked for clarification, and they were apologetic about it. They could only run payments on a 60 day schedule. Solution: I billed net-30, 15% monthly surcharge for late payments, which they happily paid.
The lesson was that sometimes a client has no choice but to drag their feet, so be sure to give them that option (for a fee).
Sums up my life as a contractor. The most profitable projects were also the most time-sensitive(the start now types).
Then again, I sucked at this. And so I took my first full-time job.
Once we've worked together, I'm happy to pay 100% upfront for anything < $2k. Its an easy (~free) way to improve the relationship. I recommend it to anyone who contracts out.
On the other side, we usually ask for 50% from new clients, but will let it drop if there's a good contract in place and/or we've worked together a bit. Much more concerned with getting paid than cashflow.
Agree that big companies are never going to pay upfront, it will be net 30 at best, take it or leave it. But never do anything on net 30 without a purchase order (PO). It can take a while (months, damn the invoice date) but you'll get paid eventually.
F*ck You. Pay Me. http://vimeo.com/22053820
In China, if you have an ironclad contract and no other leverage, you have no leverage.
In cases such as this, it's best to take payment up-front for a portion of the work, either in the form of a deposit (for fixed-bid), or a retainer (for hourly work).
This means you get money up front, which is nice. More importantly, you get something I like to call fiscal inertia -- namely, if a client has paid once, they're far more likely to pay in the future.
By releasing the code under a permissive license, he gave up that recourse. His client's right to use the code is now a grey area. Technically, he has the same recourse in court as he did before; contracts. But he's severed the connection between that and the deployment of his code.
I'm not expressing nerdly outrage at how he did it. I'm simply suggesting a tactical refinement for the next person who decides to dump dox to Github when a client doesn't pay.
Not in China.
"This code is licensed under MIT license with one exception: for 5 years, this license excludes any use which benefits directly or indirectly the current owners of UnPayingCompany, Inc. On Aug 1st, 2017, the license for this code is MIT without any restriction."
I think he's doing the right thing by releasing it as OSS. Hopefully he'll pick up some support hours if anyone actually ends up using it.
If you added the proposed restriction, you demonstrate that you will take revenge on deadbeat clients by trying to give their competitors a leg up.
Don't get me wrong- I think he's totally within his rights to (publicly) exclude him from the license. And as a developer who's been stiffed before, I sympathize. I think the restraint he's shown so far in that README is noble, and I hope he gets some good PR (and thus new clients) out of this.
1) out $6500
2) feeling dumb for getting cheated in the first place
3) feeling bad for having pseudo-publicly excoriated a likely innocent
I wish in retrospect that I had taken the higher ground, open-sourced the code and just moved on.
This is damaging to the client. Yes, they may have deserved it, but will future clients be discouraged by this behavior?
Edit: To be clear, I'm not saying the coder was in the wrong in any way. That is to be determined based on whatever agreement existed between the coder and client. I'm asking if as a business decision it was wise to release the work. The client now has all of the work, and there is no possibility of reconciliation.
If I was a sculptor and a client commissioned me to create a work of art, then didn't want it, surely nobody would fault me for donating the work to a local school instead of destroying it.
It does sound like there was no proper contract between the coder and client, which means there were probably no NDA or IP contingencies, which also explains why the coder was able to work for 200+ hours without seeing a dime. I believe the coder is in the right here. I just wonder if what he did was best for his career. It looks like most of HN agrees that it was.
Considering he release something that he created on his own from SCRATCH, he can release it all he wants since all the code belongs to him. In this case, he is doing something within his rights.
If his work is derived from the "client" codebase, then its an entirely different case.
Potential for new contract work - either extending this or creating new work.
Having more code out on github is also a good way to get more employment opportunities.
It sounds to me like the guy was trying to scrape together funding while he was commissioning a developer to work on his "great idea". I was almost caught into a same situation once.
I'm vary wary of anyone who calls himself an entrepreneur.
NOTE: I'm not saying the client doesn't deserve any of the harm this may cause. I only want to show that there IS a potential for harm.
I have seen a friend of mine retaliating on her blogs against clients who didn't pay on time, etc.
And I also know at least 4 prospective clients (honest ones, they always paid in full and on time to their contractors) who got discouraged because they had witnessed the "worst" of this friend when things might not work out between her and the clients.
If diluting the client's competitive advantage is harmful to the client, then wouldn't anyone who releases a free product with equivalent functionality be responsible for hurting the client? Is in unethical to, say, release Apache because it dilutes Microsoft IIS? That doesn't seem like a reasonable standard.
Now, if the client provided proprietary information to the contractor (wireless toothbrushes are going to be big next year!) and that information was somehow baked into the now-open code (automatically flag all startups building wireless toothbrushes and move them to the top of the pile!) that would be less than ethical. I see no indication that this happened in this case.
They probably can't maintain it themselves either.
The one who is focused on running a business on it - yes, would make a lot of it. Irrespective of who else has the raw code.
Also, assuming this was a work for hire, not sure who the copyright belongs to (the author or the client) given the non-payment.
I've generally had good results from mailing the creator when there's no license mentioned - they usually didn't bother and will add a license, and often quite flexible about which license.
Just one minor correction: The author holds the copyright regardless of whether the code is released under a license (open source or proprietary) or not. The fact that he is the copyright holder is what gives him the right to release the code under any license (and change the license later, should he wish to do so).
* Deposit required, typically 25%, depends mostly on the estimated length of the project.
* Payment on milestones (typically first beta and completion, possibly more depending on length of project)
* I own the IP until paid in full
* 50% kill fee less deposit
Though, honestly, I prefer day rate over project based fees. If I do a day rate, payment is due every 15 days.
It's worth the $1-2K of going to a lawyer and getting a contract boiler plated.
It basically boils down to this though: You are in business, act like it. I don't do favors for clients I don't know. Once we establish trust and relationships, I become a lot more flexible.
I thought when I started implementing these terms that I would lose business, and I have lost a few projects because of them, but honestly if they can't respect the terms, they probably aren't going to respect your work and you'll be caught in that endless freelance/consultant cycle of hunting down payment.
It's your money though, do as you wish.
My company's iPhone fixed fee contracts state that you surrender all rights to the work after a (long) term of non-payment and still owe the amount due so things just like this can be done when people just disappear off the face of the earth but yet salaries and contractors and artists still need to be paid for all that time.
Here's what I mean. If they can get you a check cut for a portion of the amount of the project, then you just learned three important things about them: (a) they take you and the project seriously and are committed to your doing it; (b) they have both the signing and check writing authority to commission the project; and (c) they are able to control their organization from their end in order to make the project happen.
If it is not a major corporation and you don't get a deposit up front and you just start working, then any number of bad things can happen:
- You find out that they never intended to pay and they consider your demands for payment a joke. - It turns out that they are powerless smurfs with no signing authority - It turns out that there is absolutely no support for the project internally
In any event, it then becomes a crap shoot for you. If you get a deposit it is possible that you may be stiffed on later payments, but it becomes highly unlikelier by orders of magnitude.
A signed purchase order from a large company should be enough to go on, I guess. I have always asked for deposits.
I believe statutory damages are $150,000 per infringement.
I should mention that this was in Australia and I had a pretty solid contract. So this may not apply to you, but the debt collector took the hassle out of chasing it up and I didn't have to get involved in the court proceedings. It might be worth a look.
For anyone who's contracting I'd recommend a few things:
1. Always have a contract and make sure you get advice before you sign it.
2. Don't be afraid to change or negotiate terms if you need to. Look out for excessive IP restrictions and restraint of trade clauses.
3. If you're doing per-diem work, get signed weekly timesheets. They're a legal record of work done.
4. If you're building a product for a fixed price, contractually define milestone payments and ideally get a partial payment up front.
5. If a client can't or won't pay at any point, stop work until they do!
Perhaps the real lesson learned is: check out your clients before working with them.
It wasn't until three returned checks, barrage of excuses and threats that I came out of my delusion and realized the guy is a scumbag. A true scumbag: the original client that his agency was hired by had paid the agency--probably several times what was owed to me. And yet, the schmuck owner of the agency thought it'd be better to cheap me than pay me my fair slice of what he made.