Open Outsourcing

A White Paper

Introduction

Here at the beginning of 2005, the software industry finds itself at the confluence of several powerful sociological movements. Some are reemergent, some perhaps waning in significance and some novel. All of this is occurring in an environment when a few are questioning the basic foundational questions of the value of software itself. These powerful forces can be used synergistically through an approach I call “open outsourcing”. (So far as I know, this is a neologism as of January 2005, I have not been able to find any other name for it on Google thus far anyway.) 

The Open Source Movement

The open source movement is as old as software itself. Open source development predates the proprietary software movement that really got rolling with the emergence of Microsoft in the late 1970s. Prior to that, precompetitive collaboration was the order of the day because no single company could afford to develop the entirety of the infrastructure necessary to efficiently develop software. The creation of operating systems, compilers and networking infrastructure was beyond any one group. As a result, we have unix, TCP/IP and the Internet. Over the decades since the invention of the computer, it can be argued that the technophile “propeller heads” involved in open source have made many more truly significant advances in computer science than their closed source counterparts.

The proprietary closed software movement represented by Oracle, Microsoft, and the like take these ideas and attempts to solidify them in an effort to enjoy capitalistic success in an environment of scarcity. In the early 1980s, the scarcity of programs that could really benefit business was real. Visicalc enjoyed no competition in the spreadsheet market prior to Lotus 123. WordStar was in much the same position prior to the release of WordPerfect. Nobody considered developing these types of applications as open source projects at the time, although in retrospect one wonders why. Accidental empires were the kings of the earth.

Now that the operating system, networking, word processing and office productivity tools have become commoditized, we have returned to an era of an attitude of abundance rather than scarcity in software. In eras of abundance (or eras of upheaval, depending upon one’s point of view) the technophiles return to their roots as artisans. Programmers in the confines of large corporate software factories feel like lions trapped in small cages. Their natural environment as artisans is to have control over the software development process from recognizing the problem through completing the program. With the division of labor induced by marketing, project management, programmer analyst mentality, programmers feel separated from the customer to the point that true productivity suffers. By and large, in the open source environment, programmers are the customer, so the disconnect is gone.

Overseas Outsourcing

Another newer movement in software has been introduced in a big way in just the past few years. The emergence of international broadband Internet connectivity and the education of large numbers of programmers in third world countries along with inexpensive computer hardware have produced overseas outsourcing of programming. While the modern Luddites and isolationists kick against the pricks, Pandora’s box has been opened, and there is no putting this genie back in the bottle (please pardon my mixed metaphors). The economics of this situation, while frightening to many western programmers, are irreversible and irresistible to the forces of capitalism since they truly benefit all parties involved, even if it is hard to see from an unemployment line. (See my resume please!)

Web sites such as www.rentacoder.com have made overseas outsourcing available to the masses just as EBay has globalized the garage sale. Sites like www.sourceforge.com have organized the forces of precompetitive collaboration and consolidated the efforts of the open source community. What has not happened to a great degree is the organized synergy of these two movements. It is clear that much of the code developed by outsourcing coders is rooted in open source, but evidence thus far indicates that little of this code works its way back into the open source repositories. Third world programmers work in an environment of scarcity, they are trying to feed their families. Their motivations are quite different than those of western programmers who have their own time to invest voluntarily in the open source movement. The outsourcers primarily look at open source as a resource that can be used to get a job done. Their contributions to open source consist primarily of bug reports, rather than major new sections of code or innovative projects. This just reflects the economic realities of the situation.

Shortcomings of Open Source

For the typical less technical consumer of software, the open source approach to software development still has some major drawbacks. Some of these are well introduced elsewhere (http://www.firstmonday.org/issues/issue9_4/levesque/) and I won’t review them in depth here. Suffice it to say that the forces of open source are not typically user centric. Once a program is good enough for it’s creator, generally the rate of improvement slows. This is true of the GUI, documentation, marketing, distribution and most of all support. Much of the success of the proprietary software movement has been in their ability to focus on the user and provide these peripheral benefits. In the early days of the proprietary software movement, this was more obvious than today since they actually answered the phone without immediately asking for a credit card number.

These weaknesses have created many of the current economic justifications for companies to get involved with Open Source. Red Hat, exists primarily to provide support for Linux, and has been relatively successful despite not meeting the original unrealistic expectations of Wall Street. However, the marriage of commerce and open source at this level has yet to be proven on a massive scale. Most open source projects do not enjoy commercial support, even though quite a few do.

Perhaps recent open source developments outside the area of programming have shown a way to providing some of these necessary supporting features that transform programs into products. The emergence of Wiki technology enables motivated users to solve the documentation problem themselves. Self-interested travelers leave trails of breadcrumbs for each other through the wilderness of open source projects in the Wiki. The success of the Wikipedia (www.wikipedia.org) shows that this approach has great potential. In fact, I find Wikipedia to be so useful, that I put my article on Open Outsourcing there the same day I posted this.

Advanced program “skins” may one day provide similar benefit to user interface design, if proper infrastructure is developed and used.

Looking at the big picture, open source does not meet the needs of most small business owners because the overhead involved in learning and learning to trust open source software is just too great. Nevertheless, the emergence of overseas outsourcing has led many small business owners to venture into the arena of software development. Indeed, this is the case for every small business that has a web site of any significance whatsoever. Those who have learned to use overseas outsourcing to develop web sites have benefited greatly from the large body of open source code available for this purpose.

Open outsourcing

With the availability of inexpensive and eager programmers that speak English very well, even the smallest business can now benefit from open source. By using the facilities of websites like RentACoder, they can hire programmers to solve their business problems. By allowing the coders to use open source software as part of the solution, they can greatly reduce the cost of the development of their solutions. By allowing the programmers to keep the solution thus developed in open source such patrons support the open source movement and make a larger body of programs available to the developers due to the licensing terms of the most popular open source license, the GPL.

The terms of the GPL require that any software developed using GPL software also be open source. Thus, if you wish to develop proprietary closed source software, you may not use GPL software. Small business owners trying to get a solution may not be aware of this key subtlety of open source, so it is contingent upon sites like RentACoder to assist code buyers through this unfamiliar territory.

As more and more business people figure this out, the problems documented earlier regarding open source software will become diminished. Some businessperson somewhere will find it in their personal best interest to automate the installation procedure for some open source program. (Projects of this scale often are bid at RentACoder for less than $50!) If that installation program is then made available back to the open source community, the next businessperson to encounter that open source project is now free to make some other improvement that they need.

Open source developers are, by and large, open to accepting contributions to their projects. Businesspeople are, by and large, willing to pay a small price for improvements to usability, documentation and functionality necessary to their business. The key to making open outsourcing successful is making sure that the source developed by outsourcing programmers makes its way back to the core development team for reintegration into the original project. Another key is for small business people to become aware of the benefits of this approach.

If your small business is creating and distributing proprietary software, this approach may not work for your main product line. For all other small businesses with business processes to automate, open outsourcing opens up an entirely new world of possibilities for greater efficiency.

With supporting infrastructure open to the world, small business owners can benefit from bugs being found and repaired in their mission critical applications, for free. This is a major benefit to open outsourcing that many small business owners just wouldn’t be aware of.

Having open source also can increase the security of the small business owner, as outsourcing programmers cannot hide potentially dangerous back doors in open source.

Required Infrastructure

The small business owner needs support when venturing into the world of open outsourcing. They first need to be educated about the possibilities this approach presents. They need to learn about the safety that is provided through the escrow services of sites like RentACoder. They need guidance through the often confusing world of open source licensing. Finally, they need to become aware of the benefits of open outsourcing.

Outsourcing programmers and documentation specialists need to be educated about the importance of submitting their improvements to open source back to the core development group for that project. If web sites that support outsourcing more proactively supported open outsourcing (by, for example, making the resulting code available publicly) the educational requirement to outsourcing programmers would be significantly lessened.

Aside from the international programmers, some domestic business people would probably be more comfortable working with consultants from the United States that had relationships with foreign programmers rather than working with them directly. Habit3 is one of the few companies available to assist business people in this fashion, please feel free to contact us if you need help getting going.

Conclusions

The sociological movements of open source development and overseas outsourcing are not competitive as some have stated, but can actually be synergistic. With the development of supporting infrastructure, the small business owner can greatly improve their business processes with safety and efficiency using this development model. At the same time business owners act in self serving ways, the overall benefit to the open source community at large is served greatly. The confluence of open source and overseas outsourcing as open outsourcing is a model that will greatly improve the health of software development in general. And just what is wrong with making the world a better place after all?

Please see our article on Wikipedia at http://en.wikipedia.org/wiki/Open_Outsourcing (Note that since it is a Wiki, it may change dramatically from what we first posted, but that's a good thing.)