Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Every once in a while on some technology websites a headline like this will pop up: http://www.osor.eu/news/nl-moving-to-open-source-would-save-government-one-to-four-billion

My initial thought about government and organizations moving to open source software is that tons of programmers would lose their jobs and the industry would shrink. At the same time the proliferation and use of open source software seems to be greatly encouraged in many programming communities.

Is my thinking that the full embrace of open source software everywhere will hurt the software industry a misconception? If it is not, then why do so many programmers love open source software?

share|improve this question

closed as primarily opinion-based by gnat, MichaelT, GlenH7, Kilian Foth, Martijn Pieters Feb 17 at 22:12

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
If you think that an open source strategy means layoffs, then read Joel Spolsky's "Strategy Letter V". joelonsoftware.com/articles/StrategyLetterV.html –  user16764 Mar 14 '11 at 23:15

14 Answers 14

up vote 25 down vote accepted

Just because a project is open-source does not mean that programmers are not making a living off of it. Governments and companies donate large amounts of money to foundations like mozilla and apache.

Also keep in mind, companies have to hire programmers to MODIFY the open source project to customize it for their business. Companies can't use off the shelf tools for everything. This is something that can't be done with closed-source software so it's an example of how you can open up new opportunities for programming. It's not about eliminating programmers or not paying them, it's about rearranging the structure to hopefully make things more efficient so we have more time for NEW projects.

Another thing to realize about open source is that you don't necessarily have to reveal the source code of your program unless you're going to distribute the program. For programs that a company is going to use for itself in its servers or intracompany needs, it will probably NOT distribute and therefore not have to reveal the source code for the modified program.

share|improve this answer
    
People who work on the mainline projects are also perfectly positioned to get in on those customisation jobs too by virtue of the fact that they already know the internals of the project. –  Matthew Scharley Mar 14 '11 at 2:18
    
I wonder how Steve Streeting (founder of the Ogre3D project) managed to work in the field of 3D graphics and how it influenced the engine he crafted. –  jokoon Mar 14 '11 at 9:47

Open source economics are pretty strange and often counter-intuitive. Take a product like the Excel spreadsheet (just an example, any big commercial product would do). The business of building and supporting Excel employs some number of employees, say X. X would probably sound like a big number to you and I, but I have no idea what it is. What I do know is that it's a tiny number compared to the number of people making a living supporting Excel in offices, schools, and other institutions and creating tools using Excel. That number is probably X * 10000. So, if you replace Excel with an open source product, you replace X but the X* 10000 is unaffected.

In fact, it's not even that simple. Without the X employees, more paid developers are needed to train, troubleshoot, and modify the open source spreadsheet. Just because there isn't a commercial enterprise behind the product doesn't mean that business won't demand (and pay for) good service. In fact, if your open source product gains enough traction, companies are sometimes willing to support a foundation that guarantees the future development of said product. This is especially true if their business interests are intimately tied to the product. Think of Mozilla, the Apache Software Foundation, Mono Project, or Canonical.

Finally, open source tools are never a threat when you're trying to sell a service. Think of organizations like Facebook, Twitter, and even Stackoverflow. Ultimately, these organizations don't want to sell you software. They want to create a giant network. Once the network is big enough it creates its own gravity. Using any other "product" wouldn't make any sense because number of participants is what matters most. The underlying technology is just a detail.

share|improve this answer

I'd say read up on the various ideologies behind some of the more prominent OpenSource projects, like Chromium, Mozilla, etc., and then make up your own mind. No one really has a right to tell you how to feel one way or another.

That being said, I embrace OpenSource because I like the idea of transparency in software design. I also like that the community of users has a very real and direct impact on the direction of the project. You don't get that in a closed-source environment.

If I remember correctly, one of the points a Creative Commons supporter made was that by making things "free," you allow people to use the product of your ideas in ways you may have never imagined. This is a video I particularly enjoyed: https://creativecommons.org/videos/a-shared-culture

share|improve this answer
2  
I don't think that project like mozilla are going to reduce the need for programmers. Unless your company is developping it's own web browser, which I really doubt. Also, I don't think that most people are even going to look at the source-code. Programmers care about the source code, customers don't. –  Joel Gauvreau Mar 14 '11 at 2:46

We will never see a full embrace.

We love to try to contribute positively to the world. Besides, participating in an open source project is a great PLUS to your CV.

share|improve this answer
3  
We do not treat open source contributions the same as compensated experience. In fact, our experience has taught us to avoid hiring anyone who has made major contributions to open source projects because real-world software development is 10% fun and 90% boring grunt work. The candidates that we hired who were big into open source projects did not want to do the boring grunt work that was necessary to produce professional quality solutions. –  bit-twiddler Mar 14 '11 at 4:09
6  
@bit-twiddler: Surely, someone has to do the boring parts in open source projects too –  Anto Mar 14 '11 at 5:25
1  
@Anto: the problem is that the boring parts are often not performed on open source projects. For example, one of the attributes that distinguishes high-quality commercial products from their open source software counterparts is documentation. The documentation for even the most successful open source projects pales in comparison to that of that of successful same scale commercial products. Lack of adequate documentation makes learning open source products a major pain. I am not paid to gather and decipher poorly-written documentation. I am paid to produce results. –  bit-twiddler Mar 14 '11 at 14:07
    
