meanings of Open Outsourcing encyclopedia of Open Outsourcing dictionary of Open Outsourcing thesaurus on Open Outsourcing books about Open Outsourcing dreams about Open Outsourcing
 Open Outsourcing - Definition 

Open outsourcing is a socioeconomic movement resulting from the marriage of the Open source movement and the recent trend towards the international outsourcing of programming.

Open outsourcing makes open source technology more accessible to businesses and individuals by employing an inexpensive international labor force of programmers, often on a contractual piecework basis. Small businesses may not be technical enough to efficiently utilize open source resources in-house or large enough to hire a full time technician. Larger businesses with IT staff may lack technicians with specific skills or knowledge. Open outsourcing also reduces some of the risks associated with outsourcing by making the resulting code publicly available through open source licensing.

Contents

Benefits of open source

The benefits of open source are well known and explained in great detail elsewhere, but briefly summarized they are:

  • Low or no cost
  • You may modify the source code for your specific needs
  • No runtime fees
  • No lock-in with a software vendor
  • Quicker turn around time for fixing bugs
  • Many projects exist for cannibalization of algorithms

Challenges of open source

The challenges of using open source efficiently aren’t solely those of technical naiveté, but are somewhat endemic to the state of the art of the open source movement. Despite recent progress towards greater ease of use in mature open source projects, much open software remains inaccessible to any but the technologically sophisticated. These problems include:

  • A lack of marketing to make potential users aware of the existence of mature projects
  • Lack of excellent documentation
  • Inconsistent or non-existent install scripts
  • Lack of knowledgeable and available support staff
  • Inconsistent and generally unknowable quality of projects
  • Developer-centric designs highlighting feature creep
  • Complexities of licensing

How open outsourcing ameliorates the challenges of open source

Web sites devoted to connecting programmers with people needing programs make it easy to put a job before thousands of coders with a single posting. This turns the marketing problem of open source on its head, because some of those programmers are already aware of open source projects that may help in solving the problem. Other programmers will search for entire or partial solutions as they bid on a project.

The documentation problem is lessened because the programmers are either already familiar with the code in question, or can read the code to determine its function. They can also be employed to create documentation suitable for your needs.

These programmers are generally able and willing to create install scripts that make deploying the application easier, and in the case of web applications can even configure the web server.

Ongoing support can often be negotiated, however, this must be made very clear from the beginning of the process, or extra expenses can be incurred later.

The problem of basing a solution on an immature or buggy open source project is reduced because the programmers are able to ascertain the current state of a particular project, or are willing to work on the project to push it further along in the directions you require, if you can afford those improvements.

In general, the issues with feature creep are not resolved by open outsourcing, but at least the features being developed are the ones you specifically require. Being in the position of controlling the development assures that what you care about is advanced, rather than being at the mercy of volunteer programmers with their own priorities.

The complexities of licensing remain a challenge. They are most easily resolved by choosing ahead of time a compatible set of open source licenses you are willing to work with, then not using source from incompatibly licensed projects. The licenses with the most restrictive anti-commercialization clauses such as the GPL tend to also be those with the most available source code, so there is a trade off that must be weighed in selecting the kind of license to use. The most restrictive type of licenses do not typically present problems for end users of in-house software, but may present significant challenges if the software is for resale, especially if it is used within a larger proprietary system. There are entire books dedicated to the issues of open source licensing issues.

Benefits of outsourcing

With numerous programmers available internationally over the Internet, the price of custom software has dropped, in many cases, to the point where many more end users of software can themselves afford to pay for customized programming for internal or proprietary use. Most estimates are that 75% of all software produced is for in-house consumption rather than for resale, so there is obviously a lot of this kind of programming being done. Typical piecework third-world programming rates range from 5%-20% of first world programming consultant’s salaries depending on the type of work. The difference tends to be smaller for full time employees. Being able to hire programmers so affordably greatly reduces the barriers to entry for small businesses and even individuals wishing to benefit from custom software.

The supply of international programmers is increasing at a significant pace. According to NASSCOM, IT graduates (computer science, telecom and electronics) in India numbered 126,500 in 2002-03, 139,839 in 2003-04, 146,179 in 2004-05 and will be 158,176 (est.) in 2005-06. Obviously the trend is upwards. NASSCOM estimates that the supply of IT professionals (in India) will outstrip demand by 48,000 in 2008. This means that there will be continued downward pressure on wages. A similar trend can be seen world wide. In the United States, growth in the demand for programmers has been sluggish or negative since 1999.

Challenges of outsourcing

It may seem obvious, but coders from different cultures approach programming differently. This can be a benefit if it is properly understood and a risk if it is not. In India, for example, many programmers are hesitant to suggest alternative ways of approaching a problem unless specifically asked to do so. If you are satisfied with your approach to a problem, this is good, because you don’t have to spend time convincing the programmer of your way of doing things. It reflects an attitude that the customer is always right. Western programmers tend to be far more opinionated, and you sometimes must convince them of your way of thinking prior to proceeding with the actual coding. If you are unsure of your approach or your approach is indeed wrong, a western programmer is far more likely to point out viable alternatives early in the process. It takes time to learn the cultural variations among programmers, and which cultural style fits best with your personal style. Of course, individuals within cultures can vary significantly from their cultural norms.

There have been thousands of failed outsourcing projects. Western programmers and the press adamantly point to these failures as proof that the west is still relevant, and this is correct. Many software projects are not suitable for outsourcing. Open outsourcing, in particular, is most suited to solving problems that are very well defined and which are natural extensions of existing open source projects. Small projects are much more likely to be successful than larger projects, although projects that are too small require a lot of managerial overhead for the amount of code produced. Of course, open outsourcing is totally unsuited to the development of proprietary closed software.

The problem of finding programmers and making sure you get your code and they have assurances of getting paid if they successfully complete the project is helped considerably by the employment of a specialized escrow service.

Finally, the more accurately you can specify just exactly what you want up front, the more likely you are to get what you want in the end. Think of open outsourcing as programming in English. Just as with programming in computer languages, the “garbage in, garbage out” rule still applies.

One of the greatest challenges to outsourcing of any kind is negotiating realistic deadlines and sticking with them. If your development need is very time critical, hiring two independent programmers to develop the same code at the same time can mitigate this risk. It doubles the cost, and increases the management overhead, but it reduces the risk that the software will not be delivered on schedule. If both finish on time, then you have your choice of the better solution.

How open outsourcing ameliorates the risks of outsourcing

Obviously, if a programmer can start with a program that solves a good percentage of his customer’s problem, he will not have to spend as much time and effort solving the problem. By allowing a programmer to use open source on a project (and thus implicitly giving him permission to keep, reuse and redistribute the resultant code, including submitting it back to the original project) programs can be written for a fraction of the price of developing proprietary code from scratch. Even at just a few dollars an hour programming time, time passing is not free because of opportunity cost, and getting the code more quickly means your ROI will occur that much faster.

Some of the risks associated with outsourcing are lessened through the use of open source. For one, it makes it easier to switch programmers in midstream should the original programmer prove unable to complete the task. After all, it is likely that more than one programmer is familiar with the code since it is publicly available. This will never be the case with proprietary code, and the time it takes a programmer to familiarize himself with a set of code is non-trivial.

Another benefit to the open source approach is that it is likely that your programmer will use your code again in the future. If a bug is found during that future development, he is quite likely to make the fix available to you, particularly if you have a maintenance agreement. If he was working on proprietary code, he would never get a chance to look at your code again, except as you hired him to do so. In addition, if the code is properly submitted to the core open source project, other programmers will look at it and may fix bugs or even make further improvements. While this is by no means guaranteed, the chances of it happening are far greater in open source than the zero chance of it happening in proprietary code.

Challenges of open outsourcing

Many business people who get past all of this cannot (or chose not to) distinguish between the requirements of open source licenses and code in the public domain.

Real examples of open outsourcing

As an example of open outsourcing, there are hundreds of web site developers being hired on Rent-A-Coder using open source Perl scripts to create and configure proprietary web sites for web site owners who are generally non-technical. Estimates from Rent-A-Coder are that approximately 70% of all code buyers on their site are non-technical. It is believed that little of the code currently generated on Rent-A-Coder works its way back into the open source projects the original code came from, despite the fact that much of the code is licensed under the GPL, which usually requires such code modifications be made public.

The sociological impact of open outsourcing

When open source demographics are examined closely as in Steven Weber’s book The Success of Open Source, it is seen that the vast majority of current major contributors to open source projects are from wealthy Western world nations. The United States is the greatest contributor of open source in raw numbers, but the nations making the greatest per-capita contributions today are in Scandinavia. The third world represents hardly a blip. This is consistent with Eric S. Raymond’s observation in Homesteading the Noosphere that the open source movement comes generally today from a gift economy based upon abundance rather than an exchange economy based upon scarcity. Open outsourcing has the potential to balance this out allowing third world programmers to contribute more equally to the body of open source software in a way consistent with the scarcity of [[third world economies.

As steps are taken to insure that work done for pay with open source software results in a greater number of submissions back to the original core code groups developing these projects, the contribution of third world programmers to open source projects should grow. One of the greatest challenges to successful open outsourcing (as a movement) is making sure that programmers in the third world, as well as their Western patrons are aware of their responsibility to resubmit code changes and evolution to the original sources under the most common license, the GNU General Public License GPL. In fact, proper understanding of, and compliance with the plethora of requirements of open source licenses is one of the challenges facing this movement. Programmers participating in the movement are more likely to become familiar with these requirements than the business people hiring them.

Conclusions

In open outsourcing the concept that open source code must be created, specialized, installed, configured, maintained and improved on an exclusively volunteer basis is challenged. Business men and individuals can pay international programming rates for improvements they need to existing open source projects. They can find appropriate open source to meet their needs. They can get assistance setting up the software, and understanding it. Third world programmers are benefited by their exposure to open source projects, and the primarily western maintainers of open source projects may benefit from additional submissions to their programs. Open outsourcing strengthens weaknesses to both the open source approach and the outsourcing approach by supporting the weakness of each system with the strengths of the other. It allows people with no technical skills, but with some money and desire to contribute to both the economic growth of the third world and the body of open source software.

See Also

Freelancing on the Internet

External links

Sites where one might find coders for open outsourcing in Alexa ranking order (the number) as of Jan 2005.

  • www.elance.com (1,083) Provides many kinds of outsourcing including programming, legal work, writing, etc.
  • www.rentacoder.com (2,407) Focused on programming, website development, etc. Free to post a job, pay a percentage when job complete.
  • www.guru.com (2,681) Similar to elance.com in scope
  • www.scriptlance.com (6,792) Primarily Web Programming, PHP, Perl, etc.
  • www.woompa.com (207,019) Smaller site like elance, but costs to post a job.
  • www.OnlineLance.com (Free site) (http://www.OnlineLance.com) (356,965) Similar to Rentacoder in that it is primarily focused on programming and web site development, but much smaller.
  • www.rent-a-pro.com (458,687) Very small site with only a few hundred registered users, compared to nearly 100,000 for rentacoder and elance.
  • www.gigalance.com (unranked by Alexa) Another very small site.
  • www.freelance-projects.com (unknown to Alexa, related to scriptlance.com)

Sources for open source code:

Copyright 2008 WordIQ.com - Privacy Policy  ::  Terms of Use  :: Contact Us  :: About Us
This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "Open Outsourcing".