Mar 20, 2008

Avoiding Pitfalls of Outsoucing your PHP Programming

eLearning Series

by

If you’re looking for a way to have php programming done for your website (perhaps for a content management system, a customized blog, or other web application that needs to tie into a mySQL database), you have several different options. All have advantages and disadvantages, and many of them will depend on your budget. Before outsourcing your php programming project, we’d recommend looking at the following options, so that you can understand which approach will work best for you.

Option A: Hire A Full Time PHP Programmer. The most expensive way to go is to hire a full time php programmer to work on your website applications. If you are a large organization, this is sometimes a good way to go. But more likely, you don’t have enough php programming to keep someone busy on a full time basis.

Pros for Hiring Full Time PHP Programmer: Hiring a full-time php programmer allows you to have maximum control over their schedule and tasks. They can attend all of your meetings, and are on-site on your location.

Cons for Hiring Full Time PHP Programmer: It’s expensive to get a top notch php programmer that has years of experience working with many different types of applications. Such a programmer can be tough to find, as well as keep long-term. It can be a big commitment if you don’t have full-time work for them to do. Programmers like challenges, and need to be supervised, both of which require a fairly technical person to manage them. If you try to bring someone on who is learning php as they go, they’ll spend 10 hours learning how to do basic tasks that an experienced php programmer can fix in 30 minutes to an hour.

Option B: Hire A Part Time (Freelance) PHP Programmer: This option allows you to use a php programmer on an hourly or project basis, but not have to worry about a full time commitment. This allows you to still invite the php programmer into meetings and communicate effectively.

Pros for Hiring Part Time / Freelance PHP Programmer: You don’t have to make a full-time commitment, and you can often get someone with well-rounded experience (because they are working on several different projects at the same time). Like a full-time PHP programmer, they can attend all of your meetings, and are available on-site at your location.

Cons for Hiring Freelance PHP Programmers: You still need to have someone who is somewhat technical manage and supervise the freelance php programmer. You are “stuck” if they go on vacation if something breaks, or if another client has a big project that takes up all of their time. Many people decide to freelance between looking for permanent work, so that by the time you get someone trained and up and running on your php web applications, they have one foot out the door and are looking elsewhere.

You can get really, really lucky and get a great php freelance programmer. But there are a lot of mediocre ones out there that masquerade as talented ones. I’ve found that many tend to talk a lot of technical babel and jargon to hide the fact that they don’t know how to accomplish a programming task (such as modifying an ecommerce system). And not to be overly stereotypical, but I’ve also found that some php programmers tend to feel like the world owes them something, and that they are entitled to be paid lots of money for doing very little work. And there’s also a huge range of talent… what a top-notch programmer should be able to do in an hour, another less experienced php programmer might take a full week.

When I’m hiring programmers for my team, I ask a few basic questions on the phone, to gauge their basic skill set. Those that don’t pass don’t get called into the office. If you want a list of the questions that I use, feel free to contact me using the form below. Sorry to sound jaded, but I know a lot of people that have been burned using php programmers. I’d say we get about five calls every week from people who tell us, “Our php programmer just left, and we need someone to help finish this project. Can you help?”

Option C: Hire Overseas PHP Programmer: This option is often attractive from a price perspective. You will spend much less per hour on someone who lives and works in a country like India, China, Russia or Poland, and knows how to do php programming. But if you are going to go this route, it’s best to keep several things in mind, proceed with caution, and keep the total cost of the project in mind (including the time you need to spend communicating with someone overseas and managing the project).

Pros for Hiring Overseas PHP Programmers: The price per hour can be really cheap for an overseas php / mySQL programmer. It’s usually in the $10-$18 per hour range, depending on who you talk to. Sometimes it’s even less. There are more people graduating from engineering colleges in India than are graduating from college in the entire United States each year, and many of these outsourced, overseas programmers have strong math skills to help break down complex programming problems.

Cons for Hiring Overseas (India/China/Russian) PHP Programmers: There are many cons for directly hiring overseas php programmers… and I’d again recommend caution before you go down this road:

Time Zone Issue. Most of the overseas programmers (especially the ones at a low price) are not going to be working during your business hours. This means that you either have to wake up really early or stay up really late. Or you send a lot of email that isn’t answered for 12-18 hours or so.

Lost Production Cycles. Because you’re not on the same time zone, and someone is working on your php / mySQL programming project on the other side of the world, if something doesn’t work, and you send an email about the issue, it can take a long time for them to take a look at it and fix it. And then, if they don’t get the fix done 100%, it’s another day of back and forth. This one reason alone is cause for caution.

Language Barrier. English is not usually the first language of a php programmers in India, China, Russia or Poland. It’s usually their second or third or even fourth language. It can be tough to communicate complex concepts via email or instant message with someone that doesn’t understand how your php web application will be used in the real world by users.

