I am not bigoted, nor am I jingoistic.
It seems important to say that right up front. (If anyone who knows me well thinks that statement isn’t true, then I’ve got some work to do. Momma didn’t raise me that way.) I’ve been thinking about writing this post for a long time now, and I think it’s a hard one to write without saying those two things. I don’t want this to come of as whining or anger. It’s just some stuff I’ve noticed and thought about that I think some other people ought to think about, too.
Over the last 6 to 9 months, I’ve noticed that more and more of the questions I’m getting about SharePoint are coming from overseas, whether it be through the contact form on my blog or in the forums I participate in. Many people probably may not realize it, but when you post a comment to a blog (at least a WordPress blog with moderated comments like mine) the owner can see the IP address you were using when you entered it. So I’m not just reacting to names I don’t usually hear at the local Wal-Mart. Refer to my first statement at the top.
Now this is somewhat to be expected, as SharePoint Developers are becoming a commodity just like everything does. Yes, that’s a sad thing, and I strongly feel that it’s a bad idea with this particular type of technology in most cases. To me, working on a technology platform which exists to facilitate collaboration requires a very hands-on, collaborative working style – one which is hard to create from thousands of miles away.
But there are some other problems in all this and it raises some further questions in my mind.
Should I be helping these folks?
Of course I do, and I probably won’t stop. As my ex-colleague Mauro Cardarelli used to tell me (paraphrased): "What’s good for SharePoint is good for me."
However, especially over the last year or two, as people I know have been looking for work with SharePoint (as have I), it has made me pause a little. If the overseas folks are busy but we aren’t, should I be spending more time helping the locals get good gigs or helping someone in another country do the basics? Many people feel this way about the forum stuff in general. If they know the answer, shouldn’t they guard that knowledge? That, to me, is an old school way of thinking and working that doesn’t hold up anymore. It’s more suited to the 1950s than it is to the twenty-first century.
So I’m not really averse to helping – in fact I really enjoy it – but there are some really difficult cultural differences to deal with. It really annoys me to get an email with a full business problem spelled out, followed by a statement like: "Give a solution for this as soon as possible." Maybe it’s OK somewhere to demand a solution for nothing, but at some point I have other things to do, just like everyone else. I also am a consultant who gets paid to do this stuff for my clients. So it’s really important for those strangers out there to realize that I and many others help because we choose to, not because we have to. We don’t work for Microsoft just because we answer questions on the MSDN forums, we don’t have unlimited time and energy, we aren’t impervious to rudeness, etc. The vast majority of people who ask for help are quite pleasant and respectful, but that small percentage who aren’t can turn it sour.
What are the companies which are hiring these offshore folks really getting?
Now I’m not anti-outsourcing or offshoring. I’m a consultant, so I pretty much have to agree with at least the former. To me there are two main reasons to hire outside help: economics and expertise. (Isn’t it kute that they both start with ‘e’?)
Clearly the offshoring idea is all about economics. I don’t care what anyone tells you about their motivations or how everyone at the overseas firm went to the best engineering university in their own country, it’s all about the money. You just can’t compare the rates that a good developer in the US makes versus a good developer in many other countries.
The other reason – expertise – is all about filling in a skill set for a defined period of time to accomplish something that you otherwise don’t have the skills to do. This is the type of consulting I like to do: go in, get something hard done, educate the client about how to do it themselves the next time, and move on. (Sometimes I have to force the training thing a little more than my clients want me to. I really believe it’s a part of my job and I try to be a stickler about it.) With offshoring where the folks on the other end don’t know what they are doing, this is certainly not the angle.
So, organizations that are trying to save money are hiring offshore help, but they may not be getting the expertise they need. Some of these questions I see are just basic: not even hard to answer. (Inside tip: Want to earn 17000 points on the MSDN forums like I have? You can just answer the easy ones, and there are lots of them.) So there’s a cost saving, but the people doing the work may not really know what they are doing. (I’m not saying that’s the case for everyone. There are very talented people all over the planet.)
So is the cost savings a sham, too? I can’t tell you how many times I’ve gone in and ripped out someone else’s code like so much poison ivy because it is really bad and doesn’t even work to meet the business requirements. This isn’t stylistic stuff, like Middle Tier versus managed code, this is just horribly badly done work. Sometimes it’s offshored and sometimes it’s companies right here in the Boston area who have done the work. so geography isn’t necessarily a predictor of quality.
So my point here is that you’d damn well better know what you are going to get when you hire an outside firm. Be *very* aware of the old bait and switch, and also remember that it’s almost unheard of for that nice sales person to be the one who’s going to actually do the work. Someone, somewhere is going to do it and you deserve to know who they are and what they know. If the people who actually end up working on your stuff are the ones asking some of these questions I get, then believe you me, you may save a little money this quarter but it’s going to be far harder to fix it while it’s up and running that it would have been to do it right in the first place.
So, first of all, I apologize to all of the talented people out there, anywhere, who may fell lumped into something here that they shouldn’t be. Also, I’m not writing this due to any particular interaction or individual’s action. It’s just a pattern of things I’ve seen which I’ve thought about for a long time.
What do *you* think?