5 ms·
Ask HN: I've had some software developed, now the coder is holding me for ransom.
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.
- chanux 18y agoDidn'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 :).
- pixpox3 18y agoWell 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!
- dablya 18y agoWho 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.
- allenbrunson 18y agookay, 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.
- pixpox3 18y ago2500 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!
- allenbrunson 18y agothat 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.
- vaksel 18y agoSimple...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.
- pixpox3 18y agoI'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!
- vaksel 18y agoYou 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.
- chris11 18y agoYou 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 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.
- indiejade 18y agoI'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.
- pixpox3 18y agoI 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?
- indiejade 18y agoIf 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.
- Hexstream 18y agoCut 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.
- pixpox3 18y agoI feel like I've put enough time into this (not to mention money!) that makes it very hard to do that...
- gabrielroth 18y agohttp://en.wikipedia.org/wiki/Sunk_cost http://en.wikipedia.org/wiki/Sunk_cost
- lucumo 18y agoIt 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.
- froo 18y agoThere's a concept in economics called "sunk costs" In Poker its called "knowing when to fold" http://en.wikipedia.org/wiki/Betting_(poker)#Fold http://en.wikipedia.org/wiki/Betting_(poker)#Fold
- ftse 18y agoYes, 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.
- 18y ago
- geoffw8 18y agoCut 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.
- ScottWhigham 18y agoFirst 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?
- markessien 18y agoTell 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.
- daemon 18y agoI 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.
- noodle 18y agowhat 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.
- mannicken 18y agoHave 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.
- pixpox3 18y agoI 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.
- hhm 18y agoI 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.
- Hexstream 18y agoI 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.
- gnaritas 18y agoHe'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.
- huhtenberg 18y agoA 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.
- andr 18y agoNonsense. 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.
- huhtenberg 18y agoWhich 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.
- dkubb 18y ago$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.
- jneal 18y ago"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.
- andr 18y agoTo 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.
- kragen 18y agoWhether 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.
- brl 18y ago> 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.
- menloparkbum 18y agoThere 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.
- brl 18y agoThis seems like a pretty basic thing for the contract to specify. What else would the buyer be paying for?
- menloparkbum 18y agoIt'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.
- brl 18y agoA 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.
- menloparkbum 18y agoGive 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.
- a-priori 18y agoI assume the programmer is not working on this project full-time.
- menloparkbum 18y agoEven so, $2500 is less than a week's worth of work for anyone good.
- hhm 18y agoIn 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?
- menloparkbum 18y agoFreelance. Salary-wise, $1250 a week is about $62K per year which anyone with a pulse can get in silicon valley.
- deleted 18y ago[deleted]
- deleted 18y ago[deleted]
- hhm 18y agoSo what does anyone good get then? (salary-wise)
- 18y ago
- chiffonade 18y agoYou were cheap and you've been had. Learn two lessons and move on.
- hedgehog 18y agoI'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.
- philjackson 18y agoI 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.
- plinkplonk 18y agoAs 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!
- natch 18y agoThere 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.
- gojomo 18y agoIt'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.
- huherto 18y ago$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.
- deleted 18y ago[deleted]
- reinspruch 18y agoI 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.
- spacecowboy 18y agoTo 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.
- joanou 18y agoWalk away. There is no point in having the relationship when trust can never be there.
- jodrellblank 18y agoIts now almost april and hes almost finished. Call me skeptical, but... :)
- pixpox3 18y agoThanks 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.
- Kaizyn 18y agoGo 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.
- michaelneale 18y agoYes 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).
- abyssknight 18y agoI'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.