Communication Issues. You’re not going to be able to sit down at the same table with an overseas programmer to discuss your php project. If you are more of an “ideas” person and want to leave all of the intricate details for how a web application programming project should work to your programming team, you might be disappointed.

Project Scope Issues. Just because you have a good feel for the scope of the project doesn’t mean that an overseas programmer will be able to translate your non-technical thoughts, scope of work documents or flow diagrams easily into php code that works.

Technical Skills. Just because you’re outsourcing you php project, you want to make sure that you have technical understanding of the project itself as well. lf you’re not very technical, it’s easy for programmers overseas to make assumptions that cause the system to be needlessly complex or not work how you want it to.

Testing. Unless you get someone really good, you’re going to have to spend a lot of time testing their work to make sure it works as you intend it to. This can be extremely frustrating.

Yes Men / High Power Differential. It’s unfortunate, but you likely won’t get someone who says “no” to a sub-optimal suggestion you might have. I’ve been told more than once that I’ve gotten the job with a client because we were willing and happy to disagree with them over aspects of a project. But if you outsource to someone who lives in an emerging country like India, Pakistan or China, their culture is usually based on a “high power differential.” In sociology circles, this means that the boss (you) tends to have a lot of power over the employee (them), and the employee fears dissent at all costs. And so whatever you say, they will do. Even if it doesn’t make a lot of sense, or there is a much better way to accomplish the php programming task.

Your Project Management Time. If you’re outsourcing your programming overseas, a good rule of thumb is that you’ll likely spend about 1 hour of your time managing, communicating and testing the php code for every 3-4 hours that they work on it. For a one-day (8 hour) programming project, this might mean you spend 2-3 hours testing and managing it.

Company vs. Freelancer. If you are working with a freelancer overseas, all of the issues I mentioned above still can apply (i.e. not available if other big projects come in, or if they are looking for full time work.)

Total Project Time. It might be that you’re paying $15 per hour for php programming to an overseas programmer. However, if it takes an overseas programmer 4 hours to accomplish something (and includes 1-2 hours of your time to describe what you want, type it out into an email, answer a few questions, test it, send back comments, etc), you’ve just spent 6 hours of time. If you are paid $50,000, then your rough hourly rate is $25 per hour. So you’ve now paid: (4 php overseas hours x $15 per hour = $60 + 2 of your hours @ $25 per hour = $50, for a total of $110 for the short project, and 50% of the cost of it is your time. If you make more than $50k per year, then the equation can change quickly. When you add up everything, you need to make sure that the math works out in your favor.

All of the cons aside, outsourcing a php project overseas can work if (a) you find a solid overseas programmer, and (b) you’re willing to put up with time zone issues, language barriers, communication difficulties and spend a great deal of time proactively testing and managing the project. But it can be a big source of frustration for many people as well, who don’t have the time and desire to manage a project. The biggest thing that I hear time and time again is how much work it takes to outsource.

Option D: Hire A Company Specializing in Outsourced PHP Programming: Of course I’m a bit biased with this option, as I think it’s the best one, and it’s also what we usually offer to our clients. But after spending years helping companies do php programming, I’ve found that for most organizations, hiring a company like ours can be a cost effective option. Why? While the hourly price is more, the total project time, including your time, is greatly reduced.

Pros for Hiring A PHP Programming Company: The pros for hiring a company that specializes in PHP programming include having a dedicated project manager that can “translate” your ideas into clean, workable code. The company can work with you to figure out exactly what you want to accomplish. Your project manager will speak your same language, is on your same time zone, and doesn’t take 18-24 hours to answer your emails because they’ve gone to sleep on the other side of the world.

Other reasons to hire a company that specializes in php programming: The company is not just made up of one freelancer who might be tied up on someone else’s project, is looking for a full-time position, or is flaky and leaves halfway through a project. You’ll save a significant amount of time managing the project. You don’t need to have strong technical skills in order to get a php programming project off the ground, or to manage a technical programming team for a mySQL database / php application. Project Scope can be easily defined, but modified and changed as the situation necessitates. But the biggest reason to hire a company that specializes in outsourced php programming is that if you find a good company that is passionate about their work, they will disagree with you. And it’s usually over things that you might not have thought were important. My team often makes polite suggestions to clients when things don’t make sense, or could work more smoothly a different way.

Cons for Hiring A PHP Programming Company vs. an Overseas Programmer: The price per hour or per project may be a bit higher at a company vs. the hourly rates you might pay someone who lives overseas. If you are a highly technical person, don’t mind all of the cons for communication, time zones, testing and have a lot of time on your hands, this might not be as good of an option than going direct. If you decide to go with an overseas programmer, make sure you have a clear understanding of what you want to accomplish (down to suggestions on how to set up a mySQL database or specific php programming functions), so you don’t fall into any of the outsourcing pitfalls for php programming. We hope this helps!