Slashdot Mirror


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

13 of 751 comments (clear)

  1. Final Payment? by spacefrog · · Score: 3, Interesting

    Let me get this straight, you made final payment *without* getting the source code?

    Wow.

    1. Re:Final Payment? by nojomofo · · Score: 3, Interesting

      What if the vendor has a specialty in some domain, and has built up a library over time? The vendor can then build outsourced solutions for less money using the library that they have built up, and save the customer both time and money. In that circumstance, it is very justifiable that the customer might not get all of the source code. Which should, of course, be stipulated in the contract.

  2. Unfortunately the parent option... by tekiegreg · · Score: 4, Interesting

    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
    1. Re:Unfortunately the parent option... by Skyshadow · · Score: 5, Interesting
      I have to agree with this 100%.

      I assume from the lack of considering a legal option that the OP is talking about off-shore outsourcing (I know the outsourcing apologists in this thread have been busily suggesting it isn't off-shore... Sure, guys). Getting any satisfaction from an off-shore court is almost impossible.

      My last company was the victim of out and out fraud on the part of a Chinese firm. When my company threatened legal action, they basically laughed at us. They were right to laugh -- essentially there was no above-board way to get any legal judgement against them. We were foreigners, plus we didn't know who to bribe (the Chinese legal system is incredibly arbitrary and corrupt).

      We never saw a dime. When the investors found out we'd lost a huge amount of money *and* didn't have the scheduled release, they took over the company and liquidated it.

      That's part of the reason I'm not too worried about offshoring as a long-term trend (as opposed to the fad it is now) -- you can't entrust anything critical overseas because you have zero recourse if you're screwed over or incur liability.

      --
      Every year during my review, I just pray the words "slashdot.org" aren't mentioned.
    2. Re:Unfortunately the parent option... by ari_j · · Score: 3, Interesting

      You can get a judgment, no problem. The hard part is enforcing it. In the US federal court system, you can sue a foreign company and the US federal courts will assert jurisdiction over it if that company has passed a given legal test, which I will refrain from enumerating here in any way, but essentially covers cases over the specific involvement that company has within the US. For instance, a company that sells cars in America would be subject to jurisdiction here. It's my first thought that the federal courts would assert jurisdiction over outsourcing firms, as well.

      The problem is that, even if you get a judgment against the foreign company, how are you going to enforce it? The courts can't imprison them for contempt, because they're in another country. Extradition for contempt? Ha, I wish.

      So, if you get a judgment against a foreign company, you'd have to go over there with Vince and collect on it the hard way, anyhow. Why not save the legal fees and just go over there in the first place, without having to file any expensive lawsuits in federal court?

      Disclaimer: I am not a lawyer. Everything I just said could possibly be wrong, but may not be, and is in no way intended as any form of advice, legal or otherwise. If you believe anything I've said in this comment, you assume all risks and liability that may ensue, be they personal, civil, criminal, or otherwise. I have also never played a lawyer on TV. Confusing me with someone who has would be flattering, but incorrect and foolish.

  3. Firsthand experience by cOdEgUru · · Score: 5, Interesting


    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.

  4. Contracts and Escrows by eventDriven · · Score: 2, Interesting

    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.

  5. I work for a consulting firm by merlin_jim · · Score: 2, Interesting

    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?!
  6. From another point of view. by Anonymous Coward · · Score: 1, Interesting

    I just completed a contract for my ex-company.
    We had an "acceptance" day, where I showed up, they had nothing ready and I fiddled around, made everything work and then showed them the bit I wrote.

    It worked flawlessly, on their gear, on their machines at their location. They paid me days later.

    It's my opinion that having the ability for the developer to show up and get it working in place is worth any saving you get by sending it to India.

    Call me old fasioned, but I think having someones ass to kick in the same country is worth something.

  7. Simple solution by Mudcathi · · Score: 2, Interesting

    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

  8. This is why "source code escrow" is vital. by johnnys · · Score: 2, Interesting
    --
    Sometimes the "writing on the wall" is blood spatter...
  9. Experiences by Brandybuck · · Score: 2, Interesting

    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!
  10. Re:What else do we do? by networkBoy · · Score: 2, Interesting

    You can make more money than your 'replacement' flipping burgers,

    When adjusted for cost of living this statement is not true. I live in California, where we have one of the highest costs of living. I make reasonable money at my high tech employer, yet I am barely able to make ends meet. I'll acknowledge that I can likely live on less, but if I were flipping burgers I would also be completely homeless. I can not live on $6.75 an hour. Not when the cheapest rent I can find is $750 a month in some really really shitty apartments. I opted to upgrade to $800/month apartments because the area was better and I can feel safer with my wife and two kids. I normally don't bash H1B's and such, as I work with many of them, they are nice, and I enjoy their company.

    What I can't stand about your post is that it assumes that they are getting more benefit from my job than I give up by loosing my job. To that I cry bullshit and such very loudly. The nature of the beast is to move where the costs (labor, EPA, Building, etc.) are lower. This I understand. I simply re-create myself into something too valuable to be shipped overseas, now I stay employed. If I loose my job to an individual over there, they will earn a reasonable wage, but it will not be the same total dollar amount I earned. Likely it will be 10x less. Thus your argument that one dollar does them the benefit of my ten may be true, but it doesn't matter, because they are only going to get paid one dollar for every ten I make. At the best the loss of my job helps my Indian counterpart to an extent equal to my loss. I think that is not how it would work though. I think I would loose much more than they would gain. -nB

    --
    whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump