Click here to Skip to main content
13,006,221 members (66,352 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


53 bookmarked
Posted 29 Sep 2003

Outsourcing and Offshore Coders: Good or Evil?

, 26 Oct 2003
Rate this:
Please Sign up or sign in to vote.
Considers the oft-maligned practice of outsourcing to offshore coders, from the domestic programmer perspective (WARNING: potentially inflamatory).


Though arguably somewhat off-topic for CodeProject, this article examines the increasingly heated debate over technology outsourcing—in particular, offshore outsourcing of software development jobs. While this article is sure to provoke a fusillade of flames and impassioned rhetoric, the offshore outsourcing issue must be rationally evaluated by all professional software developers, as it has career implications for almost all of us.

I am merely a (very) amateur economist and experienced programmer, with free-market tendencies and a fierce libertarian streak. However weak my economics and policy background may be, I feel a pragmatic voice with in-the-trenches knowledge of the software development profession is somewhat lacking thus far in the offshore coding debate. Herein lies my presumptuous attempt to catalyze that voice.


Though it is not a new concept, the offshore outsourcing of IT work, in particular software development, has received increased attention of late from all corners, including IT industry pundits, analyst firms such as Gartner, corporations in established countries considering or engaging in outsourcing and offshore coding, many of the companies that provide such outsourcing services, as well as rank-and-file IT professionals in established countries, fearing for their jobs as they are "replaced" by cheaper labor.

Typically, the argument from the corporate perspective is thus: Offshore programmers in emerging economies like India, Southeast Asia, China, etc., work for substantially less than their US and European counterparts, while producing code of equal or greater quality. Therefore, in an economic climate that demands cost cutting wherever possible, it makes complete sense to move as much work as possible offshore.

Of course, those companies that provide offshore outsourcing services, such as Wipro, do nothing to discourage their prospective clients from taking this view. Indeed, no doubt many readers have heard management discussing this very option, as though it presents an ingenious way to get around the unpleasantly long six-month development schedule they have just been presented.

On the other side of the table, rank-and-file programmers often (but not always) take a somewhat more pessimistic viewpoint: Cheap laborers from undeveloped countries are stealing domestic programming jobs and gutting the domestic job market, much as they did to the manufacturing sector in the last century.

Given this unsettling prospect, a number of professionals adopt a protectionist stance, choosing to view their colleagues in Asia and India as opportunistic thieves and charlatans, tricking gullible management into the Devil’s Bargain that is offshore coding.

The canonical example: Manufacturing

Those who fear offshore coding, often cite the experiences of the manufacturing sector during the latter half of the 20th century. Since this particular discussion is still the subject of heated debate, any "objective" analysis which provides any insight is necessarily debatable, however the comparison is so instructive that it’s worth stepping on a few toes to examine the subject.

Basically, Japan and then China and other emerging economies began to compete with American manufacturers in the latter 20th century, producing goods in greater quantities, at substantially lower cost. These goods included not only Japanese automobiles and consumer electronics, but clothing, toys, consumer products, etc.

The cost reductions realized by the foreign manufacturers arose from two advantages: increased efficiency, and cheaper labor. In some cases, unskilled factory workers earned orders of magnitude less than their American counterparts, while working longer hours in largely unregulated working conditions.

While the human rights issue of the treatment of workers is relevant here, the point is this: foreign manufacturers could produce the goods Americans and Europeans needed, at a substantially lower cost. As a result, competitive pressures depressed the American and European manufacturing sectors, with many fearing that the developed world would become utterly dependent upon Japan and the emerging economies of China and Southeast Asia for all its worldly goods.

Of course, in the end, this did not happen. China is a large and growing manufacturing powerhouse, and Japan is the world’s 2nd largest economy, yet the US is still an economic superpower, with a substantial manufacturing industry of its own, and Japan is only now emerging from 10 years of deflation and stagnation. Thus, we must conclude that those who dismiss offshore coding as a fad, and those who herald it as the end of the world, are equally incorrect.

While comparing the offshore coding trend to the history of offshore manufacturing in this way is instructive, we will discover that significant differences exist, which prevent a simplistic comparison between the two. Nonetheless, the insight gained from the offshore manufacturing trend applies just as well to the offshore coding trend emerging now.

Economic perspective

Though much of the negative press associated with offshore coding focuses on the loss of domestic jobs, the objective economic perspective actually yields two equally important questions:

First, what is the economic impact of replacing domestic programmers with their offshore counterparts?

Second, what is the net gain (or loss) realized by the domestic corporations engaging in offshore coding?

The @$#!%&* steal our jobs…

Adam Smith, the father of modern economics, wrote in his seminal work "The Wealth of Nations" that (to paraphrase) it is self-evident that it is more efficient and therefore economically better to buy that which one cannot make cheaper oneself. This principle is likely obvious to almost everyone.

For example, it is obviously more efficient for most people to buy flour than to grow, cultivate, and grind wheat to produce their own. Similarly, it is far more economical to buy a color TV from Best Buy or JC Penny than to attempt to construct one yourself. In both of these cases, one could probably produce the good oneself, but it would take time and money that could be more efficiently spent elsewhere, in ways that more directly benefit the economy and the individual.

According to Smith, this principle extends from individuals and households to entire countries. That is, if US consumers want cellular phones, and India can produce the same cellular phone for US$ 10 that US companies can produce for US$ 100, it is generally better for the economies of both India and the US if the US consumers purchase the Indian cellular phone.

The justifications of this assertion are ample:

The benefits to the Indian economy are somewhat obvious, as it benefits from US economic prosperity as US consumers buy more phones. In particular, the example above benefits the Indian people, as it grows the Indian economy, creating jobs, increasing demand (and thus, pay) for skilled workers, which in turn will seek to enjoy their new middle-class lifestyle by spending more in the local economy, paying more taxes, etc.

Further, the US economy benefits in this example, in a number of ways.

First, more US consumers will be able to afford the cellular phone, and therefore pay the sales and other consumption taxes on the phone. In this case, the old example of selling 1000 of something for $1 being better than selling 100 of something for $5 is very applicable, particular as it relates to the tax revenue which of course stays within the US and local economies.

Second, it forces the US cellular phone manufacturers to increase their efficiency, or close down. A more efficient manufacturer will consume fewer economic resources for equivalent output, (re)gain competitive advantage, reduce costs, and may even increase profitability. The alternative, though somewhat cold-hearted, is also positive, as it frees the resources (including workers) consumed by the inefficient and uncompetitive US cellular phone manufacturer, for use by more efficient and economically beneficial endeavors.

This contrived example applies equally well to onshore vs. offshore coding. To contrive another example, if a software company, Evil Empire Inc., can produce its software, World Dominationware, at a cost of US$ 1 million using domestic programmers, or US$ 100,000 using offshore programmers producing software of equal quality, Evil Empire Inc.’s executives have little economic reason to choose the domestic programmers.

As a result of this, Evil Empire can sell its software at a lower cost and higher profit, yielding more tax revenue, increased wealth for its shareholders, faster and more significant growth, and thus increased payrolls (though likely not including many programmers).

Thus, the assertion of this section is that Adam Smith is correct, and that his theory applies as much to wheat flour as it does to programming. While the local consequences of offshore coding may be negative (job loss and the ensuing unemployment), these can be overcome (see below), and the net result at the macro level is generally positive for both economies.

Note, however, that there are exceptions. If a country were populated entirely by programmers who had no other skills, and another country began taking their jobs by offering a cheaper product of equal quality, the country of programmers would likely suffer economically. However, this can hardly be seen as an injustice: if one cannot provide a competitive service (that is, if other countries can provide programming services for less than our hypothetical nation of programmers), one should not be surprised when one’s customers go elsewhere.

Further, at the micro level, those employees who lose their jobs are obviously not benefiting, at least initially. Though it may seem cold-hearted, the same maxim in the previous paragraph applies to individuals as well: if one demands more for the same service than someone else, it should come as no surprise when the cheaper price prevails.

In much the same way, imagine a junior programmer applying for an entry-level programming position, and demanding US$ 120,000/year. Is it a profound injustice when the employer selects a different, equally qualified candidate asking for US$ 40,000/year?

This issue of micro-level consequences and the associated solutions will be examined further in the following sections.

Offshore coding and the blessed bottom line

The previous section discussed the economic impacts of offshore coding on the host and client countries and their citizens, however the discussion was based on the assumption that domestic and offshore programmers produced identical (or at least equivalent) products, differing only in cost.

As most programmers are likely aware, this may apply to the manufacture of children’s toys and toasters, but software development is much more complex, therefore assuming equivalence of output is a convenient theoretical abstraction that has very little relevance in practice. In this section, I present a more pragmatic discussion of the costs and benefits of offshore coding, grounded at least tenuously in reality.

Corporations, executives, and other scourges

As much as we may distrust and despise money-hungry, soulless mega-corporations and the money-hungry, soulless executives who run them, we must acknowledge one thing: corporations (and their leaders) have a moral and legal obligation to make money for their shareholders. While this does not condone illegal activities ala Enron, it does condone any legal activity that stands to benefit the corporation and thus its shareholders.

Therefore, before this discussion really begins, it must be acknowledged that corporations do not have an inherent duty to their employees to employ them, to refrain from replacing them with machines or cheaper employees, or to subsidize inefficient workers. While many will argue that corporations have a social obligation to the communities in which they operate (and to an extent they do), this does not forbid the lawful use of more efficient resources to perform the same tasks.

That said, an exception to this rule arises when one considers unions. However, a corporation’s obligations to its unions are not inherent, but rather contractual. Similarly, if I could convince my employer to sign a document obligating her to employ me for the duration of my life, and barring her from ever questioning my efficiency or value, she would then have an obligation to do so. Of course, more likely she will fire me and find an employee who is not so unreasonable, which is also her right.

Having established that corporations serve their shareholders and not their employees, let us now examine the practical costs and benefits of outsourcing.

Public opinion

In a free-market economy, the market decides who wins and who loses. While factors like quality, cost, and availability influence market success, so do less tangible factors like public perception and reputation.

While offshore coding may make great financial sense, it may cost more in public opinion than it saves in dollars. In general, the populous does not like to lose jobs to foreigners, particularly when the foreigners are paid substantially less and thus undercut domestic labor substantially. This may result in a serious back-lash in the public’s opinion of the domestic corporation doing the outsourcing.

As an example, consider the (mild) outcry over the state of New Jersey’s decision to outsource welfare processing to a call center in India. From a fiscal perspective, this made complete sense, particularly for a cash-strapped state suffering from serious budget deficits. Unfortunately, if the public resents the decision enough to create a significant outcry, they may also vote (with their dollars or their votes) to punish the perpetrators.

Thus, a corporation considering offshore coding must consider the sensitivities of its customers, the public at large, and the domestic governments who are sometimes hostile to corporate interests. This may be a significant concern for corporations that deal directly and visibly with the public, and virtually no concern for corporations with a very low profile.

Employee morale

Closely related to the issue of public opinion is that of employee morale. While we’ve established that corporations do not owe continued employment to their employees, corporations do have a selfish interest in keeping employee morale high. Not only does high morale improve productivity, it reduces turnover, and likely increases access to qualified workers interested in working in a positive environment.

Thus, when a corporation announces it will replace 10% of its domestic workforce with offshore labor at 1/4th the cost, morale likely takes a hit as employees realize that the concept of a corporate/employee relationship as being familial or custodial is largely fictional, and a frequent casualty of budget cuts and financial pressures. As a result, their loyalty to the corporation may wane, increasing turnover and decreasing productivity. Thus, the cost savings realized by moving the 10% of the workforce offshore, may be countered by a cost increase from the other 90%, as they reduce output and increase turnover, and a loss in competitive advantage as highly qualified workers go elsewhere for their interviews.

Programmers as cogs

During the industrial revolution, as manufacturing grew into an economic powerhouse of an industry driven by mechanized engines of automation, skilled tradesman became increasingly irrelevant. Instead, cheap and easily exploited immigrants and children could be put to work en masse, with minimal skills or training, and replaced just as easily.

Of course, this enabled the economic and social developments which made the world what it is today, but it also enabled business leaders to view their employees as cogs, which are a minor hassle to replace, but nonetheless easily replaceable by any other cog.

Unfortunately, this mindset seems encoded into the genetic material of managers and executives everywhere. As programmers know, the reality is not so simple. Even assuming that programming is a single discipline, without specializations in networking or GUI or databases, the cold fact of the matter is that the best programmers are in some cases hundreds of times more productive than the worst programmers, and obviously the best programmers are much rarer than the worst.

The result of this reality is that comparing two programmers on the basis of their cost is utterly meaningless. What good is a programmer at 1/10th the price, with 1/100th the productivity?

That said, it is unfair to say that all offshore coders are less capable than all domestic coders; the point is, a programmer’s capabilities--as well as her cost--must be considered when determining value. This is a very difficult problem when hiring domestic programmers, and becomes virtually intractable with offshore coders.

Without some reliable metric (lines of code per dollar per day doesn’t cut it), the ROI of offshore coding cannot be reliably established. Relying on cost alone when making the decision is dangerously close to abdication of fiduciary responsibility, which is not a phrase executives like to hear.

Projects as blueprints

The previous section’s discussion of the origins of the programmers-as-cogs mentality is equally applicable to the related fiction, projects-as-blueprints.

In an industrial setting, a project is typically the design and production of a product; some tangible, physical thing coming off the assembly line. Once a skilled engineer designs the product and produces blueprints or schematics, the unskilled cogs can set to work and produce the product.

Obviously, software is not so simple. Bad programmers can build worthless software from masterful designs, and good programmers can (sometimes) rescue abysmal designs through masterful programming. In either case, the skilled labor is distributed evenly across the product lifecycle, and is not concentrated on the design phase as is the case with manufactured goods. Further, the design and production teams are not decoupled; each must interact constantly with the other, to ensure the product being built and the product being designed are indeed the same product, and the best product it can be (and even that the product is what the customer actually wants).

As a result of this tightly linked lifecycle, it is difficult to find one point at which the skilled laborers are done, and the offshore cogs can take over and begin production. Therefore, the offshore coders must actually be an integral part of the product lifecycle, as skilled and competent as any other participant.

Having established this fact leads us to the next point:


Assume for this discussion that all offshore coders are fluent speakers of the domestic language. Not only is this often the case, but a language barrier is the least of the communication problems associated with offshore outsourcing.

Given the realization from the previous section that offshore coders must be as much involved with a product as the designers, stakeholders, end users, and testers, it becomes clear that offshore coding does not mean requirements can be gathered, e-mailed across the globe, and expected to come back as a polished product.

Instead, the same bothersome collaboration and feedback loops used by domestic development teams must extend to the offshore coders. This is complicated by the distance (as great as telecommuting is, when it comes to meeting to discuss development projects, there’s no substitute for being there), time difference, a lack of understanding of domain-specific factors, and the usual problems of wasteful, unproductive meetings, conflicting goals, poorly-defined objectives and stakeholders, shifting requirements, etc.

These problems are significantly amplified when agile methods such as eXtreme Programming are employed to develop in so-called "real time". One of XP’s principles is that the design forms from the code, and that frequent deliverables yield iterative user feedback which leads to an ad-hoc discovery of requirements, and management of requirements changes. Therefore, "real time" communication between all participants in the development process is critical; when communication breaks down, risk increases and the probability of success plummets.

Thus, those considering offshore coding must realize the following caveats with regard to communications:

First, the only cost savings will be the cost of the programmers, testers, etc. that are moved offshore. Project managers, internal QA staff, support and maintenance personnel, and project stakeholders stay in-country, and stay involved.

Second, collaborative barriers actually increase management overhead, likely adding to the time required by stakeholders, end users, and often highly-paid internal architects and designers. This must be subtracted from the cost savings.

Third, offshore coding does not eliminate the most intractable elements of software development, including the project management principles that are routinely ignored in domestic development projects. Indeed, when it comes to shifting requirements, the collaborative barriers and de-coupling of developers from the rest of the lifecycle associated with offshore coding actually increases cost and hassle.

Support and maintenance

If programmers did their jobs perfectly, users’ requirements were immutable, and competitive pressures didn’t exist, changes to software would be unnecessary. Sadly, programmers fail, users are fickle, and competition is fierce, therefore software must not only be maintainable, but downright agile.

In addition to the development-time agility problems described above, support, maintenance, and agility after initial development is concluded, are equally important to the long term success (and therefore justification) of any development project. When software is developed in-house by domestic programmers, even if little documentation is developed, it is reasonable to expect the original developers or their successors will be available to support and maintain the product, and modify it in more significant ways as business requirements change.

With outsourced development (offshore or domestic), however, the client is much more insulated from the original developers. In all likelihood, ongoing maintenance and support will require an ongoing contract with the offshore coders, with enhancements likely requiring additional funds. Even in the face of such contracts, the original developers may or may not be available, and if not, their replacements must consume valuable (and expensive) time ramping up to make the changes. Further, the attendant communication problems described above are associated with this effort as well, particularly with major enhancement efforts.


For the reasons described in the previous section, it is likely that once the offshore coding decision is made, it "stays made", as moving back in house from offshore will be more expensive than staying in house in the first place.

Due to the structure of the outsourced development effort, the client’s choices end up quite limited. Since the client is decoupled from the individual developers on the project, the client’s view of the offshore coders is an aggregate one; thus, they are either all competent and capable, or not. Thus, a client’s options are to stay with the offshore coding company, or not. By contrast, an internal development team is slightly more transparent, with incompetent individuals more likely to be discovered and replaced, without replacing the entire team and starting over.

Thus, corporations considering outsourcing must realize that if things go sour or don’t turn out, it will be difficult to back out.


When an application is built in-house, it makes sense to perform a code audit for a number of practical reasons, of which one is to ensure the system is secure against accidental security bugs and deliberate back-doors. Unfortunately, this valuable feedback/QA technique is often skipped, for various and irrelevant reasons.

When offshore coders have been employed, code audits become not only a good idea, but mandatory. While a domestic employee might undergo a background check, or face criminal penalties for deliberate subversion of software, offshore coders are usually not vetted for background anomalies, and certainly are not subject to domestic civil and criminal law. Further, the fact that offshore coders work for less money suggests that unscrupulous offshore coders can be compromised for less money.

As a result, a responsible project manager should not accept code from an offshore firm without a comprehensive code audit. Of course, the code audit must be performed by a competent programmer specializing in security audits, which adds substantial cost, and substantial time to the development lifecycle. By contrast, a domestic development team could be used to perform its own code audit, which, combined with background checks and the pain of civil and criminal penalties, mitigates security risks for far less time and money.

What’s left of the bottom line

If, upon consideration of all of the above issues, quantitatively as well as qualitatively, the bottom line of the offshore coding spreadsheet is still black, it likely makes good sense to engage offshore coders in some capacity.

The key point to take from this section is this: the question to ask is not "is offshore coding wrong or bad?", but rather, "will offshore coding make my shareholders richer?". However, from the length of the previous section, and the extent of the caveats, it should be clear that performing a rigorous analysis is complex and time-consuming, and the answer may very well be "stay in house".

What not to do about it

In this section, several proposals are evaluated which have been floated by those who are in some way against offshore coding either as a trend or a practice. For each proposal, one or more reasons are provided explaining why it is a bad idea and should be ignored.

Unionize domestic programmers

For a number of years, some domestic programmers have been calling for unionization, or at least the formation of some sort of trade group providing advocacy on behalf of domestic programmers. Ostensibly, the objective of such groups would be to protect domestic programmers from exploitative corporations, corrupt governments, and job-stealing foreign programmers.

The fundamental flaw with this reasoning is the implied belief that domestic programmers need protection. In effect, those who advocate unionization or trade group organizations are accepting the "programmers as cogs" principle, and then asserting that domestic cogs are special and should receive contractually obligated rights and privileges.

In reality, a programmer’s union is absurd (and would no doubt fail when a majority of programmers refuse to join). A trade group makes sense (indeed the ACM and the IEEE could be counted as trade groups), but rather than advocating protectionist policies, a useful trade group ought to focus on helping its members differentiate themselves in a free market with training, certifications, and other (somewhat) useful benefits. Both the IEEE and ACM provide these benefits in some form.

Adopt protectionist policies

Failing a domestic programmer’s union, the disenchanted programmer labor movement often calls for various forms of protectionist policies. From the almost practical (though utterly indefensible) tax penalties for use of offshore coders, to the utterly absurd classification of offshore coding or the code it produces as an import subject to tariffs and taxes, the idea is to distort the free market calculus that makes offshore coding cost effective, until offshore coding becomes utterly unjustifiable from a financial perspective.

Apart from the argument above, which establishes the economic benefits of any net gain in efficiency--offshore coding included--a more fundamental argument against this policy exists: distortion of market forces towards a particular aim almost inevitably leads to a net economic loss. A recent example here in the US is President Bush’s protectionist steel tariffs, which did little to protect domestic steel producers from foreign competition, and seriously injured those domestic manufacturers who depend upon steel to produce their products, which became absurdly expensive in the face of the rapacious protectionist tariffs.

Effectively, advocacy of protectionist policies is attempting to cure the symptom, not the affliction. If profit-motivated corporations are moving programmer jobs offshore, and domestic programmers don’t like it, they are better served focusing on competing fairly with their offshore counterparts (perhaps not on cost, but on overall value, which as stated above is what really matters), and articulating their advantages over offshore coders.

What to do about it

While the previous section dealt with bad solutions to the offshore coding "problem", this section outlines some strategies that make sense, are practical, and don’t involve punitive market distortion.


The most fundamental strategy in dealing with the offshore coding trend is to adopt a productive attitude. Those who feel as though corporations moving jobs offshore are somehow wronging their employees, or that governments allowing offshore coding to continue are betraying their obligations to their citizens, utterly miss the point.

One must realize that as an actor in a free market economy, market forces determine one’s success or failure as surely as they do a large corporation. That is, each individual must realize that she is in competition with other individuals pursuing the same opportunity, and upon that realization, do what is necessary to distinguish herself from the competition.

Many programmers in particular find this distasteful; indeed, they became programmers because the business stuff was of no interest to them. Unfortunately, there is no choice; actors in a free market must take responsibility for their own success or failure, or face financial ruin. This point bears repeating: Fundamentally, each individual must take personal responsibility for his or her own success, and do what is necessary to ensure it.


In the Economic Perspective section, a discussion of the pros and cons of offshore coding is outlined. The industrious reader will likely see numerous opportunities to differentiate himself from offshore coders, in such a way as can be clearly articulated to management. This type of thinking is mandatory in a free market system; one must look for opportunities, and seize them when they arise.

Of course, some executives and managers may be unconvinced by a particular value proposition. They may be reading breathless articles in trendy business magazines about how their colleagues are saving millions by outsourcing everything except janitorial services to India. However, if they fail to consider all of the caveats above, and fail to recognize a superior value proposition, they likely will be rewarded accordingly. In particular, their competitors may not be so blinded, and may represent another opportunity for the industrious and differentiated programmer.


Arguably, education is a form of differentiation, but I feel it nonetheless warrants explicit mention.

Education can take many forms: college, certification classes, or self-edification projects undertaken to learn a new technology or product. In any case, the underlying theme is the constant learning and development of new knowledge and skills.

The industrious engineer will realize that education must be on-going, regardless of economic climate. This mindset of individual responsibility is extremely important for those who wish to run ahead of the pack. By constantly growing and developing, your value is increased, as are your horizons broadened, and perspectives expanded. When considering education, you needn't limit yourself to technology, but rather you should focus on that which is interesting or exciting, be it a book on C#, a security certification, or a master's degree in economics.

Advocate pro-business policies

A number of factors determine an employee’s cost to an employer, only one of which is salary. Factors like social security, unemployment and worker’s compensation insurance, various OSHA and Department of Labor requirements, and state and local regulations all burden US employers. Other developed countries impose similar burdens. Cost of benefits, like soaring health insurance costs, only add to the load.

Further, while developed countries for the most part have clearly defined commercial laws, the patent, trademark, and copyright laws in the US and much of Europe are largely broken from a technology perspective, leading to unnecessary and expensive use of patent attorneys in defensive patenting strategies, and attacking and defending absurd patents as a means of competitive pressure.

Finally, as much as anti-globalization and socialist activists claim the industrialized world governments are bought and paid for by sinister mega-corporations, the reality is that government has always had a love-hate relationship with business. From the draconian and incoherent US Securities and Exchange Commission, to the rapacious taxes foisted on domestic corporations to punish them for their success, businesses are often treated as second-class citizens by national and local governments that fail to recognize the source of their own economic prosperity.

All of these factors together must be considered when a corporation is evaluating its costs of doing business in a particular country. If citizens of the US or Europe are displeased that this business calculus points to India as a better host, a wise recourse would be to focus on making the US and Europe more appealing, rather than flogging the evil corporations until they once again prefer their domestic tormentors to India or China.

Roll your own opportunity

A fellow free-marketeer, John Cardinal, reminded me of what is perhaps the most compelling "niche" of all: founding and developing your own company. I have done this with Cryptos Mobile Systems, my current company, as have countless other programmers and engineers before me.

The advantages of this approach are several, including:

  • Complete control over business and technology; the only stupid fads you suffer are those you embrace yourself
  • Potential for substantial wealth; as a founder, you will typically hold a substantial equity stake, and stand to benefit financially if your company is successful
  • Relative autonomy in terms of work style, hours, etc., although a startup typically requires absurd amounts of work
  • The profound personal satisfaction of controlling one's own destiny, for better or for worse
  • Appealing tax perks, like righting off equipment, education, business travel, etc.

Of course, this is also perhaps the most dangerous of all solutions, as job security is virtually non-existent, and you will often not know where the next month's mortgage payment will come from (if at all). Start-ups also require an absurd amount of work, coupled with constant stress, and disturbing uncertainties. To be sure, many readers will not have this option at all, for reasons of financial position, familial obligations, etc. For those who can, however, starting one's own company must be considered.

Another option for those of you readers who have been recently laid off, and have a few months' savings before they have to work again, might be to form your own company, to pursue an idea for a product or technology, or simply to learn about some new technologies or products. With the help of an accountant, buy whatever technology items you need through your business, including education or certification if necessary. While shopping around for your next job, continue to work on your company's project, learning and growing all the while. You might also consider drumming up short-term contract work, run through your company.

Not only does this approach allow you the freedom to develop new skills while between jobs, but it exposes you to the adventurous life of an entrepreneur, without all the attendant risks. Further, should your quest for work drag on, your resume will nonetheless quite honestly reflect contiguous employment, under the banner of your company. This is also a great way to develop professional experience in a technology or product which you haven't otherwise had the opportunity to apply.

Regardless of the approach you take, you are well-advised to at least consider the entrepreneurial route. It is a road fraught with peril, but the potential rewards (financial and otherwise) are substantial.

Find the niches

Taking into consideration the offshore coding caveats above, the industrious reader will realize that offshore coding is completely impractical for a number of scenarios, a few of which are examined below. By focusing on these niche areas, a domestic programmer may find areas where offshore coding does not offer a compelling value proposition.

Small, lightweight projects

The more structured and process-heavy a project, the easier it is to treat individual actors as cogs. It should come as no surprise, then, that offshore coding firms are often very adept at software development process, such as CMM. As any veteran of a top-heavy process knows, heavy process is completely inappropriate for small development teams, as the overhead is not commensurate with any positive gains.

Indeed, small teams often benefit from more ad-hoc, "real time" processes and quasi-processes such as XP and other agile methods. Being as they are more organic and fluid, attempting to use these processes while outsourcing development to offshore coders is very likely to end in an amusing yet spectacular failure.

Therefore, domestic programmers may focus more on small development teams, which are often encountered within startups, or small business units within larger organizations.


For many of the same reasons specified in the previous section, early-stage startups are usually not good candidates for offshore coding. Seldom does one read about a 12-man startup announcing it has outsourced 50% of its three-person development staff to Bangalore. Remember, offshore coding becomes appealing as one reaches a certain economy of scale, which is well above three programmers. By focusing one’s energies on startup opportunities, offshore coding is less likely to pose a threat to one’s ambitions.

Security-sensitive projects

For US programmers, the US government has an extensive need for programmers with US citizenship (visas, greencards, etc. are not enough) and security clearances. Other developed countries have similar programs. While obtaining a clearance is a difficult and time-consuming process, the result is strong job security, not only as a government contractor, but also later in the private sector. As security becomes more of an issue, the dubious security of offshore coding will make trustworthy domestic programmers all the more valuable.


While some programmers will consider this option schismatic, the sad reality is that programmers will always be subordinate to management, even if those programmers are offshore. Indeed, offshore coding requires more in-house management, not less.

Focusing on developing one’s management credentials, as well as maintaining one’s tech skills, will add value in any market. Focusing on management of a distributed workforce will render one even more qualified to manage offshore coders.

Business analysis

Due to the gap between offshore coders with general programming knowledge, and the displaced in-house programmers with extensive domain-specific knowledge, so-called business analysts are required for any successful offshore coding engagement. Along with architects, business analysts help define the project, which is then executed by the offshore coders (at least in theory). While outsourcing programmers may make sense, outsourcing strategy almost never does, therefore internal employees with a solid grasp of the domestic corporation’s business, goals, problems, and strategies and possessing the technical skills required to bridge the gap with offshore coders, are likely to remain extremely valuable.

Do nothing

If the prospect of "becoming a business guy" just so one can remain employed is distasteful, a wait-and-see approach may not necessarily be cataclysmic.

While Indians may work for 1/4th what Americans or Europeans make, they make about the same in terms of quality of life and percentage of average per-capita income. That is, Indian programmers making US$ 20,000/year aren’t struggling in poverty as one making US$ 20,000 in America would be; rather, US$ 20,000 buys a great deal more in India, primarily because India is an emerging economy.

However, as the doomsayer’s predictions of millions of IT jobs moving overseas come true, the Indian economy will grow and strengthen, such that US$ 20,000/year won’t be enough anymore. Indeed, already India is facing a shortage of programmers, and China’s burgeoning middle class is becoming increasingly restive and ambitious.

Assuming the US and European economies stagnate, as India and China grow and prosper, the business case for offshore coding will weaken. How long this will take, or how much India or China have to grow before this happens, is not clear. However, given all of the caveats of offshore outsourcing, the net savings is not likely to be close to 75%, which means that as the cost of Indian programmers increases from 1/4th a US programmer to 1/2 or 3/4ths a US programmer, the net cost of offshore outsourcing is likely to become sufficiently high as to negate any potential savings in labor costs.

Of course, if the US and European economies do not stagnate, one ought not worry, as an industrious individual should be able to find rewarding work in a growing economy, regardless of offshore outsourcing pressures.


This article has made some potentially inflammatory but ultimately defensible assertions.

First, outsourcing work to offshore workers who are cheaper and equally capable as domestic workers makes good financial sense, and is not inherently immoral.

Second, corporations owe no duty of loyalty or employment to their employees, and can (indeed, should) seek the most efficient and effective way to perform a given task, regardless of physical location.

Third, offshore outsourcing of programming jobs is potentially perilous domestic companies' bottom lines, and must be considered in terms of total qualitative and quantitative cost, not simply the US$ 20,000/year the Indian programmer makes.

Fourth, an industrious domestic programmer concerned about competition from offshore coders must resist the temptation to sulk and blame others, and should instead endeavor to differentiate himself such that offshore coders cannot compete with him.

Hopefully, the reader is at least enraged, or at best inspired to action, as a result of reading this article. Those who wish to deny the realities of free market economics may return their heads to the sand, but they do so at their own peril.

Revision history

  • September 30, 2003 - Initial publication
  • October 26, 2003 - Updated to reflect more accurate Indian salary numbers (thanks Nishant S.), and to discuss the advantages and disadvantages of forming one's own company to avoid the outsourcing axe (thanks John Cardinal)


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Adam Nelson
Web Developer
United States United States
My name is Adam Nelson. I've been a professional programmer since 1996, working on everything from database development, early first-generation web applications, modern n-tier distributed apps, high-performance wireless security tools, to my last job as a Senior Consultant at BearingPoint posted in Baghdad, Iraq training Iraqi developers in the wonders of C# and ASP.NET. I am currently an Engineering Director at Dell.

I have a wide range of skills and interests, including cryptography, image processing, computational linguistics, military history, 3D graphics, database optimization, and mathematics, to name a few.

You may also be interested in...

Comments and Discussions

GeneralExcellent article, but... Pin
Thomas Pfleger4-Nov-03 23:53
memberThomas Pfleger4-Nov-03 23:53 
GeneralRe: Excellent article, but... Pin
Adam Nelson5-Nov-03 3:48
memberAdam Nelson5-Nov-03 3:48 
GeneralRe: Excellent article, but... Pin
Thomas Pfleger5-Nov-03 4:49
memberThomas Pfleger5-Nov-03 4:49 
GeneralRe: Excellent article, but... Pin
Adam Nelson5-Nov-03 4:59
memberAdam Nelson5-Nov-03 4:59 
GeneralAdam Smith was a dreamer Pin
George_Seremetidis3-Nov-03 9:56
memberGeorge_Seremetidis3-Nov-03 9:56 
GeneralRe: Adam Smith was a dreamer Pin
Adam Nelson3-Nov-03 10:25
memberAdam Nelson3-Nov-03 10:25 
GeneralRe: Adam Smith was a dreamer Pin
Mr. XAs a "small-l" libertarian CS and Econ. geek 17-Nov-03 23:19
sussMr. XAs a "small-l" libertarian CS and Econ. geek 17-Nov-03 23:19 
GeneralRe: Adam Smith was a dreamer Pin
Adam Nelson23-Nov-03 17:44
memberAdam Nelson23-Nov-03 17:44 
Mr. XAs... :
Thanks to George Seremetidis, who pointed out your post to me. Somehow, the notification of your message elluded my attention.

Thanks for your remarks. It's always a pleasure to be criticised by a libertarian Wink | ;-)

I wouldn't call them "sinister" (except for corporate-representation groups like RIAA and MPAA), but -- what do you call special-interest lobbying, whether it be by Microsoft, Sun, the RIAA, MPAA, or other such corporate entities?

Did you pay to have the state-level "super-DMCA" laws enacted? Or, for that matter, the original DMCA? I sure didn't, but the MPAA did.

The phrase "industrialized world governments are bought and paid for by sinister mega-corporations" was an intentional exaggeration on my part; I use this well-worn rhetorical technique to illustrate--fairly or otherwise--the absurdity of an opposing viewpoint. Truth be told, mega-corporations aren't that sinister necessarily, and as you mention, special interest lobbying could be considered at least as sinister.

Hardly the work of wild-eyed socialists (for once), except for those in the MPAA, etc. seeking to protect their outdated business models via government methods...

I might add, other industries heavily "lobby" (i.e. pay off) our politicians too, not the least of which being the oil and automotive industries... That is the problem with special interests. This seems like a nice, brief history:

At the risk of digressing, what remedy do you propose to this sinister evil? As a libertarian, presumably you find the solution advocated by McGain, Feingold, et. al. to be untenable at best. I find it instructive that "special interests" such as George Soros (admittedly not the same thing as a self-interested industrial lobby) publicly exert their financial influence in policy matters, without noting the hypocracy in doing so.

At any rate, moving on...

Not quite:

Notice in 2000, the effective rate for the middle-20%: 16.7%. For the top 1% (i.e., CEOs)? 33.2%. You can tack on corporate taxes if you wish to inflate your own beliefs, but those aren't individual taxes, thus, they're irrelevant where personal income tax is concerned

My original claim was that the richest taxpayers pay substantially more tax. Your figures seem to support my claim; the wealthiest 1% of taxpayers are taxed at double the rate of the middle 20%. The wealthiest 1% pay 25% of all taxes, compared to 9.8% by the middle 20%. Thus, $1 earned by a top 1% earner would net approximately $0.33 in taxes, while that same $1 paid to a middle 20% earner sends only $0.16 to the government coffers.

Perhaps we disagree on what constitutes a substantial difference in tax rates. To my mind (and in my ignorance, I presume many libertarian minds as well), a tax system that punishes wealth is arguably unjust.

While you're at it, go take a long look at the CEO payrate increase in the last 40 or so years. No modern-liberal (only classical-liberal, i.e. libertarian, more or less) source here:

The increase in pay for the rest of the world's peons has not increased at such a steep rate. Why do you suppose that is?

Personally, I would say it's because shareholders haven't demanded enough out of the CEOs to force them to keep their own payrates low for the good of the company. Shareholders have allowed the CEOs to fatten themselves up, and it's time the shareholders stopped tolerating this nonsense.

Only trouble is, most shareholders control their ownership only via a collective, ergo, a mutual fund, and fund managers aren't exactly eager to bite the hand that feeds them. Go figure.

To my mind, several recently publicized executive pay packages have been patently excessive. The recipients of said pay packages seem to disgree. At any rate, I'm somewhat unqualified to determine the value of corporate executives, and even if I were, it is presumptuous to feel righteous indignation at compensation I deem "excessive". My point here is, yes, executive pay seems high in many cases, but, so what? Let the shareholders, board members, or the public rebel if it dissatisfies them. Some, like shareholders, have direct means to exert their opinions, while the general public has a more indirect route.

I don't disagree with your points regarding shareholder apathy, but it's not clear to me what your point is in regards to my article. I was not claiming that all executive compensation packages are reasonable, or fair, or even appropriate.

When a company falls on hard times, lowly employees may get the cost-cutting axe, but the CEO will likely get worse than that. In any case, wages typically follow the money; the CEO is close to the money, while the factory worker is somewhat distant. Anyone who dislikes that can try to move closer to the money.

The CEO will get worse than being laid-off? What would be worse? Have you not heard of the "golden parachute," which effectively creates a win-win scenario for the CEO (and thus removing his/her incentive to do a good job)?

Look, you don't even have to find a socialist/communist/Green (they're all basically the same) source to realize that CEOs aren't falling on hard times during the recession we're (slowly) coming out of. Go check out The Economist magazine (the cover of the print version asks "Where's the Stick?" while showing a carrot next to a CEO):

Yes, I am aware of the golden parachute concept, however one must also consider other probably consequences of abject failure. In the face of a cataclymic corporate failure, either by malfeasance ala Enron, or simple ineptitude, senior executives are directly responsible, and accountable, for the fate of the company. This brings with it not only criminal liability, but civil liability to shareholders, partners, lenders, etc. In particular, I've witnessed (on a small scale, admittedly) shareholder lawsuits filed against incompetent CEO's for a variety of reasons, all fundamentally related to an abdication of fiduciary responsibility. All that aside, an ouster from a leadership position in the face of failure or mismanagement is something of a Career Limiting Event.

Again, my point is not that CEO's are mistreated and misunderstood, or that the $10+M/yr executive suffers as much from a round of layoffs as the $28k/yr receptionist. I was trying to illustrate that corporate executives have an obligation, and substantial incentive, to make their employers successful. Of late, and in times past, this takes the form of aggressive, short-sighted cost cutting. Rather than take a cynical view of cost-cutting measures like offshore outsourcing, shrugging and grumbling about the CEO's bonus last year, it is far more useful to recognize the true motivations underlying these decisions, particularly if you wish to make a compelling alternate case.

You'll have to pay to read the page, or else go find a copy of The Economist in your local library or something. Either way, I highly recommend you read it. Even very economically-conservative folks (like those found writing for The Economist) no longer believe that CEO pay is in-sync with reality.

And yet, you continue to believe it... such is the problem with those of us in the software industry - most are terribly shortsighted politically and economically.

Once again, I have not suggested that executive compenstation is fair or reasonable; I have claimed above that my opinion thereof is irrelevant, but that is hardly the same thing. Imho, if the "peons" would stop whining about executive pay and focus on constructive measures to retain or advance their careers in the current climate, we'd have a few less peons.

While a cogent discussion on executive pay trends is not without merit, it is largely irrelevant in the context of the outsourcing issue, and in many cases I feel it becomes distractionary; we all love to resent the PHB's with the extra zeros on their paychecks, which seem to have come from their IQ's, however this pointless resentment is as much psychological sugar water, without constructive value. Better to focus on actionable solutions to one's own micro-level problems.

Also, why are you afraid of programmer unionization? So long as the union is not coercive, where's the problem for a true libertarian? Unions are nothing more than the employees forming a group to protect their own status in the workplace. The employer can't fire them for unionizing, true, and perhaps that should change, but regardless, that doesn't prevent him/her from firing the employees by other means. Demanding that unions not be formed is just more obvious shilling for big business (namely, Microsoft, which has a large stake in this site and is offshoring people left-and-right).

I'm not afraid of it; I do, however, consider it pointless. Though I'm arguably too ignorant of the history of labor relations to form an authoritative opinion, I'm highly skeptical of unionization even among the blue collars, and find the concept untenable when applied to programmers. As I say in my article, unionization of a professional, highly educated, somewhat creative group of workers seems a naive undertaking, failing to understand the nature and diversity of the programming discpline.

those who advocate unionization or trade group organizations are accepting the "programmers as cogs" principle, and then asserting that domestic cogs are special and should receive contractually obligated rights and privileges.

Programmers *are* merely cogs. Why else would they be offshored? Duh. You don't see CEOs being offshored, do you?

Programmers are the labor class of the 21st century. Mindless blue-collar style work in a white-collar facade. Managers see it this way, and so should the rest of us.

Before addressing your comments, I'll draw a distinction between the fact of a programmer as a cog, and the perception among PHB's that programmers are cogs.

Ipso facto, programmers are hardly cogs, in the sense a traditional blue collar worker might be. Of course, skill levels vary among blue collar workers as well, but the programming discpline is substantially different.

First, programmers benefit from a wide range of skills and knowledge, making cookie-cutter training programs dubious. Programming really is an art best learnt through on-going experience and real-world education throughout one's career.

Second, programmers require both broad and deep technical knowledge, AND extensive domain knowledge. This makes "hot swapping" programmers substantially costly.

Third, as a skill, programming is astonishly complex, and therefore, the skill levels of programmers vary widely, and are difficult to measure. Replacing a skilled programmer with an unskilled programmer can have disastrous results, however unlike a blue collar worker, gauging a programmer's skill level is rather complicated.

That said, the PHB perception is definitely one of programmers as cogs. This section of my article was focusing on that very concept as a fallacy, in need of refutation. Whether or not the PHB's will recognize this fallacy depends entirely upon the circumstances, and the PHB.

In reality, a programmer’s union is absurd (and would no doubt fail when a majority of programmers refuse to join).

That's quite an assumption to claim that programmers won't join. Maybe they will, maybe they won't - you cannot know either way until it is tried. But it's quite slick of you to try and slip that assumption by the sometimes English-deficient readers here.

We can argue my claim at length; I find no evidence of strong ideological cohesion among programmers as a class, which suggests to me that any attempt to contrive a union would fail due to lack of critical mass.

I hadn't realized that, in my slickness, I was tricking English-deficient readers into accepting my assertions as divine truth. However, now that you have discovered this ability, I will exercise it further:

1. The American corporate empire is your savior; worship it as a God; buy Coke and Nikes; paypal donations to anelson@....

2. American programmers have a large wealth of diamonds in their possession, which they need YOUR help to sell and launder. A mere US$1000 investment, paypal'ed to anelson@..., will secure your opportunity to earn 10% of this multi-million dollar opportunity

3. American companies pay bonuses for back doors written into the applications they send offshore, particularly if they are remotely exploitable and can be used in acts of massive fraud or destruction; submit evidence and documentation of all back doors to anelson@..., for consideration.

Wink | ;-)

Look, your explanations of basic economics are sound, and most of what you write is reasonable and in-line with libertarian thought, hence, I haven't responded to the rest of your article. That said, if you truly believe in free-markets, then you wouldn't be advocating enaction of pro-business policies ("Advocate pro-business policies").

*True* free-market policies favor nobody - not businesses, not individuals, not unions, not special interests - nobody. In a *true* free-market, the market is left alone on all sides; yet this is not what you are advocating. Favoring business just proves to your audience which side of your bread is buttered; not that they needed any further clarification.

You've got me on semantics there. By "pro business policies", perhaps I should say "anti-anti-business policies", but that seems somehow awkward. I don't suggest that artificial market manipulations should be imposed to favor business interests over those of the consumer. I mean what you describe; a free market, devoid of government meddling.

Of course, the caveat here is that for many, it is difficult to distinguish between the market FAVORING a given actor, and the market REWARDING that same actor. Typically, it is the losers who discover that the winners were somehow favored by the market, hence their victory. I am content with a market unencumbered by burdensome government regulation; if there are favorites to be played, I'd rather my government not be the one doing the playing.

That said, if I am a corporate stooge as you imply, I do hope someone will tell Bill and Larry at the next Evil Billionare's meeting, as they seem to have misplaced my check...

But seriously, stop misleading the computer geeks here who generally know nothing of economics. I happen to have studied both CS and Econ, and thoroughly recognize the value of free-markets, preferably with as little regulation as possible. But to ignore blunt facts isn't just irresponsible, it's downright stupid.

Ah, there is it. I knew this cogent discourse couldn't last. Ah well.

My abject stupidity notwithstanding, I will submit that a few of your sentiments, particularly as it relates to wealth, seem somewhat antithetical to pure libertarian ideals. In my stupidity, I've given my fealty to the brand of libertarianism that embodies "laissez-faire", even in the face of rich white men with more money than they deserve.

Perhaps if you had a life outside your work and weren't "training" all the time (training for what? The next overhyped release of MS Visual Studio?), you would have the time for the real world...

I suppose I had that coming, given my bio. I would point out, however, that my work is inextricably tied to the topic currently under discussion, therefore I am less out of touch with the "real world" than you could otherwise argue. However, since you obviously know of this "real world", I must ask: what is meant by, "girls"? Wink | ;-)

[Incidentally, by "training" I meant, literally, training, as in, athletic training, as in, working out, but I suppose that just takes me further away from the "real world"]

But I will end on a positive, non-abusive note:

How considerate of you... Wink | ;-)

For the most part, what you have described is, for better or worse, exactly how the economy is moving. Offshoring isn't going away folks - deal with that fact as you will, because as soon as India gets too expensive to offshore to, it's off to China with the labor! Then Russia, and Belgium, and so on, until there's nowhere left to go for cheap labor - wherever that is, the U.S. is the last place cheap labor will be found.

At least we agree on this point.

By the way, two or more levels of outsourcing indirection are already becoming a reality. The wiser (more jaded?) American managers dealing with offshore firms are demanding contractual terms (the enforcability of which is dubious) which preclude their Indian partners from re-outsourcing work to China [or so says an InfoWeek article I read recently]. Interestingly, I've not heard much from the Indian programmers whose jobs are stolen by Chinese coders working out of cardboard boxes for 25% of an Indian programmer's wage. Perhaps this is coming.

Programming ain't coming back to the U.S./Canada, no matter how much you wish it would. Get used to it and find something else to do. Maybe try subsistance farming?

I hear there's quite a bit of money to be made in organic farming...actually, Chinese farmers are slapping "organic" on their "organic-if-you-dont-count-industrial-toxins" produce, shipping it half way across the world, and selling it to gullable American suburbanites at a 200% markup, so maybe that's not such a good industry for an American to get into right now.

If only the government would legalize marijuana, and impose 100% import tariffs for a few years while the American narcotics industry gets on its feet..."free markets" my ass... Wink | ;-)

Anyway, thanks for the post. I'll try to refrain from misleading hapless readers with my radiant ignorance...

GeneralRe: Adam Smith was a dreamer Pin
bradw2k18-Apr-04 4:49
memberbradw2k18-Apr-04 4:49 
GeneralRe: Adam Smith was a dreamer Pin
Adam Nelson18-Apr-04 5:35
memberAdam Nelson18-Apr-04 5:35 
GeneralSalary of programmers Pin
Ashok123429-Oct-03 3:11
sussAshok123429-Oct-03 3:11 
GeneralRe: Salary of programmers Pin
Adam Nelson29-Oct-03 3:21
memberAdam Nelson29-Oct-03 3:21 
GeneralRe: Salary of programmers Pin
shaunAustin29-Oct-03 3:34
membershaunAustin29-Oct-03 3:34 
GeneralRe: Salary of programmers Pin
Mark Cousins29-Oct-03 3:50
sussMark Cousins29-Oct-03 3:50 
GeneralRe: Salary of programmers Pin
Adam Nelson29-Oct-03 3:51
memberAdam Nelson29-Oct-03 3:51 
GeneralRe: Salary of programmers Pin
Anonymous2-Feb-04 2:23
sussAnonymous2-Feb-04 2:23 
GeneralRe: Salary of programmers Pin
Adam Nelson2-Feb-04 4:25
memberAdam Nelson2-Feb-04 4:25 
GeneralRe: Salary of programmers Pin
mikedavid0017-Feb-04 12:33
membermikedavid0017-Feb-04 12:33 
GeneralRe: Salary of programmers Pin
Adam Nelson17-Feb-04 15:23
memberAdam Nelson17-Feb-04 15:23 
GeneralRe: Salary of programmers Pin
jhwurmbach29-Oct-03 3:55
memberjhwurmbach29-Oct-03 3:55 
GeneralThe other side of the story Pin
Ron Deer28-Oct-03 0:43
sussRon Deer28-Oct-03 0:43 
GeneralRe: The other side of the story Pin
Adam Nelson29-Oct-03 3:27
memberAdam Nelson29-Oct-03 3:27 
GeneralRe: The other side of the story Pin
Ron Deer29-Oct-03 23:08
sussRon Deer29-Oct-03 23:08 
GeneralRe: The other side of the story Pin
Adam Nelson30-Oct-03 3:33
memberAdam Nelson30-Oct-03 3:33 
GeneralRe: The other side of the story Pin
Ron Deer30-Oct-03 4:16
sussRon Deer30-Oct-03 4:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.170628.1 | Last Updated 27 Oct 2003
Article Copyright 2003 by Adam Nelson
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid