Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Cancel a Freelancing Contract Honorably?
6 points by throwaway_1029 on March 9, 2012 | hide | past | favorite | 12 comments
Writing this from a throwaway account. I'm new to freelancing and have done 3 contracts so far on sites like freelancer.com. I have a college degree and a decade of programming experience but need entrepreneurial advice.

I have been working for 3 weeks on what originally started out being a straightforward 2 week, sub-$1000 contract. I bid more than the other bidders but got the contract because of my experience with the math the project uses.

It took 2 weeks just to make the mockup, because they had me endlessly doing GUI tweaks instead of core back-end work. There was a steep learning curve for iOS because Apple UI widgets sometimes work in custom ways that break expectations. I spent many more days in stack overflow than expected. I fully accept responsibility for underestimating the mockup phase of the project.

However, it's becoming clear that I may not be able to finish this project. There is a language barrier which is hindering my ability to communicate my experience, so they not interested in my design advice. I'm torn between doing what they want and doing it well, because I'm having trouble with the idea of putting my name on work I don't believe in.

There is also a financial barrier. I've already donated a week of my labor and simply can't afford to continue. So far I've received 1/4 of the total as an up-front payment. I've been unable to meet the 50% milestone because the GUI doesn't match their expectations. I probably have 2-5 days more work to finish the back-end, if/when I get to it.

So my question is, does any of this matter? Should I just finish the contract exactly how they want it? Should I ask to switch to an hourly rate? Should I cancel the contract somehow on the freelance site and risk ruining my reputation there? I'm planning to go ahead and finish, using the lost month as a lesson. But I need to know how to write my proposals going forward to protect myself.

P.S. I had an odd feeling going into this contract, but ignored the warning signs.

P.P.S. I had been tracking my hours casually in a text file for the other contracts before this, but for this one, I have no record of my hours.

Thanks



I have done a lot of "freelance" jobs. Usually that means from an outsourcing site.. I always work hourly now.. even it is an Indian (outsourcing) rate, you will be much better off than a fixed price.. even with someone who has a US budget, most will naturally screw you even if they are well meaning people, because budgets are still fixed budgets, and most projects aren't fixed in any way.

I think the reason people get away with that is because $500 goes MUCH farther in some countries than it does in the US, and so those coders actually can absorb a bunch of bullshit/new requirements in these fixed fee projects and still make money.

A lot of times the less money they have or are willing to allocate, the less reasonable they are. Probably because they don't understand programming and/or are just not happy people, because they are stressed out running a small business without a lot of margin. Or they don't have a lot of money because they are unreasonable people.

I would say walk a fine line in what you are saying, do your best, but start letting them know right away how much money you are losing and that you can't continue for much longer. I would be nice to them (even though they don't really deserve it) and try to get them to agree to let you work on it just to a point where it is ready to transfer to a different programmer. Tell them they may be better off with someone at a country with a much lower cost of living who can absorb the new requirements and tweaks and still pay rent or whatever.

Also remember that you can give the other party a poor rating and review on the site as well, so that is not a completely one-way street.


Thank you all for the good advice. I think in my heart I knew some of this (as far as working hourly), but have made the rookie mistake of underbidding to get the contract. I feel bad about it because it makes things worse for everyone if too many contractors do this. If they had been paying the hourly rate in my profile, they would have gotten 11 hours from me. So far I've put in perhaps 100 hours.

I am going to try to move up to the $3000-5000 range and I want to be prepared, because if I find myself in a hole there, it will be 10x harder to dig myself out.

It would be nice if we had a resource like "pitfalls to avoid as a contractor" with some real life examples that would tend to only be learned through experience. For example, I had no idea that GUI programming was so time consuming. I had basically written it off as being "just design" so I didn't take it seriously.

But it's sort of like painting a house, the real work is in prep, stripping, priming, cleanup, buying tools and brushes, training, just on and on. The actual painting only takes a few hours. I think that's why people scoff at the idea that painting a house costs thousands of dollars.

That's how this project has been for me, so I'd love to hear more insights like that.


> It would be nice if we had a resource like "pitfalls to avoid as a contractor"

You call that a lawyer.

> with some real life examples

Walk for one hour in a single direction and these real-life examples stop being relevant. That's why you go to a local lawyer.


That sounds like a question for Gabe: http://mylawyergabe.com/


Having been playing the freelance game for some time now, I can give you the following advice: WORK HOURLY


This is why I stopped contracting around 5 years ago. It's too easy to end up with a project where you only get paid $5/hour.

This project sounds like a mess. Since it is a sub-$1000 project, I would just give them their money back and let them know that it's just not working out.

In my experience, it's better to get out of these situations as soon as possible before you waste any more time.

In the future, I would get a list if requirements up-front and give them a quote based on those requirements. If they start making any wacky changes, immediately let them know that you will be charging per-hour (on top of the base quote).


Ya I'm starting to see that too, minimum wage is about all that can be expected for a contract below about $1500.

In fairness, they have not asked for anything outside the original sketch. But if there are 10 GUI elements, they want 8 of them to work either in a desktop-fashion or a way not supported by iOS (check out some of the UIScrollView discussions on stack overflow to see how difficult it is to do things like intercept touches on subviews and have them work with gestures). So tasks that sound easy can quickly become days-long to implement.

I hadn't considered giving them their money back, that's a good idea though. We just bought an appliance from a repairman on craigslist that turned out to be a knock-off and the guy wouldn't accept a return. I considered that unprofessional, so may need to keep a stash to pay back milestones...


You should write in your contracts that UI components will work according to a guideline for IOS that guideline should be Apples HCI document which is complete and their components conform to it. Anything beyond that is out of scope. This is why when I do UI work it is always hourly based, when it comes to the UI everyone is an expert because they have an opinion about what they can see. Some of them will even ignore blatant research and force you to conform the interface to their opinion. Taking UI work on anything other than hourly is a dangerous proposition because it is where an overwhelming majority of changes are made. The other area is adding completely new features, you have to isolate both of those from a fixed price contract. New features are pretty easy, if it is not in the spec it is a new feature. UI is more difficult it is subjective that is why having a third party guideline as the definitive agreement is an important arbitrator. If they fail to read it that is on them, further call out an hourly rate above the contract for customization and new feature work. Finally, if you have a client that does not understand that you deserve to make a living wage for your effort you need to walk away, there are many people that expect others to work for slave wages for some reason. Counseling them in fairness tends to be a moot point and burns up more of your time, as soon as you spot the tell tail indicators that you are working with someone that views others in this light, you have to walk away no matter how deep you are in, people such as that will see that they are getting more than their fair share and milk the situation.


"You should write X in your contracts" is never a good idea. Putting every stupid detail in a contract is not the right way to go. The right way to go is to notice when you're working with idiots and stop doing that work ASAP.


Even with client that you feel are going to turn out good, contracts are for when things turn out bad, and it can happen with good clients, Putting every stupid detail in a contract is the right way to go, they set expectations and are the arbitrator of conflicts and disputes. Even with good clients both sides should have a strong contract specifying what is expected from each party with as much detail as possible. Doing so protects each side from abuse.


Let them know that they misrepresented their requirements in their request for bids, and halt further work until they renegotiate the contract at an hourly rate. If the 50% milestone is the GUI, make sure your GUI satisfies the requirements they set forth at the beginning, not the moving goalpost they've tried to impose on you.

In the future, save flat-fee contracts for situations where all the details are spelled out before you begin work. Letting the customer exercise discretion over details ramps up hours tenfold.


Put all of this in an email, sign with your name, fire off. See what they say and be open to continuing work if they promise to change and do come through with it. In other words, just be honest.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: