Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: I've had some software developed, now the coder is holding me for ransom.
33 points by pixpox3 on March 21, 2009 | hide | past | favorite | 98 comments
I'm not a hacker/coder, but I've hired a coder to create me a desktop app using JAVA swing that I planned to sell.

I hired him in August 2008, he quoted me $2500 and said it would take two months. Its now almost april and hes almost finished. Throughout the process hes been angry, rude and keeps talking about how incredibly patient he's being with me.

I offered him 10 percent of profits, just because I thought I might as well seeing as my initial investment looked like it was going down the pan anyway. But hes been holding me ransom the whole time, basically wanting more money, a lump sum at the end of development and he wants my investor (who may invest a modest amount in the software) to buy him out.

What can I do? I cant afford to pay him bonuses, I dont want to give him more percentage and I definitely want to try and get him off my back and cut him out of the project.

I'm thinking the best way would be to get someone to reverse engineer the software so I have complete control over it. It currently authenticates the user on startup using a script on his server.

My question is, can anyone tell me what the best way to do it would be? Is reverse engineering Java Swing apps doable? Im thinking I should hire someone of Rentacoder to do this and just get this headache over and done with.

Thanks for any advice.




Simple...sue him.

Dude I'm in your exact situation...hired someone to do a project, and he is now a year late. I gave the guy concession after concession just to get him to finish...hell I cut about 70% of the features just to have him finish quicker. And told him...as long as he finish quickly I'd waive the late fees.

You can't work with these people...even after all my concessions the guy still gave me major attitude when I demanded that he hurry up or I'll sue him.

So Monday I'm getting the lawyers involved. Not sure about your situation, but I had my guy sign a contract that specified late fees. So its a little easier to sue him, since the late fees will more than cover lawyer fees. Of course since you have a smaller amount, you can try your luck at small claims court.


> Simple...sue him.

I beg to differ. As an entrepreneur, this path would cost time and money. $2500 can't be such a big deal. Also, you'll never get support for the code by anybody else. As a programmer, I'd never work for anybody who sued a fellow programmer over disagreements (only possible case for excuse of this: trojan inside the code or backdoor.) You are part responsible because you hired the programmer,

Next time perhaps you should use a site like rentacoder, elance, or topcoder. And learn first how people use it, it is a tool to help you out, not a one-click solution.


So whats your solution to getting the programmer to finish a 1-2 month project that's a year late?


Don't. Restart from scratch. If you continue with this programmer, he'll never support your code anyway.


Thats what I'm saying. I'm not saying sue him to get him to finish, I'm saying sue him to recover the money.


You're assuming several things:

1. That he has money to pay. 2. That he will pay the money he's ordered to pay. 3. That he will pay that money in a timely fashion.

Bottom-line, this person is not going to give you a product that you're happy with and definitely not on the timeframe you need. Go ahead and file a small-claims case against the person but count the money gone.

There's lots of good advice on here about what to do, raise the cash again, hire a good programmer using the advice given above and below this and move on. Don't waste any more time pleading, threatening, or talking to this guy. Sue him and put it in the past, count the money gone. If you ever get any of it back, apply it to something different, server costs, etc.

Honestly? $2,500 is a very, very cheap price to pay for everything you've learned here. Learn from it and how to avoid this situation in the future (plan out all contingencies ON PAPER with the person ahead of time.)


Exactly.

Does your contract with engineer cover the very likely case of the project being delayed? I mean, most projects out there are subject to delays or budget overruns. Writing software is unpredictable business. If your contract does not make any provisions about this, that's very unfortunate but I'm sure you won't make the same mistake next time.

If your contract does cover it, then what you're entitled to is specified therein. Trying to reverse engineer the software so you can sidestep these provisions is very questionable, and would also expose you to litigation.


> Simple...sue him.

That's probably not going to help the OP achieve what he really wants, getting his software finished.

The programmer he hired agreed to do the work for about $8 / hour. Not sure a lawsuit can possibly make sense from an economic perspective since people that work for near minimum wage don't have a lot of extra cash to cough up for monetary damages.


Neither will waiting for the current guy to finish. If someone took his project seriously they'd be done in a couple of weeks, couple of months tops. What he needs to do is look back at his guy's performance in the last couple of months, and see if that level would be enough to get him over the finish line.


I'm very tempted to get the lawyers involved, but that will be expensive, take a long time and might not be worth it.

Sounds like you have a similar problem, at least Im not the only one.

I waived any late fees ( I didn't even mention them) and offered him bonuses if he finished within a certain date (he didnt but hes still demanding them).

Its amazing how angry he gets when I ask in the politest way possible that he show me some progress, even when he's 6 months late!


You don't need a lawyer for small claims court. You just pay the small fee(something like 20 bucks) and you get to present your case in front of a judge. And the small claims court case really won't take that much time. Chances are, you'll be presenting your case within 3-4 weeks.

I would give your guy the ultimatum right now. If your experience is anything like mine, it'll be faster for you to hire a replacement(who'll be paid upon completion) to finish the site from scratch, than it'll take your current guy to finish.


You might be able to get a debt collection agency involved. I don't think debt collectors charge a lot in up front fees, and they probably work fast.

It sounds like you are really thinking about just forgetting about it. That might be a good idea, getting your app or money may not be worth the money.

But before you do, check to see if there are any fast and efficient things you can do to collect. Small claims court might work out. Would a lawyer be willing to take your case for a large percentage of the money, and no payment upfront? It might not work, but it will at least give you a chance to get your app without putting in a significant amount of time.

I found an ebook with tips for collecting business debts, so the ebook will probably have a lot of information you can use. http://www.viacorp.com/DebtBook.html

Edit: I just realized looking through the book that you can petition a court, this might include small claims court, to send the case to arbitration. Arbitration has a lot of downsides for the consumer. The results heavily favor the plaintiff, and the defendant usually pays the fees if found guilty. But all of that is good here.


Have you paid anything yet? Don't.

Drop him. Here are two good reasons to drop him:

1. You are wasting your time -- I don't think he'll give you anything, or you'll end up spending so much money that profits are unreasonable.

2. Even if he does, what guarantee is there that there is no "surprise" hidden in the code? I have seen freelancers do that when they're disappointed in the buyer.

Find another guy and learn from your mistakes:

a) Pay weekly, based on milestones.

b) Setup a Subversion repository and do a mandatory weekly commits. No commits, no money.

c) Ask for a very short but functional proof-of-concept first, once it works and you have received source -- pay money by this formula: $ = rate x hours.

There is no trust between you and freelancer and you should never work without at least a bit of trust and understanding of each other.


I paid him more than 2000 dollars of the fee already unfortunately. I've learnt a lot from this, specifically that even really good coders (or any professional) can be very good at what they do but still be completely unreasonable and willing to screw you.


He's not a really good coder, really good programmers don't work for peanuts. Good programmers in America make anywhere from 6k to 10k a month, what exactly do you think you're going to get for 2k?

For the price you're offering, you won't find any good programmers that'll work for you, you'll only find hacks who think they can and are more than willing to take your money while learning.

If you think you can spend 2k to have some monkey write some code for you that you're going to sell and make a ton of money with, you're sadly mistaken. If you think your idea is with 90% and he'll do all the work for 10% and 2k, you're also sadly mistaken and very like to be taken, as you clearly have.

If you think you have an idea that's worth anything, you need to find a good programmer and bring him on as a full partner, he'll be the one doing most of the work and offering anything less will be insulting and unlikely to work out for you. He needs to be as vested in the success of the endeavor as you or it'll likely fail.

If you just want your idea implemented by a contractor and you keep all ownership and a reasonable estimate is that it's two months of work, then you're looking at 10k to 15k to get it done right by a competent programmer, not 2k. You'll get what you pay for.


One programmer I know was making $16k per month, and that was salary. People who assume more of the risk tend to make more than that.


That's nearly 200k a year, that's certainly not typical. What was his specialty?


No, it's not typical for programmers as a whole, but it's typical of his specialty, which is quantitative market analysis. He quit to do a Web 2.0 startup for a lot more money.


I doubt he's a really good coder. A really good coder would rather get the job done and get paid quickly rather than bitching and whining and making a big mess for months on end. And if the challenge was way above his skill level he'd say so instead of dragging the project for several months.


I think the comment above is the best path you have now. Get another coder, the development costs so far have been lost. And now pay him every time he/she delivers on a repository (always have the source code with you).

Having a one year project and having no source code for what you paid for is unreasonable for a key asset of your company.


I'm inclined to agree with most of what I've seen posted here - you probably got an unprofessional programmer who has just enough skill to get in over his head. He realized it's more work than he thought it would be, and thinks that it's your responsibility to pay him more.

Your best bet at this point is going to be to start over. Get yourself a good hacker; I bet there are a few around here looking for short-term gigs - I am, for one. If you have a decent written spec, it should be no problem for any decent programmer to give you a reasonably accurate timeline and meet the milestones. As others have said, pay by the milestone, and make sure you get the source code.


I'm a reverse engineer, but I usually work with C/C++ and .NET stuff (PE-COFF, ELF, and Mach-O). I've never done Java Swing.

I imagine it's plausible given how easy most .NET projects are to disassemble. If you contact me at my email address at (alnayyir #at# gmail dot com) I could discuss the matter further with you.


Cut your losses. At some point you have to admit to yourself that you've been had and you won't get any kind of compensation. You're just wasting resources. Next time you'll be more apt at heeding the red flags.


Also, it's very unlikely that he's really almost done. Haven't you heard that the first 90% of the project takes 90% of the time, and the last 10% takes the other 90% of the time?

And doing business with jerks is bad business.


I feel like I've put enough time into this (not to mention money!) that makes it very hard to do that...


It may be emotionally hard to cut your losses, but it may be economically sound.

There's a concept in economics called "sunk costs". You can't recover your investment, so whatever your choice, the money's gone. The only choice you have at this point is: do you continue or do you stop?

Since it looks like you have to pay more for continuing (and maybe even more after that) you should contrast that to the costs of starting over. It may be better to stop and try again if that's cheaper. It feels terrible, but it can be the best choice.


  There's a concept in economics called "sunk costs"
In Poker its called "knowing when to fold"

http://en.wikipedia.org/wiki/Betting_(poker)#Fold



You must consider the opportunity cost as well - imagine yourself three months from now. You could be three months away from this mess, well towards making your $2000 back (or better), well into a new project or the same thing with a new developer and an improved contract.

Or, you could still be arguing with this guy over code you don't have, a product he hasn't finished, and a price that's still rising (it's not going to go down), and even at best you wont trust the program or have anyone to maintain it.


Yes, many of us have felt this way. Be smart, draw a line under this and start again with a new coder. In a years time you'll look back and be glad you did. In an alternate universe you won't and it will make you miserable.


First question: Has he released any source code to you yet? You mentioned in one of your replies that he's met (and you've paid for) two milestones. At either of those milestones, did you receive the code? I assume you don't but I figured I would ask.

Second question: You said, "I offered him 10 percent of profits" - did he accept? Was that part of the written agreement or an oral offer? My thinking is that he's probably going to ask for more and more as he gets closer to finishing and, if you do decide to totally back out and start over, this is important.

Third question: What will he do with the code he has written if you decide to end the project? Will he release it for free, market it separately, or...? Does your contract cover that?


To answer your question, Java is very easy to reverse engineer. Google for a decompiler. Several years ago I would get an almost perfect copy of the original source, with the proper variable names, etc. The only thing missing were comments :)

The legality of you reverse engineering the software is a different matter. But if you have paid the $2500 in question, then you own it.


Whether you own the software or not depends on what the contract says. It is entirely legal to sign a contract to perform a service for somebody for some amount of money without assigning them copyright in the results.


okay, first, you can't use html in an hn post for formatting. you should go back and add two-return-key paragraph breaks, so your post will be readable.

second, getting someone to "reverse engineer" an existing app is a very bad idea. you're already in a bad situation, that would make it even worse.

assuming you find someone to do this, they are going to be morally questionable. i, for one, would never agree to do such a thing, not for any price.

if you're not happy with the work you're getting, you should have said so a long time ago. if the terms you've negotiated so far allow you to do so, i'd offer him some smaller amount for the source code and call it a day. if he says no, hire another coder to start again from scratch.

2500 bucks is not very much money to lose. i just lost six months of my time working on a startup that didn't pan out, for which i received a grand total of 1500 bucks. given how much i was making at my last full-time job, that's an opportunity cost to me of about 50 grand. but i'm sure as hell not going to make things worse by mucking around in the situation any longer. i took my lumps and i'm moving on.


I am shocked and appalled at your suggestion that reverse-engineering is morally questionable. On the contrary, reverse engineering is legally protected, a major part of the foundation of the computer industry, and good fun to boot.


2500 dollars is a lot for me, in my current situation. Surely it's not morally questionable as I paid for a service, to be completed at an agreed date at an agreed price. If he refuses to stick to the deal then I don't see how its amoral for me to pay him the 2500 dollars and keep my software, even if he wants to try and squeeze more money out of me.

Please feel free to let me know why it would be wrong for me to do that, as I'm not trying to be unethical.

Also: corrected the dodgy formatting!


that you "paid for a service for which you didn't receive" is your version of the story. i'd be willing to bet that the programmer involved would have quite a different one. i'm not making any claims about who's right or wrong, i'm just pointing out that he's likely willing to fight you over it.

suppose you reverse-engineer the app and the old programmer finds out. he says "hey, that's my work, you are not allowed to do that" and sues you. if he's as vindictive and unproductive as you claim, that seems a likely outcome.

what you're talking about is throwing good money and effort after bad. you're digging yourself into a deep, dark hole. you and the programmer could be taking revenge shots at each other for years.

starting over puts you at zero, which is way better than sinking deeper and deeper into negative numbers.


  okay, first, you can't use html in an hn post for formatting. you should go back and add two-return-key paragraph breaks, so your post will be readable.
I had the exact same thing happen to me the other day when trying to submit a poll, it popped up <p> tags all over the place, so I'm sure it's not the guys fault.

I had to go back and edit the thread to make it readable after someone pointed it out to me.


oh. huh, didn't know that.

by the way, by putting a couple of blank spaces at the beginning of the quote, your comment is causing the page width to get stretched out.


froo may be using a browser where that isn't evident.

Until PG fixes, you can fix this yourself client-side with a bookmarklet or a greasemonkey script. See ...

http://news.ycombinator.com/item?id=437002


It's customary to quote text using italics (that's * around text). Four spaces are for code.


I've been in similar situations. As others here have pointed out your time is the most valuable thing on the line here and there's a big danger of wasting a lot of it if you sue. Here's one way you can handle it:

1. The quality of the work is probably middling to poor...

2. ... so figure out how much of your time $2k and the code is worth to you.

3. Hopefully you're friendly with an attorney. Print out all of your documentation for this deal, sort it chronologically, and run it by them to see where they think you stand.

4. Provided #3 turned out okay have your friend send a letter asking for the deliverables or a refund.

5. Be prepared to either walk away or negotiate an agreement both of you are equally dissatisfied with.

6. If you walk away be careful about using the binaries you've got, this guy may have rights to the profits even with everything else that's happened.


I've hired a coder to create me a desktop app using JAVA swing that I planned to sell.

You might be asking for advice in the wrong place.

If you want to make money selling desktop apps, the advice you'll likely get from this crowd is "learn how to do it yourself." Otherwise, give your coder at least a 50 percent interest in all of the proceeds from this app.

Given what you tell us of his reaction, it sounds like you might be offering him an insulting percentage; think about it like: where would your idea to make a quick buck be without somebody who writes code?

Sometimes it's all about respect; other times it's about credit (being known for coming up with X); and still sometimes it's all about money, but most of the time it's a combination of the three. Find out what his combination is.


I appreciate that I can't write code, he has a skill I don't have. But I hired him to do it, he agreed a price, but hes now almost a year late and despite me offering him bonuses, 10% of the profits, hes still holding me to ransom and wanting more.

If I hire someone to build a house they don't get insulted when I offer them 10% of future rental yields. How can it be insulting to offer a percentage which wasn't even in the initial agreement?


A programmer views "a year late" as, makeing him do more work than he was contacted to do. House construction doesn't work that way. You hand over a detail plan diagram and the contructor develops exactly that. One doesn't break down half the house after it's 80% done to build it a different way and check how it looks. Though that happens frequently in software development.

Most probably than not, this programmer can work a year more on this project and still not "finish" it in real sence. Specially if there was no specific finishing point mentioned in the agreement.

Software rarely gets finished. All these might be the programmer's point of view, just wanted to mention.


To add to this: I recently finished a small contract that I took on for the sake of family (don't do this, by the way). As a general rule I don't take contracts from people who don't know how to program, for the following reasons:

- They don't know how to write a specification. It's like asking a non-architect to draw you blueprints to a house. You end up with things like "there should be an arch here that's... um... about this tall".

- They don't actually know what they want 80% of the time. They will tell you (and you will document if you're smart) how they want it built, and when they see exactly that they will turn around and want it another way.

- They have absolutely no appreciation for how much work you're actually putting in. "But it's just a button on a page!". It's often insulting to work with people like this.

The spec for my contract changed constantly, and in the end took twice as long as I had anticipated.

And I still haven't gotten paid.


If I hire someone to build a house they don't get insulted when I offer them 10% of future rental yields. How can it be insulting to offer a percentage which wasn't even in the initial agreement?

Maybe you're thinking about it in the wrong way. If you were to commission somebody to create a painting, you wouldn't paint over his or her name, scribble your own over it, and try to take credit for the work, would you? Even if you bought an unsigned piece of artwork for investment, you wouldn't go around telling people you created it, would you?

Sometimes it all boils down to something as simple as respect or attribution. If this desktop app is the next big thing, the coder probably just wants to at the very least make sure that he gets some kind of acknowledgment for his work. For some, acknowledgment can be as simple as ensuring nobody rips off their code and reverse-engineers it, and stamps a different name on it. For others, it is about monetary compensation.

I don't know what this dude's deal is, but of all the factors in your little moneymaking scheme, having the ability to write working code is probably the most valuable. 10 percent doesn't seem like a very equitable exchange.


I appreciate that coding software is an iterative process.

But this software was planned out very clearly, there were some minor changes, but nothing big.

Im not sure why 10 percent doesn't seem like a good deal for him, he quoted me 2500 dollars, which is all he should get. Out of desperation and a desire to get the project moving and actually get some results, I offered him 10 percent when it was several months late.


Your biggest problem is that having offered him a stake in the project, you've created a situation in which he now has a reasonable right to control over the way the source code is deployed. I'd assume your programmer set up server authentication to get visibility into the number of sales. If I was working in return for a percentage of sales I would expect a way to independently verify sales figures as well.

That is really going to limit your flexibility down the road, so it is probably easier to just develop from scratch. Perhaps you should let him know you're disappointed with how things have worked out and are thinking about getting something simpler developed by someone else. Be honest and don't come across as personally critical and the discussion may push him to finish things, or break him of the mindset that you are trying to take advantage of him.

I outsource design work on a per-project basis, by the way, and like to ask people to let me know how long they take completing the work, especially since most of the time it involves iterating a couple of times. This approach lets me figure out what their hourly take-home is when all is said and done. If it ends up being too low, I like to increase it a bit more to build good relationships. Having reliable go-to people who can take care of problems on short-notice at a low cost is a lot more valuable than losing $20 here and there over individual projects.


This approach lets me figure out what their hourly take-home is when all is said and done.

What, precisely, is your "job title"?

Very very few can truly afford to "outsource" design. When you start adding metrics, time worked, etc. it's hubris. Your post started off OK but ended up badly.

When you use the words "take-home" in the same sentence as the word "hourly", you're violating some serious syntax.


If you want to make money selling desktop apps, the advice you'll likely get from this crowd is "learn how to do it yourself." Otherwise, give your coder at least a 50 percent interest in all of the proceeds from this app.

I don't know about that. Personally, I'd take $2500 over a 50% interest in most apps-for-hire I've seen. The OP may, in fact make a lot of money off of what he's trying to sell, but asking a programmer he doesn't already know to take that bet seems like a way to get a programmer who can't find other work (probably for a good reason).

To the OP: even if you're right, morally and legally, and you manage to get someone to disable the authentication, and you don't get sued, what you're asking for is still a bad idea. You won't have the source code. You won't be able to make any worthwhile changes. You won't get very far selling an application that you can't modify.

Your best bet is to either start over (someone here might be willing to do the work, for example - I'd consider it), or work things out with your programmer. Note that working things out might involve you getting a lawyer, though he might well have some legitimate claim to more money, if, for example he did work beyond the original spec for your project.


I'm sorry but this is bad advice. Coding isn't a special skill that can't/shouldn't be hired.

He hired a guy to write code. That guy seems to be jerking him around. The way forward should be to dump the guy and get someone else. There are a lot of software engineers out there. Reneging on a deal isn't ok just because you know Java and your client doesn't.


There aren't a lot of software engineers out there who will do two months of work for US$2500 and nothing else.


Give up and start over with someone else.

$2500 for 2 months of work comes out to 8 dollars an hour. This isn't a good wage for a programmer anywhere and should have been your first hint that this wasn't going to work out.


This is potentially very dangerous advice and I would not be so quick to accept it were I the OP. The question is, "Since the original programmer is almost finished with the entire thing, if you fire him before the contract is finished and start over, what will he do with the code?"

Depending on the contract structure, he might be free to sell it on his own, give/sell it to a competitor, or release it on the web for free. Meanwhile, poor OP is now six months behind schedule and has to start over.

Sorry but I don't know how you can be so black and white about the issue without us knowing more information. If OP followed this advice without thinking through the problem, he could be much, much worse off. It could be that you are right but, without more info about the contract, we don't know.


"$2500 for 2 months of work comes out to 8 dollars an hour. This isn't a good wage for a programmer anywhere ..."

You're very wrong about this. I ran an outsource programming company in the Philippines for years, and $8 per hour is far higher than the highest rates I ever paid my best programmers.

Try living in a third world country some time, and get used to the labor rates they expect, before you make blanket statements about what's a good rate "anywhere".

There are literally thousands of qualified programmers in third world countries who would die for a chance to earn $8 per hour. Many of them are lucky to earn $8 a day ...


I assume the programmer is not working on this project full-time.


Even so, $2500 is less than a week's worth of work for anyone good.


In a salary or for freelance? I think salary hours are typically 0.5 * freelance hours, is that right?

So inside a company, $1250 is less than a week's worth of work for anyone good?


Freelance. Salary-wise, $1250 a week is about $62K per year which anyone with a pulse can get in silicon valley.


So what does anyone good get then? (salary-wise)


As an Indian living in Bangalore, I feel odd saying this, since I know that the myth of the "substandard outsourced coder" is largely just that - a myth IF you know what you are doing, but that said, but do not use sites like rentacoder or try to save money by outsourcing unless you personally know someone good.

Find out the market rates for a good developer in your area and pay a decent wage commensurate with the time taken to write good software (2500 $ isn't much even here in Bangalore, I think the guys is just taking you for a ride, unless the software is very simple in which case it can be rewritten trivially) .

Try to meet up with the developer every 3 or 4 days (or at least talk on the phone) and as someone mentioned here, own the repository he checks into.

Good Luck!


A reality check for you.

First, $2500 covers 50 hours of work. Do you think your app can be written in that timeframe ? Hardly. So this amount is not a compensation, it's more of a marginally attractive retainer.

Second, the 10% share is a joke. The reason being is that if there is a written app, then 10% commission gets you a simple e-com distribution (shopping cart, invoicing, payment processing). The 30% commission buys you a "fire and forget" kind of deal - you give the distributor an app, they brand it, promote, market and sell it and they also provide front-line support. THIRTY PERCENT.

You effectively offered a guy a 90% commission deal and now seem to be surprised he isn't happy. I wonder why.


Nonsense. Once the developer accepts a $2500 offer he is obliged to do his part of the deal. Not to mention that $2500 can be a lot of money for a lot of people.

The 10% share of profits is a sign of good will on behalf of OP. It was not part of the original agreement and in that question is ridiculous to complain that it is too small. The developer is not a cofounder, he is a freelancer.

I'm sorry but contractual obligations will always come before what seems fair or not.


Which part of what I said is a "nonsense" exactly ?

I merely pointed out that ($2500 + 10% of profits) is a patently bad deal for the developer and it explains the sour state of affairs that they both ended up with.

The fact that the developer is not upholding his end of a deal is another matter. I haven't commented on it.


$2500 for 50 hours of work works out to $50 p/hour. I don't know what the fair market rate is for freelance client side app dev, but that sounds a bit low. Most web designers I know bill higher than that. For $50 an hour I'd either expect the developer to be really junior, or experienced but totally unaware of their own value.

Also, I agree that providing a percentage of the possible profits is not a very good motivator. Unless you're some master marketer with proven businesses experience behind you, it's a bad gamble for the programmer.


Offtopic but seriously? $50/hr is low? I've had people tell me that my rate is too high when i was charging $20/hr. I find that a lot of people treat freelancers with a lot of prejudice because of their geographical location..

To the OP. The programmer is black-mailing you. That never ends well. If you can, just scratch the project and start over.


$20/hr is high? I'm sorry, but you're working for the wrong people. There will always be people who want you to make them a full-featured website with forums and interactive crap for $500. Ignore these people - ignore anyone who doesn't know how much your work is worth. Working with them is just asking for trouble.


$50 IS low. Think more about your costs. If anyone tells you anything less than $200/hr is low (as a freelancer), leave them behind you.


$2500 will barely cover about 100hrs of effort (2.5 weeks). So a $2500 is a really simple app. If he has put that effort already consider that you have had your moneys worth.

Likely, he was thinking of a one bedroom house. You were thinking swimming pool, gourmet kitchen, etc, etc. Professional software developers know how to deal with it. The lesson is easily worth $2500.


Cut your losses. You need to work out, what's worth more - the time or the money.

You could start legal proceedings and 2 months down the line see someone else launch your product... I'm one for speed.


To the original poster on this topic...

I know you made a deal with this developer but the fact that your original deal was to build your app within 2 months and it has been almost a year now - you REALLY need to walk away. It hurts both emotionally and financially, but based on all the feedback you've received - you should really consider what the community is telling you and move on.

I write software for a living and I have been in positions where other contractors have written software for my groups so If I ever made a deal with someone that included having software done in two months - waiting almost a year later for the project to be completed is just plain ridiculous and totally unacceptable. Especially when you take into consideration all of the things that you have mentioned.

It hurts us to hear about your story, we wish you the best but help yourself and start over. Take what you have learned from this experience and apply it to the next iteration. The fact that you've worked through a lot of questions, issues and the conops of how your application would work - take this experience and knowledge and find someone that comes recommended and is trusted and give it another shot.

Best wishes.


I'll agree with the others and say drop this guy without a second thought. That said, if you wrote the contract to include disclosure of source code you should be able to legally ask for it. That said, $2500 is a relatively small amount when we're talking about a complete system with source code rights. Your best bet is likely to file for small claims (usually costs you between $25 and $250 depending on the amount, and you can only file for up to $2500 here in Florida). You likely will not make it to court, and he'll settle. Why? Because everyone fears litigation, especially when they're wrong.

Next time around, write the contract the way you want it to read, and account for failures. Make certain everything is in writing, even if there is a deviation agreed upon by both parties. And above all, get what you paid for in increments and never pay in full before the project is done.

As a developer, I respect the 50/50 plan as well as the hourly one. 50% up front to cover development costs, 50% at the end to ensure I finish. Works like a charm.


Didn't you come to any kind of written agreement on your DEAL? If not You have to be very careful of every step you are planning to take.

I suggest you to be flexible in this matter & take a step which would do less damage to your investment. I hope HN folks will come up with some good advices :).


Well there was a written agreement, but the funds were released in 4 separate milestones.

However, once I'd released 40 percent of the money and it was slightly late, I'd already wasted 2 months and said goodbye to 40 percent of the funds, so I felt like I had to stick with it. A foolish move in retrospect!


Who owns the source code according the agreement? How were the milestones defined?

You can technically reverse engineer the code (it will not look exactly like the original). Depending on the agreement though, if the coder owns the source, you're probably better off not doing that.

Next time specify who owns the source in the agreement, and make sure that you're getting the source as you release the funds.


I presume you (or your company) owns the IP. If so, fire him, take the code and find someone else (in this economy, that is not as challenging as it seems) to look at it. You will lose several months, but you will gain clarity and peace of mind (assuming you learn from this lesson and hire a better personality).

I went through the EXACT same situation with a Java developer last year. The developer extorted us, refused to hand over code, always demanded more money, was rude and insisted that he was doing us a favor. We finally let him go. Coincidentally, it was around August 2008!

Fire him and move on.


I feel for you, sorry. If I could be so bold as to offer advice to anyone doing something in the future I would say:

Have a lawyer draw up a contract. Make it clear that you own the copyright to every line of code that goes into the revision control system that you own, and if possible, manage. Make sure the contract ensures you see the code often, making it a vital part of signing off any milestone. Always, always have a contract, even if you're out on this adventure with a pal. Money can't buy you friends but it most certainly can lose you some.


Go ahead and get this guy to give you a full copy of your source code as it now stands. Since he did not finish the project in two months as specified in the contract - you have a written contract, right? - you can terminate the business relationship on the grounds of breach of contract. There should be no need to reverse engineer software that you paid for. The nature of the business relationship here is that you own full rights to the software. Best of luck to you as this sounds like it will be a real pain to resolve.


I hire developers from time to time. I avoid the situation you are currently experiencing by asking for a development plan which includes milestones and a requirement for "reasonably" documented source code. After agreeing on a price, the fee is split based on the milestones, and paid as code is checked-in and the milestones are reached. If the developer doesn't meet the schedule or decides to bail on the project, then another developer can pick up where the previous "coder" left off.


Yes reverse engineering is trivial (unless a very good obfuscator is used) if you have the binary jar files.

However, like others have mentioned, its highly likely there is nothing there of value - so you there is a pretty good chance you will have to write it off.

I have heard of similar things happening to this - commonly when the development is done in SE asia (have heard of several cases in the Philippines of this exact thing happening, interestingly).


There is a lot to say on this, but much of it has already been said. I'll add just one thing:

An important red flag (among all the others in your post) is the statement that he is "almost" done.

When any programmer thinks about that statement, it's almost certain to elicit a belly laugh.

If he appears to be "almost" done, it is highly likely that he is really around 50% done. Keeping that in mind should help you make your decision to walk away.


"It currently authenticates the user on startup using a script on his server." <br /><br /> Wow, ridiculous. This should definitely be changed before project completion. You need to get more stuff in writing from the sounds of it. <br /><br /> I don't want to scare you, but from the sounds of this post, I don't see things working out in a positive way.


> I'm thinking the best way would be to get someone to reverse engineer the software

You don't have the source code? He just gives you a crippled binary to demonstrate his progress which only works after authenticating with his server?

I'm not sure why people here are telling you that there is either some ethical or legal problem with taking control of the work you already paid for.


There is a legal problem. Unless the contract specifically states that the IP for the project belongs to the buyer, the software belongs to the programmer, even after it has been paid for. Threatening him with legal action is a waste of time.


This seems like a pretty basic thing for the contract to specify. What else would the buyer be paying for?


It's unintuitive, but most software contracts do not explicitly give the buyer the IP. It doesn't sound like either of the parties involved know what they are doing, so it's unlikely the contract gives the buyer any power over the IP.


A contract is only valid if something is exchanged in both directions. This is a legal principle called consideration, and in the absence of consideration a contract has no legal legitimacy.

Without some transfer of IP rights either by copyright assignment or by bare license I don't see what consideration would be for a contract to produce custom software.

If the contract is determined to be invalid the buyer can then make claims to the IP under the doctrine of promissory or reliance-based estoppel since they have built a business on the expectation that the software would be delivered with appropriate rights to distribute and modify it.


What precisely is transferred depends on the contract and the legal jurisdiction.

I have some clients that were gypped for a lot more than USD2.5k - they thought they were getting the IP and instead they were getting a non-transferable license to use (and the software was buggy and had - appallingly - developer backdoors and remote off-switches).

Explicit terms in contracts is a very smart move; don't assume anything about what the local version of contract and tort law will deliver to you.

Of course, off-shored development makes it all a bit more complicated - which party actually holds source code and can be sued? It's a bit of a mine-field.


Thanks for all the advice guys. I'm not from California or even the US, so I wasn't sure about my legal options here. But I've done a little reading and the advice here has helped a lot. It's amazing how solitary you can feel doing this sort of thing! Thanks to all.


What jurisdiction are you in? That might help people give you better advice about legal options.


I'm in San Fransisco...


Tell him to provide the source code to you. You have a 90% stake in the product, you are of course allowed to have a copy of the code. When you have a copy of the code, make your terms clear.


what does the contract that i hope you got signed say?

if you didn't get a contract signed, you kind of brought this on yourself. if you did and he's violating the terms, take him to small claims court.

if there isn't a contract, consider walking away and finding someone else to do it.

i'd highly suggest avoiding rentacoder and simlar sites. they do not typically produce high quality work, and there is often a language barrier issue.


Walk away. There is no point in having the relationship when trust can never be there.


It's a bad working relationship, you have to end it. The only question is how to salvage something.

If you've paid for work so far, and your contract gave you rights to the source code, demand the source code. You could hand that to another developer and it might be of some use.

If he won't provide it, and especially if he's local, sue in small claims court for your money back.

If you have a running version without source, you could rebid this elsewhere and use both your previous correspondences and the working version itself as a new spec to accelerate the new work.

If it's truly $2K worth of work by an ornery contractor, it can likely be reproduced for about the same cost. But it's also possible that he was way undercharging you and that's why he's become ornery.

If you have a working code delivery but not source, Java code can be decompiled to recover somewhat useful source code. However, unless there's some fancy custom algorithms/graphics/etc. in your app, a basic 'Swing desktop app' might be easier for a new contractor to build from scratch in their style than try to reuse something from an unreliable coder. Only go the decompilation route if you are confident of your rights to the work (because it was clearly a work-for-hire with you receiving the rights under your written contract, and you haven't orally modified that contract in your pleadings with the developer).

Rentacoder and other sites really help prevent a lot of these problems by nudging people -- especially those new to software development -- into doing things the right way... having a clear contract, planning for likely delays, staging things, getting multiple bids for comparison, etc.


Its now almost april and hes almost finished.

Call me skeptical, but...

:)


You were cheap and you've been had. Learn two lessons and move on.




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

Search: