Logically and Practically Offshoring

On a recent customer visit to Greece, I had the opportunity to meet some great people and learn some interesting things. One of the more memorable experiences was with talking to our gracious host, who, like all good Greeks, was hospitable enough to make sure that we were treated to all different types of Greek cuisine during our one week visit.

At one of those meals, the first one, actually, we realized that no matter where you go, the relationships between men and women are the same. No wonder, that Men are from Mars book was such a great seller. Later in the week, after the relationship coversation, our host took us out to dinner with his wife. Once again the subject of husbands and wives came up. Ernst made the comment that his wife is a firm believer that if you take clothes out of the dryer as soon as they are dry, there is no need for ironing.

The lone woman at the table had the response that it is true that if you take the clothes out of the dryer as soon as the dryer has finished its cycle, the clothes will not be as wrinkled as if you had left them in the dryer. This prompted the statement from her husband, our host, that her comment was “logically truthful, but practically useless.”

I’m not sure if it was the Ouzo or the Greek beer, but that prompted quite a few laughs from the men at the table.

Recently, I took a look at some code that came back from an offshore company we had work on a small project for us. It is a fairly straightforward web application, but I knew from talking with the offshore project manager that it wasn’t going to work out. Thankfully we had worked out a kind of trial deal where the work they were performing was minimal and cheap, if not free.

I first knew we were in trouble when I kept insisting that since they got started 2 weeks late and I knew it was at least a 3 week effort that it wouldn’t be done on time. I insisted but the PM kept saying “Yes, yes, it’ll be done, no problem.” Well, needless to say, it wasn’t done. After another couple weeks of their effort on it, the project ended and I decided it would be best to tackle the rest in-house.

Well, I finally got a developer to look at it, and parts of it are surprisingly good, so it wasn’t a total loss. Other aspects of it, though, make me shake my head in wonder.

The developer who was fixing up what we got back called me over to take a look at some validation logic on the server-side of this web application. The original off-shore developer had coded the validation messagees to pop up using JOptionPane, such as “JOptionPane.displayMessage(”This is an error.”);” The thing is, if you know nothing about web applications, and they had assured me that they did, this may actually appear to work if you are testing the application with a browser and a server on the same machine. The JOptionPane call causes Java to pop up a message box with the desired message in it, but this is coming from the JVM on the server, not from the browser.

The developer I had looking at it, who admittedly, is pretty inexperienced, asked me why the alerts were sometimes appearing under the browser window. We opened up the code, took a look, and found the offending code. Without saying anything I asked the developer to test from another machine, and low and behold, the error message would pop up on the server. Not only did the message pop up on the server, but it is a modal dialog box, so the thread would stop processing until someone responded.

I don’t think this is what was originally intended, and I’m sure when that first developer unit tested it, the error messages popped up as expected, but everything certainly wasn’t as it appeared.

So now when people ask me about offshoring and the savings involved, I look at the rate sheets of offshore companies compared to ours and I have to say, “Is offshoring a feasible way to save money on a development effort? Logically, yes, but practially, it’s useless.”

Share/Save/Bookmark