

Ask HN: I've had some software developed, now the coder is holding me for ransom. - pixpox3

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.<p>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.<p>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.<p>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.<p>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.<p>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.<p>Thanks for any advice.
======
vaksel
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.

~~~
pixpox3
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!

~~~
vaksel
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.

------
mannicken
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.

~~~
pixpox3
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.

~~~
gnaritas
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.

~~~
kragen
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.

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

~~~
kragen
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.

------
Hexstream
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.

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

~~~
lucumo
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.

~~~
froo

      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>

------
ScottWhigham
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?

------
andr
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.

~~~
kragen
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.

------
hedgehog
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.

------
allenbrunson
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.

~~~
froo

      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.

~~~
allenbrunson
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.

~~~
gojomo
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>

------
indiejade
_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.

~~~
pixpox3
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?

~~~
habibur
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.

~~~
potatolicious
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.

------
menloparkbum
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.

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

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

~~~
hhm
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?

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

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

------
plinkplonk
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!

------
huhtenberg
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.

~~~
andr
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.

~~~
huhtenberg
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.

------
huherto
$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.

------
geoffw8
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.

------
spacecowboy
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.

------
abyssknight
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.

------
chanux
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
:).

~~~
pixpox3
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!

~~~
dablya
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.

------
reinspruch
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.

------
philjackson
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.

------
Kaizyn
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.

------
daemon
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.

------
michaelneale
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).

------
natch
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.

------
brl
> 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
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.

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

~~~
menloparkbum
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.

~~~
brl
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.

~~~
com
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.

------
jneal
"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.

------
pixpox3
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.

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

~~~
pixpox3
I'm in San Fransisco...

------
markessien
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.

------
noodle
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.

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

------
gojomo
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.

------
jodrellblank
_Its now almost april and hes almost finished._

Call me skeptical, but...

:)

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

