What Do You Do When Outsourcing Goes Bad?
Xphox wonders: "Recently we have been referred to an outsourcing company to finish customization on a script that the author had no time to complete. Everything was going fine until recently. At what point do you consider they may have just ripped you off, and how do you know when to file complaints and withhold payment?"
"I have been working with what I thought was a reputable outsourcing company, referred to me by the author of the software package. We agreed that payment would be made once everything was completed. After a few missed deadlines, the project finally seemed to be finished. The only thing left was a small bug fix, and an install script which needed to be completed. As agreed, he delivered the install script, and we made the final payment. Upon testing the new install script we noticed things did not work as intended, and all attempts to contact the outsourcing company has resulted in the following answer:
'My guys are still working on it.'My fear is that if I don't act now, I will not be able to recover any funds, and will be stuck with a product that is useless. It has been 9 days since I've received an email from them, and I'm starting to think I've just been taken advantage of. Since the script is protected with Source Guardian, I am unable to finish the modifications myself."
I can usually tell when outsourcing has gone bad. It's about the time my boss calls me into his office on a Friday afternoon and explains that the company needs to right-size their domestic staff and that, unfortunately, my position has become redundant.
Every year during my review, I just pray the words "slashdot.org" aren't mentioned.
1: Stop payment on cheque.
2: Demand refund of deposit.
3: Get one return ticket to contractor's location via Expedia.
4: If 1 or 2 fail send return ticket to "IcePick" Vinnie.
5: Pick up Vinnie at airport in a couple of days.
6: Take money home and count it or enjoy photos of mangled corpse(s).
7: ???
8: Profit!!!
Trolling is a art,
Get the source code! You might have called it outsourcing, but what you really did was pay someone to have an code empire in your domain. Even if they do finially deliver the finished product, you stuck with them for further development.
The force that blew the Big Bang continues to accelerate.
Name them, especially here, and let them know you've done it. That will teach them a lesson.
So you paid without testing the final product? I suspect all you can do now is sue. We've received "finished and tested" outsourced projects before that didn't even compile. You have to be very careful out these things.
Disconnect your television. Do your own research. Draw your own conclusions. They're probably lying. Don't be a sheep.
You know that feeling you get in the back of your head when you hear someone telling a lie? The "OMG...this person is lying to me, and I'm paying them to do it" feeling?
I usually let that happen twice before I call them out on it.
No battles to the death are recalled. Mumpsman can hit to attack and cause brainsmashing.
I hate to take this stance, but it has to be said. This thread is probably going to get a lot of cautionary posts that ring to the effect of "you get what you pay for" and so on. And seriously -- is it that hard to find someone with the skills to do a task like this ("scripting", as you say) locally, at a reasonable price?
-- Maciek
Next time you have a comprehensive acceptance test. YOU conduct the test, or you designate a third party. You do not allow the contractor to conduct the test. You test everything that matters - features, performance, capacity. Whatever. You spell this out in the contract and you don't pay until it passes.
What time do you have to react? Like if you act now as opposed to two weeks you'll make back your money? Unless you sent the money through a very trusting (read, you do a lot of business with) bank that has some sort of angel stop-payment plan.. you are S O L.
Where is the contract? Whose laws govern it?
You went with a company outside of your country to do a deal..
Why didn't you test what you got first and then pay for it...
I smell FUD... no details here, is this just an anti outsourcing fable?
My friend works as a consultant, and he was consulting at a company where they decided to outsource some programming to Russia. They get the program shortly before the deadline, and it DOESN'T WORK!!!
So they take the program, rip out all the shit (a surprising percentage of it), and rewrite the whole thing pretty much from scratch in the course of a week. They finally get it working, and hand it into the boss, without telling him how badly they got fucked by the outsourcing. The boss is impressed by the quality of the code, and decides that the next project they do should be sent to the same firm. Luckily, my friend wasn't around the next time they went with the low-cost outsourcing.
disclaimer: i am a progressive democrat.
but, really. when it goes bad? i have yet to see an example when the cost savings to a multinational corporation justify the damage done by outsourcing work.
you'll have people point to the study that came out that says that outsourcing is good for the economy. but is it? what it really provides is a decline in the quality of jobs in america.
let's think about this. company x has $300,000 it spends on paying 100 engineers. then it discovers it can save $200,000 by sending those 100 jobs to india. so with that $200,000, it hires 200 more engineers in america! net gain of 100 jobs here, and 100 in india! everyone wins!
except, of course, that the jobs that remain here pay 1/3 of what they used to. and that doesn't even include benefits. the moral of the story is, as always: when the company and stockholders win, you better be a stockholder. because if you're an employee, you're screwed.
go get it
You've been ripped off.
My other first post is car post.
As agreed, he delivered the install script, and we made the final payment. Upon testing the new install script we noticed things did not work as intended,
You made payment BEFORE you ran formal acceptance testing of the application (yes, including the installer). That was your fatal error. Once you've ponied up the bucks, you've lost all leverage short of a lawsuit.
If I were you, I'd email then and request a specific timeline/deadline for completing the work. Make sure your email contains language stating that what they delivered does not meet their obligations. Assuming they respond similarly (i.e. "we're working on it"), then at least you have some level of proof that they acknowledge that they are potentially breaching the contract you have. Then take their asses to court.
Good luck. Next time remember
- formal requirements
- explicit deliverables (see requirements above)
- formal acceptance test to ensure that the software actually meets requirements
Let me get this straight, you made final payment *without* getting the source code?
Wow.
Might be your best one, legal remedies overseas get sickening. Particularly in the India(is that jurisdiction?) judicial system. Something most outsourcing companies really don't understand, if the sh*t hits the fan on your contract the best case scenario is that it would take you a while to legally get compensation; worst case scenario is that the courts tend to favor the natives to their country more than the foreigners and you're out of luck.
...in bed
When you realize that the outsourced company thought you wanted Finnish customizations on your script. That would be a good time to ask for your money back.
Software Engineer, you get more than just a coder, you get IQ, you get somebody who understands the low and high level testing that needs to be done, you get somebody who can help you ask the right questions, you get somebody who can make sure the code compiles, that makes sure you get the code, that can rewrite or the crap code you already have, somebody that can save your ass, that is why we cost so much...
Onward to the Aether Sphere!
I consulted for an Atlanta firm which dealt in Sarbanes Oxley compliance software and my firm agreed to develop a rule based data adapter which sucks in raw data from external enterprise systems such as SAP and translate it. And my firm agreed to do so without having any one (else) with a bit of enterprise development experience hoping we would be able to outsource it to someone else in India (despite all my "muted" protesting).
Well, we picked a firm (which I believe was cheap enough to be picked), talked to a couple and they seemed knowledgeable and we were on. I wrote down the requirements myself and passed it on to them. There were two who where hands on and I provided any help they required plus the project management. It all went to shit in a couple of days. First, they wanted to bounce ideas off and around for a few days. Here, I am working from 8:00 AM in the morning through 2:00 at night, drilling requirements in to their thick heads, answering questions, go to bed late, only to wake up and realize that they had the same questions and were waiting all day for me to wake up!!
I got so pissed off after having to spend most of my waking day working on what they were supposed to, putting together answers to questions already answered, and chatting with them over IM, losing layers of patience bit by bit before calling them morons to their face. They were still billing us a full 8 hours for doing nothing, blaming it on unclear requirements.
After going to and fro for over a week, when nothing got built, I turned around and got my buddy who works for HP in Cupertino to pick it up. He coded it in his sparetime and pretty much finished it single handedly in the time that it was promised.
The biggest pains in outsourcing, from where I stand, is the disconnect between the teams, the clarity in requirements and the work ethics. I have seen the other end of the spectrum too, when I left for India for a short stint and worked with a team on a high risk project and had to deal with all sorts of management stupidity and workplace politics, putting my team through 14 hour work days, getting pissed drunk together on build nights and delivering on our promise with in the expected timeframe. The work ethics atleast on a developer level is not that different, if you get good young kids, they are smart and loyal. But if you step up to the level of management, you do find hundreds of incompetents who suck the living blood and exist solely to serve their own interests and to collect their paychecks.
I am not prejudiced. Infact, I am Indian and everyone mentioned above is, as well.
Rapid Nirvana
Getting your money back for bugs in the software? Well, did you "accept" that End User License Agreement presented to you on install? Heh.
If so, you're probably SOL. I've never managed to get my money back from Microsoft due to the bugs in their software either.
It probably said something about this EULA superceeding all previous EULAs and contracts too.
(Note to the humor-challenged: this is a joke. Sorta.)
This is not a slashdot issue. Just because the people are writing software, doesn't mean it is a technological issue.
This is a business issue. Is my contractor delivering? What do they have done? Ask to see it. What milestones have been met, and what is being done to resolve the remaining issues? Perhaps your agreement with the outsourcee needs to be rethought, it sounds like it wasn't planned very well.
I have absolutely ZERO experience in outsourcing and writing scripts as a job, and ZERO experience in managing a business and relations. These are obvious answers to obvious questions that do not belong on Slashdot.
If you just tried to save a buck by outsourcing, then you deserve to get burned. You are just jumping on the outsourcing bandwagon without making sound business decisions. There is a level of control lost when you outsource something. You sound like you have no method of feedback and reassurance. Shame on you.
-- Having a Creationist Museum is like having an Atheist place of worship
That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
300,000 $ = 100 engineers. 1 engineer = 3,000 $
100,000 $ = 100 india engs. 1 ie = 1,000 $
200,000 $ = 200 engineers. 1 eng = 1,000 $
each eng here will survive with the same salary as in India? I think not. The manager will get 50,000 $ in bonuses, and the VP the other 150,000 $. everyone wins, if by everyone you mean the PHB and the VP. ah, and the stockholders won't see a dime, too.
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
Put the pressure on right now, seriously. Then never, ever work with them or any other outsourcing company that "protects the source" by wrapping it up somehow.
I've worked with these "reputable" outsourcers before. Really, there is a crop of programming companies that have turned up in the last few years that make the 15 year old outsourcing companies sick. I've been in a position where I had an internally modified GPL source, needed a feature added, and when the CTO decided to push that work out of house, we wound up with a binary and that's it. And it didn't do what we needed it to do.
The company you're working with has probably been behaving this way as long as it's been around, but this shit needs to stop. Lay down the law and pull out, as much and as fast as you can. There are reputable companies who do this kind of work. However, it is almost always small companies, which also release real products that will get you the best result - like Omni, who makes OmniWeb for the Mac, also was well known for being outsourced to for game porting. Look for someone who also makes a product, then you'll have found someone potentially worth working with
Our company went with this option. Vinnie has taken our check but has yet to extract vengance. Inquiries into the matter via his secretary get the reply "I'm working on it."
___
It's the end of my comment as I know it and I feel fine.
The best bet I'd say is talk to your lawyers and review the contract. But you made several mistakes.
1) Always test the application yourself from compiled code. Its too easy for people to code to pass tests.
2) Always have source code. Always.
3) The final version should be compiled from source code.
4) The code should be reguarly reviewed by your staff for errors and suspicious code. NEVER give someone else access to your network.
Outsourcing is a real Pandora's box.
"The Sage treasures Unity and measures all things by it" - Lao Tzu
Funny, nowhere in the text did it say that the outsourcing company was not domestic.
-1 Assumption
I'm not good in groups. It's difficult to work in a group when you're omnipotent. - Q
The 3 letters that management are just now starting to understand are : TCO. Total Cost of Ownership isn't something that comes from a single ledger in the bean counter's office. It's often learned the hard way by unexpected costs like the cost to fix mistakes or the loss of important clients or businsess deals. When an out-sourced company/individual does a poor job because you spent the least amount of money possible, the return on the investment is low. ROI are 3 more letters. After a while, the executives in charge figure out that investments are tied to ownership.
I think the outsourcing epidemic is abating because of the backlash to the off-shoring. The two are different but have become synonymous. I think both are a trend in which companies experimented and won and lost. It works for smaller companies who can't afford their own IT department so they can hire a company to provide a level of service they cannot match themselves. Conversely, it might be considered a step down for a fortune 500 company to look to a start-up company to handle their enterprise level needs. I might be generalizing a bit, but it works for some things but not others. For example, Janitorial staff might work but IT desktop support probably might be a bit more difficult. I think the outsourcing option might not be on the table when/if the economy improves.
I might know what I'm talkin' about, but then again, this is Slashdot...
On the other hand, Igo Kutchyakokov is reserved for over seas operations. He works with a marvelous Japanese Italian negotiator, Makya A. Soprano, related to the New York City and New Jersey Soprano families.
"It is a greater offense to steal men's labor, than their clothes"
good grief, like 2/3's of the comments here are rants about paying people in another country to do your work or claiming that the poster is screwed because he did business with a company from another country. he never stated where the business he asked to do the work is located. it's possible that they are in the same city. (of course, they might be in india, but nobody here knows that, you're all jumping to conclusions.)
there are a lot of companies that need programming work done from time to time but don't see the need to pay dedicated programmers full time salaries. there are also companies that have dedicated programmers, but occasionally have more work at one time than their in house staff can handle. i've done work for both types of companies before- sometimes they were located only blocks away from me.
anyway, that being said, if you had a contract, and it specified that you wouldn't pay until the work was complete, you should first try and stop payment with your bank if it's not too late. if it is too late, i would get a lawyer on retainer, and notify the firm of that fact. sometimes just knowing that will be enough to get them to cooperate with you. if not, then you've already taken the first step towards either getting your working product or getting your money back.
and it may be too late now, but for future reference, never sign a contract that doesn't give you the source code. now, even if you resolve this issue with your provider, you are stuck going back to them for any future modifications....
If I don't put anything here, will anyone recognize me anymore?
Please I haven't seen any Indians who can do my job better than I. In most cases it isn't as good, however they can work 5$ an hour I can't. So even If I can do the job of 3 indians, it's still cheaper to hire 4 or 5.
.... etc. etc.
..... band wagon.
Thing is with American middle class losing thier jobs who will buy Overpriced American products ( they stay overpriced because the CEO's must still make Multi-Multi million dollar pay checks)
I don't see Indian Programmers making $5K a year standing in line to buy $2000.00 MayTag fridges and $30,0000 ford/Chevy/dodge SUV's
We are already seeing the short sightedness of all this Look at the stock market it is contiually weak, in spite of the fact that we have been in a 'recovery' for 3 years. Why, because consumer demand isn't as strong. Well when you are destroying good jobs and replacing them with lowing paying jobs, people are not rushing out to buy non-essential crap. Add rising health insurance rates which no one in the US wants to do anything about.
If the Indians think they are so great now, just wait, there is No great love for them here in the States, As soon as the Chinese or Africans or whomever can do the job cheaper, the Indians will be left with a bunch of vacant Call Center/Tech Centers and rising unemployed middle class. What will they do then, Nothing they have nothing to sell anyone wants other than the fact they were cheaper, for a while. To boot they will have left behind some major bad will on the part of the American public....
All the 'Free Market' fans here (everyone is free market till they lose thier job, house etc....) will be on the Chinese/African
There is No such thing as a free lunch or a free market someone has to pay......
So Long and Thanks for all the Fish.
I would be surpised to find that contract boilerplate does not exist for these scenarios, but here is what I think my general (oversimplified) guidelines would be:
If the script was some sort of feature unique to my business or processes, I would contract to own the source.
If the script is for a general feature that the developer wishes to maintain as an offering to other customers, than the contract should be written as though you are sponsoring the development of the feature (1.e. lower price)
If the situation is somewhere in between I would negotiate source escrow for specific deliverables/metrics.
But in regards to your current situation, continue to request his attention to your concerns. If that fails, request the source. If all else fails flame him all across the web.
I don't think I've ever heard it discussed much, but distributed flaming/shaming (flashflames) could someday be an effective punishment. It sounds stupid, but I'm sure there are employers out there googling prospective recruits/contractors.
I like to think of us as one of the good guys. We try to do what's right for the client every time, not necessarily what's right for our bottom line.
At what point do you consider they may have just ripped you off, and how do you know when to file complaints and withhold payment
If you're asking yourself that, it's time to withhold payment and start addressing your concerns. I would recommend an e-mail to them, then a third party arbitrator, then court.
And some of these points have been mentioned here but this is my general advice when it comes to outsourcing:
1. You get what you pay for. We've been told by our clients that we charge nearly 3 times as much as some of our competitors. We've also been told that it's worth that to them to know the project is going to be done on time and to spec.
2. You own all project collateral, and payment is contingent on receiving it. This should be a contractual agreement before work is started.
3. Requirements should be clear and measurable. No requirements should be implicit.
4. Most outsourcers right shitty code. The Gartner Group estimates that 90% of the cost of an application comes after its initial release. Writing good code can greatly reduce that cost. But the economical reality is if I give you a project estimate that costs 4 times as much and will take 150% as long as the other guys, you are more likely to accept their contract. Even if, in the long run, you'd probably be better off going with us. How do you mitigate this risk? Meet the developers, talk to them, understand their viewpoints. And do code reviews. Unfortunately there's no objective way to say that a piece of code is good or not. However there's no reason you couldn't make it a contractual obligation that their code has to pass an internal code quality and standards audit before payment.
A good outsourcer will require you to sign an End User Acceptance Test Approval or some such document at the end of the project; if they don't, require that they do. And don't sign it (or pay them) until you're satisfied that all project collateral has been received, that all the requirements have been satisfied, and that the code passes your quality standards.
You would be surprised how many times we bid on a project, lose it to the lowest bidder, and then a few years later hear from that same company again because the relationship went south and the person's code is completely unmaintainable. Many times they end up paying us to rebuild the app at that point...
I am disrespectful to dirt! Can you see that I am serious?!
I'd say that posting a question about it on slashdot is your first clue something is wrong.
Wait... maybe thinking to turn to SlashDot for answers is your first clue that something is wrong with your management strategy.
You should have had a FQT (Formal Qualification Test) requirement in the contract. That means there is a document somewhere that very clearly qualifies what tests the software has to pass before the contractor meets their last milestone and gets paid for it.
Usually, representatives from the contractor and from our company get together, have a demo, and check off every requirement as it is demonstrated. Then everyone signs off on the document and we cut them a check.
It would be totally worth it to fly a rep from the Chinese company out to the States to follow this procedure. I've dealt with lots of Chinese people in my career and they tend to be strongly opportunistic and legalistic (but only if being legalistic can help them). It's just how their culture is. If you don't do anything to withhold payment until you get a working product, they'll think you deserve to get ripped off.
"The advanced societies of the future will be driven by competing systems of psychopathology." -JG Ballard
Contractor: "Well, you asked for code, you paid for code. OH, you mean you wanted *working* code! Well, you should have asked for working code... that'll cost ya extra."
To prevent getting ripped off, structure your payments in a written agreement, like this:
50% at delivery
40% at one month after delivery
10% at 90 days after delivery
Specify in the payment agreement that the 40% and 10% amounts can be withheld for longer periods, at buyer's sole discretion, if flaws are found and until those flaws are resolved to buyer's satisfaction.
Many companies are willing to accept graduated payments that cover their up-front costs upon delivery, overhead costs with net 30 days, and net profit within 60-90 days. They won't like it, but most will accept it if it means getting the work or losing the contract opportunity.
Best of all, if they screw up and won't fix it, at least you have a little money left over in the budget to pay someone else to perform first aid.
Final caveat: always put in a clause allowing for disputes to be settled by an arbitrage firm, with the costs to be divided by each party. Most firms would rather correct problems than pay for half of an arbitrator's expense, even if it means hiring a competitor to mend their own defective products or services.
"He who throws mud, loses ground." - proverb
A lot of these comments have whizzed by, but you need to take a page from OTHER engineering on construction fields when you pick a company to outsource to.
1) What is their experience (how many years they been around) and reputation (do you have references)?
2) What is your access to the work and resources?
3) Can you evaluate their work independantly?
4) What contingencies does the contract provide you if work isn't done or doesn't meet your needs?
5) What payment schedule is provided to you?
6) Who can you talk to when you have business as opposed to technical issues (accountability)?
7) What are the deliverables, and who owns them?
ANYONE that takes cash upfront to do work I'd be wary of. The cash is your ONLY bargaining chip unless you are willing to go to court.
If you pay someone to develop something for you, YOU own the code.
You should have secure and free access to anything developed for you, and that includes the right to walk into their offices (homes) and demand materials. You have, after all, paid for it.
In big outsource projects (fixed cost), companies often hold back payment 40-40-20. That means a cost is agreed to, 40 percent is paid up front for the resources, 40 percent during the estimated duration, and 20 percent for completion.
In smaller ones, that are usually time and materials, unless you know the developer/shop is reputable, it is best to work ok similar principles - that is give a retainer to start work (if they accept money to start they are legally bound), and after you figure out the hourly rate - you withhold some portion for completion. The alternative is NOT to pay biweekly or monthly (based on hours), but to pay by function points. That is, they can bill you when they provide you with a deliverable.
/\/\icro/\/\uncher
"Recently we have been referred to an outsourcing company to finish customization on a script that the author had no time to complete..."
(a) the person(s) who did the referring should be notified, so that they don't try referring other projects into the same fate.
(b) if you paid the original author the money that you spent on outsourcing, he probably would have *found* the time to complete it. One likely scenario is that the original author got annoyed with you or your company management and just plain left.
(c) why on earth would you have allowed it to be shrouded/obfuscated? work for hire should be delivered in source form.
(d) you specifically called it a script not a program. this gives (me at least) the feeling that it wasn't a very ambitious or important project, more like a proof-of-concept that got blown out of proportion. if it was intended to serve a real business need, it should have been taken more seriously.
(e) it's sounds like you're less interested in getting the script to work than you are in getting your company's money back. the thing is, the lawyers will charge $250/hour, so it's probably best to just chalk it up to experience, let your manager chew you out for screwing it up, and accept the lessons life has taught you.
has nothing to do with a country, or its borders.
The term you're looking for is offshoring.
Like to see you come up with a substitute for Oil. It has taken millions of years to form and is being used up at an ever increasing rate. While we might come up with alternatives for an energy source there are many products and industrial processes that depend on oil or it's derivatives.
Sometimes there just isn't an alternative to be found.
"Taligent is still pure vapor. Maybe they'll be the last who jumps up on Openstep... "
Dead On. My only comment: for those free-traders frothing over how everyone wins with free trade, recognize that the American worker's standard of living suffers greatly in the averaging of equalization, then relies on the global growth rate, which means that in our lifetimes, barring life extension, things look gloomy for most working classes, blue or white collar.
Hey, I'm just your average shit and piss factory.
An outsourcing company I used to work for (completely US based) had a standard contract that all bugs found from testing would be fixed before each milestone was delivered. Development wasn't going well, so the project manager simply stopped testing. No bugs found, no bugs fixed! Instead of getting in trouble, the manager was praised for "sticking to the contract" and "increasing profits by not performing unnecessary testing."
I resigned shortly after this happened.
My opinion is that if you are going to hire an outsourcing group, you must have both a contract negotiator and a project manager who know the tricks of outsourcing groups. Otherwise, save yourself a lot of aggravation and just flush the money down the toilet.
Note: IANAL.
Sometimes the "writing on the wall" is blood spatter...
Slightly off topic, but apropos to the whole idea of "you don't know what you're getting in Bangalore until it's too late." Last week I did my first code review for some code developed in Bangalore by my company's new team of whiz-bang offshored developers. During the pre-coding phase we were quite happy with them. The rumours that Indian developers are great process people are true. They produced the required process documentation in record time, specifications were complete, and there was enough UML to cause several PHBs to burst into spontaneous song.
But now I have actual product in my hand, and I am reviewing it. It's a minor component written for a complex system. A single developer wrote it. It's not horrible code, but not excellent. Slightly above mediocre. It's good enough for other companies, but it's not good enough for ours. So I log my findings and send them off. The next day I get my response.
Except for the suggestion to use more comments, the developer REFUSED to fix anything. Among the things the developer refused to do include: using the company standard API for error reporting; use try/catch blocks instead of those weird BEGIN, END, FAIL macros that were used instead; stop using hungarian notation per our coding standard; etc. The developer even refused to consider the use of constants in place of single-element enumerations. In every case (but the comments) the developer has some stupid excuse ("but that's how I learned it in school", or "but the other developers aren't doing that!")
Needless to say, we are not going to accept this developer's code. But this is only the first bit of code we've gotten back. It's all going to start coming in soon for this one project, and we're sitting here with clenched buttocks hoping beyond hope that this one particular developer is a fluke.
Don't blame me, I didn't vote for either of them!
Sometime between when you receive code obfuscated by Source Guardian and when you ask Slashdot about it.
I'm pretty sure any process up to now for making energy spends way more than the amount produced.
Actually, Argentina and Chile are having good success with sugarcane-based ethanol. And Vanuatu is having good success with coconut oil. So there is some success from the ethanol/biodiesel method....
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
If you outsource particularily overseas, you're usually headed for trouble. I don't have any sympathy for you, sorry. It looks like you are infact the one who'd wasting things at the moment too incidentaly. The job should have stayed in the USA regardless of your motivations, financial or otherwise.
The IT industry is suffering because of bad decisions like yours, and if you haven't figured out by now that outsourcing offshore is more costly in the long term when things go wrong, then tuff.
Spare me your indignation. You handed a project to someone that you didn't know, and I bet you didn't do a contract (of any kind) either. Of course you'd be hard pressed to deal with the company in an American court anyhow. You didn't stipulate that you wanted the source, and so now you've realised that your leaned over a table. You didn't hire a good tester either. Essentially your cheap and nasty job has come back to haunt you.
Well, had you employed someone who knew what they were doing, even to manage the project, you wouldn't be in this position. Next time, contract someone to manage the project properly. If it's important enought to want it, it's important enough to hire someone to do it properly in your own country.
Good luck with your Hindi lessons. Until clutzs like you figure it out, our industry will just have to struggle on. But we'll be happy to overcharge you when you return to Western programmers.
Your Indian company will probably get around to finishing the job - but if they don't, bad luck.
Si tacuisses philosophus mansisses. If you had kept quiet, you would have remained a philosopher.
I've worked as an outsourced programmer for years. I've also worked with outsourced programmers with reasonably good results.
I see lots of recommendations to "get it in writing" and "make sure they finish BEFORE you pay them..."
I've never, ever, not even ONCE seen things work that way! Trying to adhere to fiction will get you fictitious (and painful) results.
1) Write your contract so that venue is the location of the outsourcer, and all legal hassles happen there.
2) Demand ownership of all sources. It's OK to cross-license rights to use sources in other non-competetive ventures - nobody wants to think you own their thoughts!
3) Demand a reasonable NDA - don't try for everything under the sun and moon. If your NDA is too severe, you generate ill-will without much benefit, and that never helps.
4) Provide a development server, and require them to work on it remotely via SSH or VPN. That leaves you with all the cards, but still prevents the IRS from considering them as "employees" since they have to provide the keyboard and monitor. It also lets you see what they do and how often, and in real time. Perform backups of this work on a regular basis, and keep backups going back in time that they cannot access.
5) Pay promptly and frequently, maybe even weekly. It's easy to cancel a contract that's not going well when there's not $60,000 on the line. That also keeps both sides a little on edge as there's no big, fat lever to screw each other with.
6) It's a relationship. Be friendly! It never works well if somebody resents your contact. If it gets cold and uncomfortable, say so, and demand immediate correction or leave. You don't have to like each other personally to work well professionally. If you leave, do so quickly and without delay.
7) Forget extensive spec development before beginning. Scope creep always arrives at the party, and software is *NEVER* "done" - it's always a work in progress. Spec development, and change the spec as anticipated needs change. It's OK to pay by the hour since you have the source anyway - You can leave and go somewhere else if you don't like things.
In short, arrange the contract so that if your contractor decides to flake, you have options.
At this point, you've pretty well shot yourself in the foot, since you don't have sources. Big mistake! Your only options are:
1) Cajole them into doing the fix (which hasn't worked so far)
2) Have the work redeveloped, or
3) Sue for a fix in a guaranteed timeframe and or access to source code, and financial losses.
Sorry you're in this situation, but never EVER outsource software development without sources. Never. Just don't do it. Can you imagine a tractor company investing in huge, million-dollar tractors, and not ensuring that there's a backup copy of the key?
Neither can I.
I have no problem with your religion until you decide it's reason to deprive others of the truth.