@bit-twiddler: So your programmers are also expected to put out well-written documentation? Isn't it cheaper to hire technical writers, and don't they generally produce a better product? –  David Thornley Mar 14 '11 at 16:52
1  
@David Thornley: Yes, all development personnel are expected to be able to write well in addition to being competent full life-cycle software developers (i.e., we have no code-only personnel). No one knows the product better than the design and implementation team. Our single technical writer is tasked with the job of coordinating and massaging deliverable documentation. –  bit-twiddler Mar 14 '11 at 17:56

Open source is a threat to packaged software companies whose products are in an area that's popular enough that enough interest is present in the open source community to develop a free alternative. I think one case is point is the significant decrease in prices that both Oracle and Microsoft can charge for database software. mysql is more than adequate for most projects and essentially free unless the customer wants to pay for support so they'll have someone on the hook if things go sideways.

It is absolutely complementary to the consulting and services businesses because it lowers the total cost of production and increases the productivity of their developers. Companies like it for the same reasons although some insist on finding vendors to provide commercial support so that there's someone to call/blame if it doesn't live up to expectations.

share|improve this answer
    
MySQL is owned by Oracle. There is nothing stopping Oracle from closing the source on that product just as there is nothing stopping Oracle from removing community input to Java. Software companies do not sell software--they sell peace of mind to executives! Publicly-owned corporations continue to purchase commercial software because they want to able to bark at same size corporations and have someone jump through hoops to make problems go away. Selling IP is how small software companies get to be large software companies. A service-only model is wholly dependent on the cost of labor. –  bit-twiddler Mar 14 '11 at 14:35
2  
Open source is a threat in precisely the same way as a competitor is a threat. If Oracle's database (exactly what do you call it nowadays?) is significantly better than, say, PostgreSQL, they will be able to sell it. If it isn't, why the heck should we pay Oracle? –  David Thornley Mar 14 '11 at 16:54

Biggest risks...

  • Volatiliity: much of OSS is developed in spurts. There are prominent projects, stable releases in lesser knowns, but because the universe of OSS is so divergent and fragmented in many areas (and ever evolving), it's rare for a project to become mature enough to say that development will be regular, indefinate, or perpetual. Changing course midstream is costly, even if the product is free because integration, regression, and hands-on or immediate support is not free, even if available.

  • Lack of accountability: there isn't anyone 'invested' so it's hard to seek recourse when bad things happen. There is no warranty. Nothing that even resembles one. The only assurance you generally have is reputation and eventually your own personal experience. Since it was free, the developers can tell you to go firetruck off, and not care one bit about your lack of success, or less importantly if you continue to use their product.

share|improve this answer
2  
And this is different from commercial, proprietary, closed-source software in which way? The owner can always decide to go another direction, and the only general product I ever heard of with decent assurance is TurboTax. –  David Thornley Mar 14 '11 at 16:50
    
It is different in many ways. One way is commercial, for profit producers of software, especially components, libraries and run-times, generally do a much better job of providing smoother transitions. For instance, by explicit enumeration of breaking changes, and what should be done or not done due to these breaking changes. This explicit enumeration is usually prepared and published long before the software itself is even available, with post release errata promptly available, and this information is in a generally consistent location and format. –  JustinC Mar 15 '11 at 5:53

Embrace OSS tools and stuff, but don't get obsessed by them (and yes, I've seen a lot of people get obsessed with open source stuff, almost always to their detriment).

Pick and choose the best tool(s) for each job, irrespective of whether they're open source or not (mind you, some open source licenses make anything licensed under them useless for commercial work, especially GPL licensed libraries suffer from this).

share|improve this answer

A majority of the modern Open Source Software is developed by full-time employees, who are primarily paid for developing it. The rest is developed by those who are paid for doing something that depend on the software they're developing, and a collaborative work on it, crowdsoursing a support and maintenance is absolutely mandatory for them.

share|improve this answer

The vast majority of programmers do not get paid per copy distributed of the software they create. They get paid a one time fee for their time spent. Even companies who employ programmers don't generally make their money per copy sold. With a few notable exceptions like Microsoft and Adobe, software is typically part of their infrastructure, like a company website or internal tools, or given away as part of another product or service.

Others have pointed out that most major open source contributors have corporate sponsors. On the hobbyist side, I find it interesting that people always focus on what is given instead of received. It's like an electrician receiving all the components of a house for free, already assembled except for some wiring improvements he does himself, and people consider him crazy if he spends a few hours one weekend teaching others to make those same improvements for other houses that got the same deal. Sure, he's giving away some of his time and expertise for free, but in return he gets a great product worth several times the work he put in and ensures a healthy ecosystem for the next time he needs something.

