Tag: t-mobile

How’s $421.32 monthly as a PC technician sound? That’s the salary of India-outsourced PC techs!

Are you familiar with the company iYogi? They’re an India-based PC support company that is growing amazingly quickly, especially considering they’ve barely been around for four years as of this blog post. iYogi is spreading like a virus. The company that makes Avast! Antivirus outsources to them for their technical support, which is how we initially discovered that iYogi isn’t just a random one-off company: our customers at Tritech Computer Solutions started to complain that they called the Avast support phone number, got pushed to iYogi, and that iYogi told them the usual “doom and gloom” story where “your PC has problems and we will fix them for $139” or something similar. Needless to say, we provide support services to the customer already, and they were distraught when they were being pressured to pay for extra PC repair services they didn’t really need. I personally wrote to some higher-ups at Alwil Software and asked them what the deal was, and they indicated that they had received numerous complaints about iYogi’s aggressive sales tactics and that they were working with iYogi to develop a training program to eliminate the troublesome treatment of Avast! Antivirus customers. I’ve read that Microsoft and HP and Dell and Toshiba also outsource to iYogi, but can’t confirm this personally. While I’m hammering on the subject, it seems that they use 100% free scan tools such as SUPERAntiSpyware and MalwareBytes as at least part of their support services, and customers can easily install and run these without paying anything to anyone.

That’s a bit off-topic for this post, but I feel that it’s very important to the reader to understand what I have personally experienced so far as it relates to the whole salary topic in the title. Today, I once again ran into iYogi because they apparently have sponsored videos on YouTube, and I wanted to find out what on earth they were doing that kept them “in the spotlight” so heavily all the time. Clearly, the video production, massive advertising, and partnering with major vendors as their technical support outsource company requires a LOT of money to keep going. That’s how I ended up finally breaking down and looking at the number one cost of business: paying people a fair wage to do the actual work.

Note that I’ll be using United States dollars as the currency from here on out; that way I don’t have to write “USD$” over and over.

The median hourly wage for a PC help desk technician in the United States circles around $15.00 or so (source: PayScale.com), depending on how lofty the title is (“analysts” make more than “representatives” etc.) and we’ll assume that they work a 40-hour work week, 8 hours per day, approximately 21 days per month (Monday through Friday). That’s about $2,520 per month in gross wages, or roughly $30K/year.

A job posting I found on PlacementIndia.com (which will probably be deleted before you read this) for a position titled “Required IT Application Helpdesk Support Executive” at Unistanz Software – Mumbai, Maharashtra, lists the following requirements: “Bachelor Degree, B.A, B.Com, or B.Sc” and 2-5 years experience. It is a full-time position, and the monthly wage is stated to be Rs. 15,000-20,000. (Rs. is Indian rupees, a form of currency.)

A quick spin over to the CoinMill.com currency converter for INR to USD reveals that the United States dollar equivalent is $315.99-$421.32 PER MONTH.

You read that correctly. Indian tech support agents with a four-year degree command a monthly salary that, according to these numbers, is between 12.53% to 16.74% of the monthly salary of an American technician that may not even have a degree at all. In other words, I could reduce my largest cost of doing business to ONE SIXTH OF THE CURRENT COST if it can be outsourced to India.

That’s why iYogi can charge a rate that is insanely low: $169.99 per customer per year for what they advertise as essentially unlimited technical support. A cover feature piece in India Inc. magazine states that iYogi has 6,000 people manning the phones, so doing obvious math, those people cost between $1,896,000 and $2,532,000 per month to employ (based on the pay scale I found advertised for a similar position at a different company). Dividing all that by the $170 per year fee (I used integer math, it’s one penny, get over it) the company requires 133,824-178,728 yearly paying customers to pay their people. I realize that this example ignores a whole host of other business expenses and staff; I’m only trying to get a rough idea of how much money is required to roughly break even on the actual workers, to make a point later.

So we can safely assume that iYogi has well over 180,000 yearly customers since they’re supposedly growing with the force of a deadly plague. What would it cost to employ American workers at the stated American wages, in place of the outsourced workers? Well, at $2,520 per month for 6,000 workers, $15,120,000 per month. That’s almost exactly SIX TIMES MORE. Using this “six times more” ratio, the equivalent yearly fee charged to the customer would need to be $1,020 per year to cover those workers’ wages, which works out to around $85 per month. iYogi’s yearly fee divides out to $28.33 per month.

Another way to put all of this in perspective is this: with the $2,532,000 that iYogi pays out for 6,000 call center workers, an equivalent American firm can only hire 1,004 people…and keep in mind that all of these figures ignore the standard 3-tier technician model, where Tier 2 and Tier 3 are paid much more due to possessing more experience and skill. Taking tiers into account requires information I don’t have, but consider that if Tier 2 makes 30% more on average than a Tier 1, the worker in India will be paid $127 more per month, while the U.S. worker will be paid $504 more per month. That’s notable because the difference in those pay raises equates to the cost of another Indian Tier 1 technician!

What should you take away from all of this calculator dancing and long-winded discussion? Indian workers cost about one-sixth of American workers to employ for completing any given labor effort that is capable of being outsourced. That’s why iYogi is doing so well: American firms can’t compete unless the call center workers can get six times the work done in the same time frame as the equivalent Indian worker. Can it be done? I don’t know. “Work smarter, not harder” has long been the reason for my company, Tritech Computer Solutions, being able to often pump out ten or more computer repairs in a day with only one technician on staff, but having been an individual self-employed computer technician that at one point lacked both the resources and the knowledge that I possess today, I can definitively say that even the best techs I’ve ever met don’t do six times the work of a “newbie” technician. (Though we definitely avoid the high rate of return or of creating angry customers, but that’s a story for another day!)

There are other factors that work in favor of U.S.-based technical support call centers, though, and once a critical mass of individuals is reached that becomes fed up with this outsourcing trend, we may see outsourced support diminish considerably. In America, we’ve recently learned to accept lower quality goods and services if they come with a sufficiently lower price tag, so we don’t give it a second thought until we discover first-hand what kind of serious quality issues can arise. Dell became the poster child for terrible India-based outsourced technical support staff because they were one of the first huge companies to make the switch (though XPS “premium” support remained stateside), and the backlash can be heard around the United States to this day. Customers in the United States find it highly frustrating to spend a significant amount of time on the telephone attempting to understand what the agent halfway around the world is trying to say, and the fact that most Tier 1 technicians follow “idiot-proof scripts” to the letter only adds insult to injury. When a Tritech technician calls Dell support to have a replacement for a customer’s failing hard drive shipped in to fulfill the Dell warranty obligations, and the person on the other end only repeats lines from some unseen magic flowchart on their desk which results in a 30-minute call that could have taken five minutes, the depressing failure of outsourced technical support starts to become apparent.

Perhaps the biggest advantage of properly conducted American tech support is that their communication is immediately comprehensible to the caller without unnecessary requests for repetition. Being capable of adapting (if not forced to stick to a script the whole time) is also very crucial; while representatives cannot be given unlimited power over the remedies they may make available to the customer, giving them enough freedom to break from the procedural flowchart can greatly reduce call times and improve service experiences for the help desk technician, the customer, and the company in general.

A classic and very personal example of this would be when I had to call T-Mobile technical support to have my G1 smartphone replaced under warranty. The gentleman with whom I spoke was clearly a native English speaker, knowledgeable about both his job and the devices he was required to support, and willing to work with me on my level of technical aptitude. After I explained that I had rooted the phone myself, and detailed the exhaustive number of steps I had performed to figure out why the wifi was not functioning anymore where it had been perfectly fine with the same rooted firmware for months prior, he gladly skipped ALL OF THE DIAGNOSTIC STEPS ENTIRELY and simply set me up with a warranty replacement to be shipped out immediately. Imagine how long I would have been on the line if he had refused to accept my reports of having performed every diagnostic test known to man, started at step one, and had me reboot the phone, then try pulling the battery, then factory reset the phone, then…well, you get the idea. When that replacement phone decided to completely refuse to work as a USB mass storage device with my computers a few months after that, I had an identical experience with a very nice lady in technical support.

Yet when I call Dell and tell the Indian guy on the other line that we’ve run software which initiates a read of every sector on the customer’s hard drive from beginning to end and that unreadable sectors were detected, the experience was disastrous and we were forced to run Dell’s built-in diagnostics and read a Dell-specific code out before they would even consider sending a hard drive out. My software was questioned, my methodology was questioned, and when I was asked what prompted the drive test and revealed that the customer originally had viruses on the computer, I was told “we cannot fix viruses, you need to call the paid support people for that.” Riiiight, because somehow “the hard drive is failing” wasn’t the reason we called, it was now magically “viruses” that were the entirety of the problem. Needless to say, the customer and all of my technicians heard the conversation on speakerphone and we concluded that the Indian guy was either a complete idiot, deathly afraid of losing his job, or both. It was an extremely customer-hostile experience, and it was repeated twice because I called back twice, hoping to talk to a different person that wasn’t a complete idiot…and failing to do so. Apparently, Dell doesn’t care about customer service. Minimizing the cost of warranty fulfillment is priority one.

We need American tech support, but to get it, we have to be willing to pay the price. On the cheaper end of technical assistance, you tend to get what you pay for.

