Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I never know where it's acceptable to post something like this, so please forgive if it's in the wrong place. I'm very interested in going further in to web development; I know a bit of javascript, a bit of php, and so forth, but I'm now seeing these services that will go from psd to wordpress for 200 bucks and I'm wondering how the hell is anyone able to compete with this? So I'm wondering if those more knowledgeable than me could tell me what areas are the least likely to be able to be outsourced, for 5 bucks to some kid in Uzbekistan( no offense to that kid).. do you think it's on the database management side, or maybe app development? ideas appreciated.

share|improve this question

closed as not constructive by gnat, Walter, Jim G., GlenH7, Thomas Owens Sep 20 '12 at 20:40

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Keep in mind that more often than not you get what you pay for. – Kenneth Sep 16 '12 at 13:07
Thanks to all that have replied. What about SQL related work or potentially node.js? – Matt D. Sep 16 '12 at 19:31
there is no skill that cannot be outsourced/offshored. the question is, can it be done effectively? unfortunately, those making such decisions are doing so for $ reasons that have little to do with quality or effectiveness. If you're looking for some magical skill set that will insure you against offshore competition, there isn't one. – Steven A. Lowe Sep 17 '12 at 9:03
@ Steven, no not magic, really what I'm after are the skills that are least likely to be outsourced effectively and that relate to web development. The global economy is a tough ball-game, and as someone entering the frey so to speak, I just want to try and find a nitch that won't be in danger of being "factory produced" in 5-10 years. – Matt D. Sep 17 '12 at 18:22

I think all purely technology related skills have potential to be outsourced. However, business knowledge of how complex applications should work is not easily outsourced.

Thus, creating code is easily outsource-able but business domain related knowledge is not.

In other words, try to give more importance to the business and data flow side of the application. People who know the business flow side of applications with all rules are the ones who are hardly replaced, even if there are tons of documentation.

This is true for complex applications with hundreds of business rules.

share|improve this answer

Soft skills like communication and diplomacy are what you are looking for. Technical skills are well and good but in order to be out-source proofed to any real degree, you need to provably easy enough to work with that no off-shore agency could replace precisely whatever it is you do in totality.

In short, you should strive to be more quality than quantity. Your qualities should be obvious but difficult to measure allowing those that are to speak for you from a hard data standpoint but at the same time adding that edge of being unquantifiably good in many areas.

Learning to talk to designers and UX people would be your best bet in terms of web development. Understanding usability and design and how to facilitate and work into that from the technical side are very valuable skills and highly unlikely to be truly outsourceable.

share|improve this answer

IMO here are the activities which I've seen outsourced which have met with varying degrees of success:

  • Grunt programming (i.e. thrashing out 100's of screens, validation rules, data access layer etc)
  • Unit Testing of the above.
  • UI Test Automatation (robots / Selenium etc)
  • Tasks like SEO, backlinking etc
  • Data capture

Unit tests and grunt coding obviously can't be outsourced to the same partner :). So you want to move through the above skills as quickly as possible, IMO. Another reason not to get stuck in the above activities for too long is that CASE tools, code generators, scaffolding etc make it easier and easier to automate the above. The benefits of outsourcing the above isn't necessarily just cost, but also turnaround time - many offshore partners will work 24x7. (Time is important when you consider that your own staff can sit idle waiting for devs to complete work)

What I've not seen outsourced with repeatable success, are areas which involve high levels of technical risk, and those which involve direct engagement with customer, i.e. This is where you want to get yourself ASAP.

  • Sales / Account Management
  • Project Management
  • Enterprise / Business Requirements Analysis (Overall backlog)
  • Scoping / Deliverables of the current iteration / sprint (Specification)
  • Architecture of the System
  • Framework / Design of the system
  • Technically difficult or risky bits, e.g. integration, core business processes, or performance sensitive components

i.e. the outsourcing partner is provided with the v0.1 'thread' of an app or system containing an example of each 'layer' of code, and the cookie cutting is done offshore.

The obvious problem / consequence to outsourcing 'grunt' work is that our local junior devs don't get enough repetitive development or unit testing experience to build their skills sufficiently to become seniors (and no doubt our offshore partners are building their senior skills)

share|improve this answer

The difference is are you delegating or abdicating the work. I think the success or failure of any project being outsourced depends on the person/company doing the hiring. There may be some tasks that are slightly easier to outsource, but what really matters is the importance. I also think it is easier to outsource tasks you know how to do really well and can monitor and identify if someone else is doing quality and timely work.

Everyone always underestimates how much time they will have to spend with the outsourced workers. Many companies may do better with onsight employees because they don't realize how much time is spent telling them what you want. It's more convenient to ask a quick question without scheduling a meeting. Of course they also don't realize how much time they waste.

I remember a co-partner and lead programmer gave a project to two junior programmers to convert a dos application to Windows. He let them code for months without putting any effort to supervise or review the code. He was disappointed with "them" for the terrible end result. That was his excuse to the other partner eventhough he hired both of them and he was responsible for the project.

Most people can't outsource tasks because they don't know what they're doing and just rely on the kindness of strangers.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.