share|improve this answer

How should you feel? Good grief, next you'll be asking "how do I talk to women". Open source will never replace but a small portion of the paid SW. For most organizations, the increased costs of moving from what they already know to anything else, even free, is more than the cost of the SW.

share|improve this answer

The main philosophy of free/open source (as I see it) is that when you distribute software you distribute the source as well with it. Open source does not necessarily mean free of cost. And certainly in any large project, simply picking an open source solution does not mean you just pick off something from a shelf and plug it in and you're done. For any large application, you need to adapt it for your specific needs (can be as simple as setting it up and migrating your existing system to it or as complex as modifying large parts of it) and have a reliable mechanism for support as well as updates/bug fixes with the original software. That means there will always be jobs for programmers. Not to mention, for any major open source project, there are progranmmers being paid to work on it - mainly by large corporations that have a stake in that projects well-being (they use it or sell software/services for it).

Think about it this way, if there is a mature open source solution to your problem already existing out there and being used by lots of people, does it make sense to sink in large amounts of cash for something that cannot possibly be as mature as that? It is simply more efficient to use it. Its not about preserving jobs (as I said there will always be a need for programmers), but simple business sense, which is even more important when its tax-payer money. Shunning open source in the name of keeping jobs is just creating an artificial environment, restricting the sharing of technology and IMHO generally bad for the health of the programming community.

share|improve this answer

I would look at some of the Linux contributors to get an Idea of how the opensource community is made up of people who get paid to make their code available for free.

http://apcmag.com/linux-now-75-corporate.htm

share|improve this answer

For me, open source is also political: it allows programmers to help each others so that the hard work doesn't have to be repeatingly re-crafted and not allowed to be used between projects.

It also set a better set of background rules for the project, it's not under the rule of managing: at the end, the result is a code of better quality and longevity.

Know that the computer science subject is much vast, and there are some pieces of software that are so much complex that there are not so many competent people to write them, maintain them, and also add interesting features.

I really find your argument "tons of programmers would lose their jobs and the industry would shrink" very misleading, not only about the software industry, but for the world in general. Remember the web bubble: it's easy to fool not-programming people in a company. Open source is safe way to put a barrier to that.

You also have to think that software is not like many other industries: you deliver something which is volatile, something capitalism can't really work with. Just imagine if we were able to duplicate physical objects, but you would need to pay for each aspirin pill you duplicate, because the molecule is kind of "owned" by somebody. That could makes very little sense. Now think about copying pure, clean water (which will one day become expensive): do you think it's ethically and philosophically correct to make people pay for such thing ?

If programmers lose their jobs because of open source, it's maybe because they are just unable to reproduce the same kind of software quality, so in a way, they deserve to be fired. But that doesn't mean they should be less programmers having a job: it's just a matter of community, teamwork and ethics: companies should pay programmers either to implement solutions for problems using existing software, or else, hire more competent programmers who can add features for an existing code.

Take the iOS, windows phone, symbian and android: those are 75% doing the same thing, meaning almost same "wheels". It's just different flavors, but in the end, a lot of money were spent because companies wanted to survive to their ideals.

Open source is not just political, it's also about innovation: how do you want to give reality to new idea if you have to restart everything from scratch over and over ?

share|improve this answer

What Free/Open Source software does is establish a baseline: if your company can't produce anything better than the F/OS alternative, it isn't going to be able to sell many copies. If your company can offer something significantly better than the F/OS available, it's going to be able to sell copies and make a profit. Therefore, one use is that it reduces the ability of companies to get by selling bad software.

It also lowers barriers of entry. Anybody with a halfway modern desktop or laptop can, without spending a dime on software licenses, have a very functional OS with easy-to-use GUI and excellent development environment (there's plenty of people who think MS Windows with Visual Studio is better than this sort of environment, and plenty who don't).

Therefore, F/OSS helps the software entrepeneur get a business started at low cost. This increases the influence and profit of the software innovator compared to the financial guys, who were the ones that controlled most non-University computer use in the old days. Many of the recent massive success stories would have been harder to get going, perhaps impossible, without F/OSS and its effects.

It reduces the opportunity to make a lot of money without corresponding ability, which is arguably a good thing.

Developers who aren't very good will find niches in internal software for companies that don't rely on their computer systems as a strategic asset, and those jobs aren't going to be affected much by F/OSS.

Developers who are very good but not the entrepeneur type will still do well with companies that sell good-quality non-F/OS commercial software. The money-based market is more effective at providing for lots of needs than the F/OSS reputation market, and much better at producing the dull necessary stuff. There are plenty of vital applications that most F/OSS developers will avoid.

So, overall, I think it's healthy for the development community. It allows developers a better shot at becoming wealthy, and serves as an incentive to make good products (and most developers would rather work on good products than bad). It can hurt developers who aren't that good, or work for badly run companies, but it doesn't reduce the demand all that much, and they can likely find jobs anyway.

share|improve this answer

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