• :-O (unregistered)

    gotta love that static cling

  • Anon (unregistered)

    Ah, right. So no onshore developers make mistakes...

  • gonzo (cs) in reply to :-O

    Time for a new rule, "Static Considered Harmful"

  • Offshore is the Suck (unregistered) in reply to Anon
    Anonymous:
    Ah, right. So no onshore developers make mistakes...


    well.. I would blame whoever was supposta analyze the bug.
     this is not discussed.
     
     My question is howcome the "Onshore" developers were to look at this issue?
     how come it was not resolved "Offshore", did they have the bug submitted?

    were they unable to find it?

     this is a Monumental mistake from something as simple as base fundamentals.
    did someone put a complete noob on those declarations?

     its dumb .. period.

  • reed (cs)

    The primary problem here is the disconnect between support and development.  Obviously there was something preventing the support staff from insisting that these things are bugs and that the developers (whether offshore or not) fix them.  Culture, management, being rewarded for getting rid of support tickets rather than actually resolving them, could have been any of these things.

    At my company, because it's so small, developers are part of the support. We know about all the support requests and
    when it's something that the support guys don't know, (e.g. unusual behavior because of a bug) we have to answer, and if it's a bug, fix it right away so we can get the fix to the customer. This is pretty motivating to fix bugs, and also always think about documentation and usability and preventing future support inquiries on things.

  • Frank (unregistered) in reply to Anon
    Anonymous:
    Ah, right. So no onshore developers make mistakes...


    Sure, but when you outsource to an external company, you lose much control of the quality of the workers.  When this goes overseas, you lose complete control.  The hard fact is, that when all you care about is the lowest price, you get what you pay for, and it is a huge risk that the up front savings will turn into a expensive nightmare later.  If you care about quality and long term return on investment, you invest the time and money to research everyone you hire/contract for your projects.
  • Roger that (unregistered) in reply to Offshore is the Suck
    Anonymous:
    Anonymous:
    Ah, right. So no onshore developers make mistakes...


    well.. I would blame whoever was supposta analyze the bug.
     this is not discussed.
     
     My question is howcome the "Onshore" developers were to look at this issue?
     how come it was not resolved "Offshore", did they have the bug submitted?

    were they unable to find it?

     this is a Monumental mistake from something as simple as base fundamentals.
    did someone put a complete noob on those declarations?

     its dumb .. period.



     Not to mention Q/A
     was this even looked at?
     like fuck you could Ever have had two people use the system at the same time..
     considering this to be designed for corporate scale..
    seems pretty stupid Q/A did not attempt a multi use pattern in thier test's.
  • fs (unregistered) in reply to Offshore is the Suck

    Perhaps the bug report got mix with another bug report. You know, "random data anomalies"...

  • gonzo (cs) in reply to fs

    "Random Data Anomalies Considered Harmful" ?

    ok ok I give up.

  • jackass (cs)

    As much as I'm all for keeping jobs here, offshoring is not the problem.  What ever happened to "if it isn't broke dont' fix it."

  • Colin (unregistered)

    I bet no one has ever come across this scenario before.  Some kind of word or phrase should be created to describe it.


    It....it is almost as if two users were..."racing", if you will, each other.  How about we call it a "race condition" or "race hazard"?


    Good thing these off-shore folk discovered this problem now before too many applications have this problem.


    We should honor them and award them medals instead of lambasting them for utter stupidity by making such an amateur mistake in concurrent programming that it would make even the retarded kid in the back row of an Operating Systems 101 class cry and scream, "Why?! $USER['DEITY'] WHY?!"


    And did the PHBs ever wonder why the price was right?  Of course not.

  • BlackTigerX (cs) in reply to gonzo

    newbies... of course when you outsource work you still have to check every line of it

    so that's the biggest WTF of all right there, blaming it on something else...

  • loneprogrammer (cs)

    These kinds of data-cross bugs can be devastating.

    A large investment firm's website has had problems where sometimes the user's session would be crossed with another user.  Imagine logging in to your brokerage account to discover that some other person has placed an order to buy 1000 shares of NRON stock with your money!

  • captcha = screwed (unregistered) in reply to gonzo

    Reminds me of a game of battleships we coded as students once.  Somebody represented the ships as a static class, and needless to say, games were over pretty quickly.


  • taina maina (unregistered)

    this is so made up! if those elite on-shore developers were so damn good, why was the app rewritten in the first place? i work for an outsourcing company now (used to work for a big german software vendor) and i know for sure the quality of software created at my current company is much much better. my company is selling code to people that can easily see its quality, while my previous employers sell their products to end clients, who are more influenced by marketing than by the software quality in their decision. looks like some people lost their jobs to cheaper, more effective outsourcing and make up stories like this one because of anger and frustration

  • Outsourcing is the Devil (unregistered) in reply to taina maina

    So you're saying that people complaining about outsourcing are just angry and frustrated people that are less efficient and get paid to much.

  • arty (unregistered) in reply to taina maina

    In every case I've read about of people being burned by outsourcing, it's due to failure to verify results.  Unfortunately, in order to verify results, you can't just pretend not to need technical people.  Every company that delivers a software product needs QA even if they didn't write it.  Drop quality at your own peril...

  • lamborghini (cs) in reply to arty

    Welcome to off-shoring. All your base are belong to us.

  • tastey is my captcha (unregistered) in reply to Frank

    The real WTF here is the company accepting and using an application without real testing and (at least automated) code reviews.

    Anonymous:
    Anonymous:
    Ah, right. So no onshore developers make mistakes...


    Sure, but when you outsource to an external company, you lose much control of the quality of the workers.  When this goes overseas, you lose complete control.


    You don't lose control. It's more like giving it up because keeping it would cost more and it would lower the outsourcing "economy".
  • CMM5 THIS! (unregistered) in reply to taina maina
    Anonymous:
    this is so made up! if those elite on-shore developers were so damn good, why was the app rewritten in the first place? i work for an outsourcing company now (used to work for a big german software vendor) and i know for sure the quality of software created at my current company is much much better. my company is selling code to people that can easily see its quality, while my previous employers sell their products to end clients, who are more influenced by marketing than by the software quality in their decision. looks like some people lost their jobs to cheaper, more effective outsourcing and make up stories like this one because of anger and frustration


    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    No, it's because they live in crappy countries that have none of the benefits that workers in the USA have labored hard to achieve.  You know, running water, sewage systems, child labor laws, medical care, roads and highways, etc.  The real WTF is that U.S. businesses think a group of people that are too stupid to figure out how to have these things in their own countries are going to be brillant at writing software.

    Welcome to the race to the bottom, USA workers will eventually be able to compete with the cheaper offshore workers once they give up clean drinking water, working toilets, health care and health benefits, and we put our children to work is sweatshops, and let our roads fall into disrepair. Yes, then we will finally have made the smart choice in order to compete with these clever offshore programmers.  WTF!
  • HatTrick (cs) in reply to captcha = screwed

    OMG I am laughing my a$$ off thinking about that first game of battleship, musta confused the hell out of you when your PT boat got sunk and took the whole damn fleet down with it.

  • b (unregistered) in reply to arty

    Anonymous:
    In every case I've read about of people being burned by outsourcing, it's due to failure to verify results.  Unfortunately, in order to verify results, you can't just pretend not to need technical people.  Every company that delivers a software product needs QA even if they didn't write it.  Drop quality at your own peril...

    This is exactly right. And yet is almost ALWAYS missed. A few years back we oursourced our testing - we code during the day, they test at night - perfect! Except they weren't told to look for 'red x's, missing images. So, they didn't! And we had some, and we would have shipped that way if a few of us didn't insist on a final QA check ourselves. HUGE fight with management over this. Many more examples but this was the most obvious.

  • VGR (cs) in reply to Anon
    Anonymous:
    Ah, right. So no onshore developers make mistakes...


    Of course they do.  Otherwise this site would be almost empty.

    Regardless of where it happened, the fact is, someone hired people claiming to be web developers, who didn't know the basics of multi-threaded programming and/or didn't know that a web container can be multi-threaded.

    No matter where that takes place, it's a giant WTF.

    If it had not been off-shored, we'd be saying things like:

    "Didn't the hiring managers give any sort of technical interview or test?"

    "Where were the peer reviews?"

    Of course, when you use off-shore outsourcing, you can't do any of that.

    I've had first-hand experience with Indian outsourcing.  This sort of extreme sloppiness is common.  Not universal, but common.

    As I said, it happens in English-speaking countries too, or we wouldn't have this forum.  Just not quite as commonly, in my experience.
  • Maxim (unregistered)

    Okay... this was the first mistake I did when I learned .NET programming and didn't know what static means.

    Once you know... you don't do it again.

    I'm sure we got more wtf from outsourcing than anything else. I'm sure they hire monkey to code or only do copy/paste from code database. How to explain this wtf without making look them stupid....

    Can't sorry

  • RyanLeeSchneider (cs)

     

    But now you're wasting all that space storing individual user and document IDs per session.

    The real WTF here is why they just didn't mark the method atomic (or lock(strUserID){} if this is .NET).

  • FrostCat (cs) in reply to arty
    Anonymous:
    In every case I've read about of people being burned by outsourcing, it's due to failure to verify results.  Unfortunately, in order to verify results, you can't just pretend not to need technical people.  Every company that delivers a software product needs QA even if they didn't write it.  Drop quality at your own peril...

    Got it--the offshore company that made a monumental screwup that should've been caught very early in their development cycle bore no blame for this. You have a promising career in upper management ahead of you.

    This post not [pi]-approved.

  • Stas (unregistered)

    <font size="2">Wait, am I the only one stupid here? Laugh at me, if you will, but I don't understand the problem.

    Judging from the code, it's .NET (or Java). So if you've got two separate web requests, they should be totally independent, unless you use a persistent storage. How come that two different requests affect each other? Did they have a separate multithreaded service (running permanently, no on the per-request basis) to handle file operations?

    I had a major doubt trip so I even created a simple ASP.NET app to verify. There's a button, label and a textbox, and here's the event handler:

    public static string StaticTestValue = "Default";

    private void Button1_Click(object sender, System.EventArgs e)
    {
        StaticTestValue = this.TextBox1.Text;

        System.Threading.Thread.Sleep( 10000 );

        this.Label1.Text = StaticTestValue;
    }

    So... I open up two browser windows, do two requests and they're totally independent, as they should be. What I'm doing wrong? :)
    </font>

  • ferrengi (cs) in reply to reed
    reed:
    The primary problem here is the disconnect between support and development.  Obviously there was something preventing the support staff from insisting that these things are bugs and that the developers (whether offshore or not) fix them.  Culture, management, being rewarded for getting rid of support tickets rather than actually resolving them, could have been any of these things.

    At my company, because it's so small, developers are part of the support. We know about all the support requests and
    when it's something that the support guys don't know, (e.g. unusual behavior because of a bug) we have to answer, and if it's a bug, fix it right away so we can get the fix to the customer. This is pretty motivating to fix bugs, and also always think about documentation and usability and preventing future support inquiries on things.


    Yep, I work at a small company also and that is how we do things over here as well.
    Support takes the call, tries to reproduce the problem in our environment and turns it over to development to fix the bug. Simple!
    I recall my frustrations with dealing with offshore support. Unfortunately, since we are not a big client, we do not have the clout that the client in this example had to get the vendor to cut out the BS and get the damn problem fixed.
    It seems like the only thing the offshore support is interested in is having you tell them they did a good job and giving them a favorable survey at the end of the call. Help me with my problem and I'll be happy and give you a good rating, you imbecile!

    Oh well...
  • Evil Human (unregistered) in reply to CMM5 THIS!
    Anonymous:
    Anonymous:
    this is so made up! if those elite on-shore developers were so damn good, why was the app rewritten in the first place? i work for an outsourcing company now (used to work for a big german software vendor) and i know for sure the quality of software created at my current company is much much better. my company is selling code to people that can easily see its quality, while my previous employers sell their products to end clients, who are more influenced by marketing than by the software quality in their decision. looks like some people lost their jobs to cheaper, more effective outsourcing and make up stories like this one because of anger and frustration


    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    No, it's because they live in crappy countries that have none of the benefits that workers in the USA have labored hard to achieve.  You know, running water, sewage systems, child labor laws, medical care, roads and highways, etc.  The real WTF is that U.S. businesses think a group of people that are too stupid to figure out how to have these things in their own countries are going to be brillant at writing software.

    Welcome to the race to the bottom, USA workers will eventually be able to compete with the cheaper offshore workers once they give up clean drinking water, working toilets, health care and health benefits, and we put our children to work is sweatshops, and let our roads fall into disrepair. Yes, then we will finally have made the smart choice in order to compete with these clever offshore programmers.  WTF!


    Second this...

    This is another case of supporting bad human rights and should be illegal...  If your gonna outsource lets not have double standards.
    Pay them and treat them like someone from your country.   

        Capitalism is the path of evil.
  • ferrengi (cs) in reply to Evil Human
    evil human:
    Anonymous:
    Anonymous:
    this is so made up! if those elite on-shore developers were so damn good, why was the app rewritten in the first place? i work for an outsourcing company now (used to work for a big german software vendor) and i know for sure the quality of software created at my current company is much much better. my company is selling code to people that can easily see its quality, while my previous employers sell their products to end clients, who are more influenced by marketing than by the software quality in their decision. looks like some people lost their jobs to cheaper, more effective outsourcing and make up stories like this one because of anger and frustration


    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    No, it's because they live in crappy countries that have none of the benefits that workers in the USA have labored hard to achieve.  You know, running water, sewage systems, child labor laws, medical care, roads and highways, etc.  The real WTF is that U.S. businesses think a group of people that are too stupid to figure out how to have these things in their own countries are going to be brillant at writing software.

    Welcome to the race to the bottom, USA workers will eventually be able to compete with the cheaper offshore workers once they give up clean drinking water, working toilets, health care and health benefits, and we put our children to work is sweatshops, and let our roads fall into disrepair. Yes, then we will finally have made the smart choice in order to compete with these clever offshore programmers.  WTF!


    Second this...

    This is another case of supporting bad human rights and should be illegal...  If your gonna outsource lets not have double standards.
    Pay them and treat them like someone from your country.   

        Capitalism is the path of evil.


    Then why is your screenname Evil Human?
    You are bashing capitalism and claiming it is evil and yet your screenname seems to indicate that you support evil.
  • ferrengi (cs)
    Alex Papadimoulis:

    After all was said and done, the cost of this statically defined variable was estimated in the millions: lost revenue, lost sales, time to fix, customer's time to fix, court costs, etc. But what really inspired Steve to submit this was when, almost a year after this happened, he attended a meeting from his higher-ups to encourage and discuss the benefits of off-shoring.



    Some people just never learn.
    Would be funny to see a transcript from that meeting and to watch Steve try to hold himself back from bursting out laughing.
    I laughed pretty loud just reading this last part.
  • marvin_rabbit (cs) in reply to CMM5 THIS!
    Anonymous:
    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    > Is there educational system decades ahead of the the one in the USA?
    <Snicker>
    Yeah... Represent Brother!  Way to stick up for us.  "We be more smarter!"
  • Evil Human (unregistered) in reply to ferrengi

    Ya, so got anthing good to say?

  • JS (unregistered) in reply to gonzo

    I think the moral of the story is that outsourcing to the cheapest developer might not be the best idea. Not that outsorced development is always bad.

  • Brian (unregistered) in reply to Stas
    Anonymous:
    <font size="2">Wait, am I the only one stupid here? Laugh at me, if you will, but I don't understand the problem.

    Judging from the code, it's .NET (or Java). So if you've got two separate web requests, they should be totally independent, unless you use a persistent storage. How come that two different requests affect each other? Did they have a separate multithreaded service (running permanently, no on the per-request basis) to handle file operations?

    I had a major doubt trip so I even created a simple ASP.NET app to verify. There's a button, label and a textbox, and here's the event handler:

    public static string StaticTestValue = "Default";

    private void Button1_Click(object sender, System.EventArgs e)
    {
        StaticTestValue = this.TextBox1.Text;

        System.Threading.Thread.Sleep( 10000 );

        this.Label1.Text = StaticTestValue;
    }

    So... I open up two browser windows, do two requests and they're totally independent, as they should be. What I'm doing wrong? :)
    </font>


    It creates a race condition. This means that if two or more people do the same thing at once, then it will overwrite the static variable with the last persons and everyone using the application at this point will have that user's data instead of their data. That's the best way I can explain it. Google "race condition" or something.
  • GalacticCowboy (cs)

    We had one of these in our app.  Though we caught it pre-release.  And I personally went through the codebase and made sure there weren't any other hidden ones waiting to bite us.

    And FWIW, while it was an "on-shore" development effort, the developer who introduced it was, shall we say, not from around here.  [:O]

  • Anita Tinkle (unregistered) in reply to Stas

    It's because this is NOT Java, it's C-pound.   When you use static in a web app (and you can), the static variable is an instance within your AppDomain.

    It's generally a bad idea unless you approve this scope.  You could have several AppDomains your web app if you use IIS6, in that case you should have used the Session object--if you have multiple IIS servers serving requests without sticky sessions, then by all means turn on the ASPNET Session Management service.

    Anonymous:
    <font size="2">Wait, am I the only one stupid here? Laugh at me, if you will, but I don't understand the problem.

    Judging from the code, it's .NET (or Java). So if you've got two separate web requests, they should be totally independent, unless you use a persistent storage. How come that two different requests affect each other? Did they have a separate multithreaded service (running permanently, no on the per-request basis) to handle file operations?

    I had a major doubt trip so I even created a simple ASP.NET app to verify. There's a button, label and a textbox, and here's the event handler:

    public static string StaticTestValue = "Default";

    private void Button1_Click(object sender, System.EventArgs e)
    {
        StaticTestValue = this.TextBox1.Text;

        System.Threading.Thread.Sleep( 10000 );

        this.Label1.Text = StaticTestValue;
    }

    So... I open up two browser windows, do two requests and they're totally independent, as they should be. What I'm doing wrong? :)
    </font>

  • Volmarias (cs) in reply to CMM5 THIS!

    I say this, going in, that this post WILL be screwed up. The forum software night guarantees it.

    Anonymous:
    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    No, it's because they live in crappy countries that have none of the benefits that workers in the USA have labored hard to achieve.  You know, running water, sewage systems, child labor laws, medical care, roads and highways, etc.  The real WTF is that U.S. businesses think a group of people that are too stupid to figure out how to have these things in their own countries are going to be brillant at writing software.

    Welcome to the race to the bottom, USA workers will eventually be able to compete with the cheaper offshore workers once they give up clean drinking water, working toilets, health care and health benefits, and we put our children to work is sweatshops, and let our roads fall into disrepair. Yes, then we will finally have made the smart choice in order to compete with these clever offshore programmers.  WTF!

    Boy, replace "offshoring" with "black people" and you could be a grand dragon in the KKK.

    There are fundamental reasons for difference in standards of living, dealing with corruption, colonialism, lack of capitol, a brain drain due to intelligent workers fleeing for greener pastures, cultural issues, and many other complicated and nuanced issues. Or so I thought. I'm sure that the (brilliant) Indian and Chinese professors that I had in college will be glad to hear that they're all just lazy, stupid people who only want a handout.

    Are you sure I haven't seen you on the news leading a parade of men in funny white dunce hats and ghost costumes?

    The reason that so much low cost code comes out of these countries is because the developers know that many of these contracts are one shot deals. There's no incentive to create a project that will do more than wow whoever is viewing the demo. There are brilliant people that create brilliant systems, and there are stupid people that create stupid systems. Guess which one is cheaper and ultimately presents the more attractive bottom line to the short-sighted higher-ups?

    Outsourcing isn't bad, giving a company that you've never seen before X dollars and no oversight and assuming that you'll be OK is bad.

  • CostOfStaticLiving (unregistered) in reply to CMM5 THIS!
    Anonymous:
    Anonymous:
    this is so made up! if those elite on-shore developers were so damn good, why was the app rewritten in the first place? i work for an outsourcing company now (used to work for a big german software vendor) and i know for sure the quality of software created at my current company is much much better. my company is selling code to people that can easily see its quality, while my previous employers sell their products to end clients, who are more influenced by marketing than by the software quality in their decision. looks like some people lost their jobs to cheaper, more effective outsourcing and make up stories like this one because of anger and frustration


    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    No, it's because they live in crappy countries that have none of the benefits that workers in the USA have labored hard to achieve.  You know, running water, sewage systems, child labor laws, medical care, roads and highways, etc.  The real WTF is that U.S. businesses think a group of people that are too stupid to figure out how to have these things in their own countries are going to be brillant at writing software.

    Welcome to the race to the bottom, USA workers will eventually be able to compete with the cheaper offshore workers once they give up clean drinking water, working toilets, health care and health benefits, and we put our children to work is sweatshops, and let our roads fall into disrepair. Yes, then we will finally have made the smart choice in order to compete with these clever offshore programmers.  WTF!


    That would mean UK is light years ahead of US right? After all, salaries are much higher there...Hmmm - I guess that would make you british.

    What you say is not a cause, but it's just an effect of the economic situation in those countries. Infrastructure doesn't have anything to do with cost or level of living. There are cheap countries where you can live very well, and the infrastructure is good - just visit any of the eastern european countries. Being from one of these, I can tell you we have everything you state above, even better roads in some of the cities. No highways though :(

    To end this quarrel, my prediction is that this whole outsourcing stuff will be a second dot.com bubble - and it's gonna burst. Reason? People get sucked into working in IT even though they have nothing in common with it - this results in crappy code, failed projects, lost money etc. See the pattern?
  • Bobthegoldfish (unregistered) in reply to Stas
    Anonymous:
    <font size="2">Wait, am I the only one stupid here? Laugh at me, if you will, but I don't understand the problem.

    Judging from the code, it's .NET (or Java). So if you've got two separate web requests, they should be totally independent, unless you use a persistent storage. How come that two different requests affect each other? Did they have a separate multithreaded service (running permanently, no on the per-request basis) to handle file operations?

    I had a major doubt trip so I even created a simple ASP.NET app to verify. There's a button, label and a textbox, and here's the event handler:

    public static string StaticTestValue = "Default";

    private void Button1_Click(object sender, System.EventArgs e)
    {
        StaticTestValue = this.TextBox1.Text;

        System.Threading.Thread.Sleep( 10000 );

        this.Label1.Text = StaticTestValue;
    }

    So... I open up two browser windows, do two requests and they're totally independent, as they should be. What I'm doing wrong? :)
    </font>


    The variable is a global static variable; I assume this is equivalent to putting it in the global.asax file in .NET

    It is not specific to the page or the request, it is specific to the application. When person A starts the application, it sets the variable globally. Person A starts entering data. Person B starts the application. The variable changes to their version, for everyone using the application. Person A saves and their data goes under Person B's ID number. Person B then saves, overwriting Person A's data with B's.

    You are probably confused because no one in their right mind would use a global variable for something like this.
  • ferrengi (cs) in reply to Volmarias
    Volmarias:
    I say this, going in, that this post WILL be screwed up. The forum software night guarantees it.
    Anonymous:
    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    No, it's because they live in crappy countries that have none of the benefits that workers in the USA have labored hard to achieve.  You know, running water, sewage systems, child labor laws, medical care, roads and highways, etc.  The real WTF is that U.S. businesses think a group of people that are too stupid to figure out how to have these things in their own countries are going to be brillant at writing software.

    Welcome to the race to the bottom, USA workers will eventually be able to compete with the cheaper offshore workers once they give up clean drinking water, working toilets, health care and health benefits, and we put our children to work is sweatshops, and let our roads fall into disrepair. Yes, then we will finally have made the smart choice in order to compete with these clever offshore programmers.  WTF!

    Boy, replace "offshoring" with "black people" and you could be a grand dragon in the KKK.

    There are fundamental reasons for difference in standards of living, dealing with corruption, colonialism, lack of capitol, a brain drain due to intelligent workers fleeing for greener pastures, cultural issues, and many other complicated and nuanced issues. Or so I thought. I'm sure that the (brilliant) Indian and Chinese professors that I had in college will be glad to hear that they're all just lazy, stupid people who only want a handout.

    Are you sure I haven't seen you on the news leading a parade of men in funny white dunce hats and ghost costumes?

    The reason that so much low cost code comes out of these countries is because the developers know that many of these contracts are one shot deals. There's no incentive to create a project that will do more than wow whoever is viewing the demo. There are brilliant people that create brilliant systems, and there are stupid people that create stupid systems. Guess which one is cheaper and ultimately presents the more attractive bottom line to the short-sighted higher-ups?

    Outsourcing isn't bad, giving a company that you've never seen before X dollars and no oversight and assuming that you'll be OK is bad.



    Well, you were spot on in your prediction that the forum software will mess up your post.
    Anyway, I think you are reading a little too much into the post you are quoting.
    I think that all he is saying is that there is a reason why the offshore work is cheaper and it is quite reasonable to expect that the quality of the code produced will be lower. He may be incorrect with some of his reasons why this is so but I don't think he is being racist or attacking those countries.

    Probably the biggest problem with outsourcing IT is that it is very difficult to manage those people and companies seem to think that they can just let these guys manage themselves. This is a recipe for disaster. It is one thing to have an offshore factory that produces goods and quite another to outsource your programming work, or tech support.

  • CMM5 THIS! (unregistered) in reply to Volmarias
    Volmarias:

    Boy, replace "offshoring" with "black people" and you could be a grand dragon in the KKK.


    I never asserted that their lack social services, human rights, and infrastructure were caused by their race.  But yes, if you add a racial term to anything someone says, then it becomes racist, eh?

    Volmarias:

    The reason that so much low cost code comes out of these countries is because the developers know that many of these contracts are one shot deals.

    WRONG.  If that were the case then the one-shot contracts ONSHORE would be just as cheap.

    Honestly, I consider it RACIST for businesses to pay offshore workers less because they are from another country, given that most these cheaper countries have a distinct racial profile.  It seems in the USA businesses have the EXPECTATION that those from the darker skin (or whatever other racial characteristic you want to invent) countries MUST be cheaper.  You hear CIO after CIO and CEO after CEO spouting the benefits of sending work to "CHEAP OVERSEAS LABOR".  As if these human beings are worth less.  THIS is what has a HUGE racist tone to me, sir.  Not my statement that these countries are cheaper because they have not pulled themselves out of squalor.

  • Colin McGuigan (unregistered) in reply to Stas
    Anonymous:
    <font size="2">
    I had a major doubt trip so I even created a simple ASP.NET app to verify. There's a button, label and a textbox, and here's the event handler:

    public static string StaticTestValue = "Default";

    private void Button1_Click(object sender, System.EventArgs e)
    {
        StaticTestValue = this.TextBox1.Text;

        System.Threading.Thread.Sleep( 10000 );

        this.Label1.Text = StaticTestValue;
    }

    So... I open up two browser windows, do two requests and they're totally independent, as they should be. What I'm doing wrong? :)
    </font>


    Your server is likely not set up to give IIS multiple threads (if you hit both buttons at the same time, for instance, it should take 20 seconds for the second request to finish; a dead giveaway that they both run in the same thread). 

    An easier proof that static variables are shared amongst requests would be this:

            private static string StaticTestValue = "Default";
            private void btnGet_Click(object sender, System.EventArgs e) {
                lbl.Text = StaticTestValue;
            }

            private void btnSet_Click(object sender, System.EventArgs e) {
                StaticTestValue = TextBox1.Text;
                lbl.Text = StaticTestValue;
            }

    Try it -- set the value in one window, and get the value in the other, and you'll see they both reference the same variable.
  • Matthew (unregistered) in reply to reed

    I have seen the same issue with a number of websites. More common than you might think.

  • CMM5 THIS! (unregistered) in reply to CostOfStaticLiving
    Anonymous:
    Anonymous:
    Anonymous:
    this is so made up! if those elite on-shore developers were so damn good, why was the app rewritten in the first place? i work for an outsourcing company now (used to work for a big german software vendor) and i know for sure the quality of software created at my current company is much much better. my company is selling code to people that can easily see its quality, while my previous employers sell their products to end clients, who are more influenced by marketing than by the software quality in their decision. looks like some people lost their jobs to cheaper, more effective outsourcing and make up stories like this one because of anger and frustration


    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    No, it's because they live in crappy countries that have none of the benefits that workers in the USA have labored hard to achieve.  You know, running water, sewage systems, child labor laws, medical care, roads and highways, etc.  The real WTF is that U.S. businesses think a group of people that are too stupid to figure out how to have these things in their own countries are going to be brillant at writing software.

    Welcome to the race to the bottom, USA workers will eventually be able to compete with the cheaper offshore workers once they give up clean drinking water, working toilets, health care and health benefits, and we put our children to work is sweatshops, and let our roads fall into disrepair. Yes, then we will finally have made the smart choice in order to compete with these clever offshore programmers.  WTF!


    That would mean UK is light years ahead of US right? After all, salaries are much higher there...Hmmm - I guess that would make you british.

    What you say is not a cause, but it's just an effect of the economic situation in those countries. Infrastructure doesn't have anything to do with cost or level of living. There are cheap countries where you can live very well, and the infrastructure is good - just visit any of the eastern european countries. Being from one of these, I can tell you we have everything you state above, even better roads in some of the cities. No highways though :(

    To end this quarrel, my prediction is that this whole outsourcing stuff will be a second dot.com bubble - and it's gonna burst. Reason? People get sucked into working in IT even though they have nothing in common with it - this results in crappy code, failed projects, lost money etc. See the pattern?


    I think you have a great point.  In many of these countries, IT is one of the few ways out of poverty.  Well guess what, this means there is a huge incentive to scratch, claw, and cheat your way into getting as many "masters" degrees as you can, in order to be at the front of the hiring line.  I will assume anyone of average intelligence can get an IT degree.  But this hardly implies they will be good at it, have an aptitude for it, or have a passion for it.  Even worse, the incentive to cheat to get the degree at all (in case of total skill mismatch), or more likely, to compete in class rank, is huge.  The bottom line is you have a huge supply of questionably educated people who might have no real talent or motivation to create the best software.  And the ratio of bad to good is probably not very good, considering a high level of people pursuing such a career just for the money.
  • rob_squared (cs) in reply to reed
    reed:
    The primary problem here is the disconnect between support and development. 


    You have just summed up one of the most, if not the most, important disconnect in a company like this.  The company I worked for is going to release a new product shortly as an upgrade to the current product.  The thing is, they asked support for suggestions, then completely ignored them.  Our software deals with selecting files.  And we commonly tell users to use the search function, which is now missing.  Though everyone in support has protested, development simply says its too late to change anything, maybe they'll do it in version 9.  At this company it usually takes a year or 2 to go a whole version number.  A year of headaches, I just can't wait to start.
  • Krenn (unregistered) in reply to arty
    Anonymous:
    In every case I've read about of people being burned by outsourcing, it's due to failure to verify results.  Unfortunately, in order to verify results, you can't just pretend not to need technical people.  Every company that delivers a software product needs QA even if they didn't write it.  Drop quality at your own peril...

    Funny, when I have a company provide a product to me for a price, I expect them to do their own quality checking.  Maybe I'm strange that way, that when I arrange to buy something I expect what's delivered to have some bearing to what I bought.
  • LaurieF (cs) in reply to CMM5 THIS!

    Anonymous:
    You have to ask yourself... why are developers cheaper offshore?  Is it because they are so gosh darned clever and can write better code faster due to their massive brains?  Is there educational system decades ahead of the the one in the USA?  Does time move slower there, thus giving them more time compared to us to get things done?

    No, it's because they live in crappy countries that have none of the benefits that workers in the USA have labored hard to achieve.  You know, running water, sewage systems, child labor laws, medical care, roads and highways, etc.  The real WTF is that U.S. businesses think a group of people that are too stupid to figure out how to have these things in their own countries are going to be brillant at writing software.

    Welcome to the race to the bottom, USA workers will eventually be able to compete with the cheaper offshore workers once they give up clean drinking water, working toilets, health care and health benefits, and we put our children to work is sweatshops, and let our roads fall into disrepair. Yes, then we will finally have made the smart choice in order to compete with these clever offshore programmers.  WTF!

    Ignorant bigot. The bigotry is bad enough, but the ignorance is what sticks out like dog's balls. It's my bet that you've never left your country, and know nothing of other countries. You deserve everyone's absolute contempt.

  • Josh (unregistered)

    I don't know Steve, but my ESP tells me that you forgot to mention the fact that the day after it was identified, every minute or dollar spent fixing it was somehow Steve's fault.

  • :-O (unregistered) in reply to Krenn

    In most cases, I agree with you. However, there are certain situations where environmental differences affect the product. If you deal with many Fortune 500 companies especially pharmaceuticals, they are mandated either by law or corporate policy to validate systems in their environment.

Leave a comment on “The Cost of Static”

Log In or post as a guest

Replying to comment #:

« Return to Article