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