Now it's not that I have anything against Indians (dot, not feather -- thank you Simrin) but I have to say that I absolutely hate hate HATE the offshore IT industry! It all started with tech support. You call up some large computer company, only to find that you are not talking to a native English speaker... you are speaking with somebody who very likely learned English just for this job, and has a vocabulary limited to the subject matter at hand. I'm not saying that I'm some linguistic genius. "I speak two languages: English, and bad English." But when I'm calling an American owned company, as a native English speaking American, I expect to speak to another native English speaking American so that we can both fully understand what the other is saying, without having to slow down our speech, repeat ourselves, and watch carefully not to use any colloquialisms which the other person wouldn't understand simply because of their cultural background.
So we started with the offshore tech support.... but wait, it gets better! Now we've moved to offshore programmers. Don't get me wrong, I'm sure this is an alright idea for some companies. They have no IT staff, they need something done and need it cheap. This solution will accomplish those goals. Now take an instance like the company I work for. We do have an IT staff ... well, if you count myself and a part-time sysadmin. Anyhow, we do have a staff. I do all of the programming, tech support, assist with sysadmin work (our sysadmin is an intern... so I'm tutoring him part of the time) and, well, whatever else needs to be done. However, we also have an offshore programmer working on one of our projects. He appears to be a very competent programmer from what I've seen, don't get me wrong. He's also fairly good with English. I don't believe we have had too much trouble with communication; a few small cases where the English language simply failed to explain itself. There are some major frustrations, however. There are days I really wish I had somebody sitting here in front of me, so that I could directly guide then on this project. I could also beat their head in, if necessary. In fact, I could throttle them, slap them around, throw things at them and tell them "NO NO NO STUPID! THIS is how it needs to be done! L-I-S-T-E-N to me.... do you understand the words that are coming out of my mouth!?" That's the joy of having somebody working directly beside you. Or at least, in the same general area.
See, what got me all riled up this morning is an email I got from this offshore programmer of ours. He's working on a project that's going to involve some audio and video processing. This is obviously not a simple process. In fact, in a previous post, I discussed just how easy this isn't. I also talked about how intensive a process it is on a system. So right now, this offshore developer is actually working on building this part of the system. This is a rather important part of the system... despite the fact that there will not be a heavy load imposed from video and audio processing; i.e., we aren't going to have people uploading constantly like YouTube. There will be at most 50 videos uploaded per day. Still, we have currently 3 web servers, and these servers are not very powerful machines. They deliver web pages; they don't need to be anything special. With this in mind, we definitely don't want to be doing the video processing on these servers. Our encoding time -> video time ratio would be through the roof. If somebody uploaded a 3 minute video, it could take upwards of 5 minutes to encode. This would tie up the web server for 5 minutes, starve it of RAM, kill its swap space, send the server into a processing frenzy. All the while, this server still needs to be able to deliver other web pages. Remember, only 3 web servers... and we're serving thousands upon thousands of web page requests per day... and with this new project, that number will potentially increase exponentially. This is simply NOT an acceptable situation. Keeping this in mind, I sent our developer some specifications saying that video and audio files are to be processed on a separate server. I won't go into exact details here... but I imagine it's actually an extremely scaled down version of how sites like YouTube actually work. Offload the work, keep the web servers freed up, continue serving web pages effortlessly, and get the media processed on a nice beefy server. Sounds great, right? Well apparently our developer and his "technical team" do not agree on this. I got an email this morning which said the following:
50 / day is not a big number to think of a separate server. So we can do this on the Web Server itself, instead of a new one.Wait wait wait..... what? Did you not listen to what I was saying? (See my previous examples of screaming in this post to see how I would have liked to react to this ridiculous statement.)
Well, needless to say, my Friday morning buzz of happiness is now 6 feet under. In fact, more like 10 feet under. That sent me into a bit of a rage... and I still have to reply to this email.... the worst part is, I have to be polite! This is also taking me COMPLETELY off track from the project I've been working on, which is a very very bad thing.
So not happy right now.
Oh and to those who were wondering, yes I'm still alive. I just keep forgetting to post here. Thanks for the reminder!