I know that this has been a very long post, but thank you for reading it. If you have any thoughts or more information, or you’re an insider of some sort that knows more than I can learn simply by trolling the Web, please comment below. I’d also like to hear from ANYONE in the United States that has had a personal experience with iYogi, either positive or negative.

References:

http://www.payscale.com/research/US/Skill=Help_Desk_%2f_Desktop_Support_%28Tier_1%29/Hourly_Rate

http://www.placementindia.com/job-search/vacancy_detail.php?id=view_job_posted&job_posting_slno=259765&recruiter_mem_slno=279450

http://www.slideshare.net/alokmittal/iyogi-cover-story-inc-india-mar-2011

http://coinmill.com/INR_USD.html#INR=15000

By the way…there are more technical jobs that require significant knowledge yet pay even less than the one I used for this article. Here’s another that pays Rs. 10,000 – 15,000:

http://www.placementindia.com/job-search/vacancy_detail.php?id=view_job_posted&job_posting_slno=257776&recruiter_mem_slno=273972

iYogi complaints and reviews at this next link are quite scathing; according to one post, they ask their employees to drop tons of fake positive comments around the Internet in favor of the company:

http://www.complaintsboard.com/complaints/iyogi-c325325.html

Tuning a T-Mobile G1 with Cyanogenmod 6 (CM6) for optimal performance (no swap, compcache, or 10MB hack needed!)

IF THIS GUIDE HELPS YOU, PLEASE COMMENT. Last updated 2012-01-24.

[UPDATE: Added Android keyboard bug note; added step to remove ADWLauncher.]

[UPDATE 2: The launcher “Zeam” seems to be even lighter than LauncherPro.  Changing VM heap size to 12 and enabling JIT seems to improve the phone’s AVERAGE behavior considerably. While slower than after the initial boot with VM heap size = 24 + no JIT, the latter combination seems to slowly degrade performance until a reboot is needed, while the new settings don’t have such an effect. However, my phone is literally FULL with apps, so if you run lighter (i.e. remove Maps and Google Voice, don’t have many apps) you may prefer the 24MB heap size.]

[UPDATE 3: You REALLY should perform the EzTerry 14MB RAM hack which makes a massive difference, but requires more advanced work and is beyond the scope of this tutorial.]

I managed to FINALLY get my T-Mobile G1 to perform very well while running Cyanogenmod 6 (specifically I’m running CM 6.1-RC1 for Dream/Sapphire), and because it’s been such a difficult and elusive process, and people all over the Cyanogen forums have been screaming about often lackluster T-Mobile G1 performance (due to the 96MB of OS-usable RAM installed in the G1) I should share everything I’ve done to get this far.

What’s so different about my performance as compared to others who report GOOD performance with a CM6 G1 is that mine had started to become quite poor, which is often the case with these phones and custom ROMs.  Everything would work great after a wipe+flash, which erases pretty much everything, and then over the course of a few weeks the performance would drop until it became laggy and very annoying.  Reports of dialer/phone appearance on an incoming call lagging so severely that calls would be missed are not uncommon.

How does it perform?  Well, most of the time the launcher doesn’t unload, meaning my icons appear immediately when I go “home.”  When it does unload, it’s very quick to come up.  Application load times are drastically better and there is no noticeable lag in most usage cases.  In particular, the 3D gallery, which is very notorious for being slow to come up when using the default CM6 settings, pops up in approximately 5-6 seconds, and all of my 150 or so pictures on my 4GB Class 4 microSD card pop up in another 4-5 seconds (the first gallery startup makes thumbnails and is significantly slower, but we can ignore that since it’s largely a one-shot deal.)

BIG FAT UGLY NOTE TO ALL G1 CYANOGENMOD USERS: The default CM6 Dream/Sapphire settings are NOT OPTIMAL FOR THE T-MOBILE G1!!! I will be telling you to change settings in the “Performance settings” which has a BIG WARNING when you open it about dragons and voided warranties. Don’t worry, you’ll be safe with my setting changes.

First and foremost, you need to get some apps from the Market.  Search for and install the following:

  • Zeam (smaller) or LauncherPro (nicer) to replace ADW.Launcher
  • Home Switcher for Froyo
  • ConnectBot (not strictly needed as you can use Terminal Emulator, but ConnectBot makes things easier)

Now we’re ready to clean up the software on the G1 and get it performing like it was meant to.  Follow these steps:

  1. Run Home Switcher and set the default home app to LauncherPro or Zeam.
  2. Hit Home to get into LauncherPro, then hit Menu > Preferences > Advanced Settings > Memory Usage Settings > Memory Usage Preset, and select Light.
  3. Home > Menu > Settings > CyanogenMod Settings > Performance Settings > OK > Compcache RAM usage > Disabled
  4. Uncheck the following:  Use JIT, Enable surface dithering, Lock home in memory.
  5. Check Lock messaging app in memory.
  6. VM heap size > 24m
  7. You have a G1, so you probably don’t need the on-screen keyboard, and it takes up at least 5MB of RAM even if you aren’t using it.  Decide whether you want to have the on-screen keyboard or if you want to be stuck with only the 5-row slide-out keyboard. For me, the choice was obvious because the on-screen keyboard really, really sucks, so I turned it off. If you can do without the on-screen keyboard (and I highly recommend this step) then deactivate it: Home > Menu > Settings > Language & Keyboard > uncheck Android Keyboard.  [UPDATE: Looks like this box checks itself automatically when you reboot. Just uncheck it whenever you reboot; it’s probably a very minor bug in CM.]
  8. WARNING: the safe parts are now done and over with; in the next steps we will be stripping out Android apps that come with the CM6 system which can be sort of dangerous. Also, reflashing or upgrading CM will put these right back in place and you’ll need to repeat these steps.  (Apps exist to do these things more safely but I didn’t use them myself.)  If you are not comfortable with removing unnecessary system apps, stop here.  This page is very helpful reference for this: http://wiki.cyanogenmod.com/index.php?title=Barebones
  9. We need to remove Voice Search, Amazon MP3 (if applicable), Google Quick Search Box, and News and Weather. These apps seem to run themselves or a system service component all the time, and that means using memory unnecessarily.  (Plus, no one seems to use them anyway.)
  10. Run ConnectBot. Go through their tutorial if you like. Pay attention to how right-alt types a forward slash and right-shift performs “tab completion” of file names for you (in bash). These are very handy for typing the often long app file names. When you can open a new connection, change the connection type from “ssh” to “local” and hit [enter] in the empty box to the right of it.
  11. At the $ prompt, type su and hit enter. This will prompt for superuser access; allow the action to proceed. You’ll be changed to a # prompt.  Type bash and hit enter.  This will give you more junk before the # but otherwise it’s the same.  (Using bash gives us the handy tab completion, remember?)  Type the remaining steps in exactly as they are written, one per line.  If Amazon MP3 is not installed (on some versions) then the Amazon lines may return errors.  Note that after running any of the “pm uninstall” commands you will need to push the trackball button and then the letter “c” after you get “Success” to continue. For some reason it never seems to return to the command prompt if you don’t do this, but whatever.  Remember, you can hit right-shift to have the system complete the file names once you type enough characters.
  12. mount -o remount,rw /system
  13. rm -f /system/app/com.amazon.mp3.apk
  14. rm -f /system/app/GoogleQuickSearchBox.apk
  15. rm -f /system/app/GenieWidget.apk
  16. rm -f /system/app/VoiceSearch.apk
  17. pm uninstall com.amazon.mp3
  18. pm uninstall com.google.android.googlequicksearchbox
  19. pm uninstall com.google.android.apps.genie.geniewidget
  20. pm uninstall com.google.android.voicesearch
  21. [UPDATE] ADWLauncher apparently will continue to eat memory in the background even though you switched to LauncherPro.  Use the following command to make ADW go away (note you can reverse the process if you have to, or update/reflash):
  22. mv /system/app/ADWLauncher.apk /data/

[UPDATE: Don’t remove ADWLauncher; if something goes wrong and you remove Zeam or LauncherPro, you’ll have NO LAUNCHER and a reflash will be forced upon you. The 14MB hack will relieve some of the memory pressure and make this unnecessary anyway.]

Type “exit” three times to leave the console.  After all of this mess is completed, I’d suggest rebooting the phone to make sure everything is in a consistent state.  I noticed that lots of services run at initial startup, so don’t be alarmed if the G1 is slow for about a minute after the launcher appears.  I have found that deleting my Messaging threads and limiting them to 100 messages per contact significantly boosts Messaging app performance. Since Messaging is locked in memory, you might want to regularly clean it out to maintain optimal performance.  The same goes for the various Browser caches and saved information, though cleaning these will only make Browser perform better and has no effect on the entire phone.

After doing all of this, I noticed that my phone boots faster and is extremely responsive all of the time.  Even when the system reloads LauncherPro or starts an app from scratch, it’s MUCH faster to do so.  AGAIN, note that I am NOT using ANY of the following performance hacks:

  • Compcache (not even 10%, it’s DISABLED)
  • The Dalvik JIT compiler
  • Swap file on the SD card
  • 10MB RAM hack
  • Task/process killer applications (they’re unnecessary anyway)

Please leave a comment with feedback if you followed these directions.  I can’t provide help (that’s what the CM forums are for), I just want to know how it works for others.  Thanks!