Advantages of open source: Revisited
I feel that is important for me to further analyze the benefits of open source software. In a previous post, I highlighted the cost-savings of open source and did not mention any of the other advantages that it provides. This post should provide a more balanced view of open source and the intrinsic benefits that free software provides.
Low Cost
This is the benefit that I focused on in my previous post. Cost is the most obvious benefit when people compare it to proprietary software. How does open source achieve this low cost?
I believe that the open source development model is the most efficient way to create software. With proprietary software development, each software company creates an isolated software silo. Meanwhile, their competitors are spending resources to create software that does almost the exact same function! Compare that to the open source model, where worldwide resources can be shared to develop an application.
Some people claim that while open source software may be free to acquire, it has a higher Total Cost of Ownership (TCO). These studies have been quite controversial because they are usually funded by Microsoft. Talk about a conflict of interest!
Even if Linux currently has higher integration costs, you can expect these costs to only become smaller with time. This is due to the fact that open source software is becoming more widely deployed and easier to manage. This means that there will be less training and maintenance costs to be accounted for in a TCO study.
Security
Open source software is usually considered to be more secure than proprietary software. I believe this can be attributed to two driving factors. The first factor is that the source code of the software is publicly available. This means that if the community is large enough, there will be many programmers analyzing the code. This has been stated as "Given enough eyeballs, all bugs are shallow."
The second factor is very closely tied to the first. If programmers know that their code will go through a worldwide peer review, it provides an incentive for them to create high-quality code.
Continuity
With proprietary software, if the software company goes out of business then the software will simply die with the company. It is also possible for the software company to decide to stop maintaining a piece of software. In both cases, you are out of luck if your business depends on that software.
With open source software, you are not dependent on any one entity for the project to stay alive. If the current developers stop working on the software, anyone can use the source code to simply continue from where they stopped.
Flexibility
With traditional proprietary software, you were at the mercy of the software developer to listen to requests from users. It is common for business needs to dictate the future direction of software. In these cases, the software company will listen to large customers or a majority of their customers. If you are a small customer and have a unique need, it is unlikely that the software developer will be responsive to your requests.
With open source, you can add the features that your business needs and you can fix the bugs that affect you. There is no requirement to work with the developers, although the community benefits when you contribute your changes to the project.
What do you do if the open source developers are impossible to work with? In these extreme cases, it may be best to create a fork of the original project. Open source provides you the freedom to work with developers that meet your needs.
Proprietary software does not offer this freedom; in fact the industry does its best to prevent it. This is often called vendor lock-in, which is a method that software companies use to prevent customers from leaving. Open source companies prefer to simply use good service to ensure customer loyalty. Which method do you prefer?
Comments?
Please share any comments you may have about this topic. I really enjoy getting feedback on these topics. "The more brains the better!" said the Zombie. (Hey, it's almost Halloween!)
Low Cost
This is the benefit that I focused on in my previous post. Cost is the most obvious benefit when people compare it to proprietary software. How does open source achieve this low cost?
I believe that the open source development model is the most efficient way to create software. With proprietary software development, each software company creates an isolated software silo. Meanwhile, their competitors are spending resources to create software that does almost the exact same function! Compare that to the open source model, where worldwide resources can be shared to develop an application.
Some people claim that while open source software may be free to acquire, it has a higher Total Cost of Ownership (TCO). These studies have been quite controversial because they are usually funded by Microsoft. Talk about a conflict of interest!
Even if Linux currently has higher integration costs, you can expect these costs to only become smaller with time. This is due to the fact that open source software is becoming more widely deployed and easier to manage. This means that there will be less training and maintenance costs to be accounted for in a TCO study.
Security
Open source software is usually considered to be more secure than proprietary software. I believe this can be attributed to two driving factors. The first factor is that the source code of the software is publicly available. This means that if the community is large enough, there will be many programmers analyzing the code. This has been stated as "Given enough eyeballs, all bugs are shallow."
The second factor is very closely tied to the first. If programmers know that their code will go through a worldwide peer review, it provides an incentive for them to create high-quality code.
Continuity
With proprietary software, if the software company goes out of business then the software will simply die with the company. It is also possible for the software company to decide to stop maintaining a piece of software. In both cases, you are out of luck if your business depends on that software.
With open source software, you are not dependent on any one entity for the project to stay alive. If the current developers stop working on the software, anyone can use the source code to simply continue from where they stopped.
Flexibility
With traditional proprietary software, you were at the mercy of the software developer to listen to requests from users. It is common for business needs to dictate the future direction of software. In these cases, the software company will listen to large customers or a majority of their customers. If you are a small customer and have a unique need, it is unlikely that the software developer will be responsive to your requests.
With open source, you can add the features that your business needs and you can fix the bugs that affect you. There is no requirement to work with the developers, although the community benefits when you contribute your changes to the project.
What do you do if the open source developers are impossible to work with? In these extreme cases, it may be best to create a fork of the original project. Open source provides you the freedom to work with developers that meet your needs.
Proprietary software does not offer this freedom; in fact the industry does its best to prevent it. This is often called vendor lock-in, which is a method that software companies use to prevent customers from leaving. Open source companies prefer to simply use good service to ensure customer loyalty. Which method do you prefer?
Comments?
Please share any comments you may have about this topic. I really enjoy getting feedback on these topics. "The more brains the better!" said the Zombie. (Hey, it's almost Halloween!)
here i see a very nicely stacked piece of article advocating open source and the best thing that i liked bout it is that it gave a very different view on the security thing i never thought about it like u did in ur second argument
ReplyDeleteI like and use a lot of open-source software, but please recognize that the improved security is not necessarily a given. This is a hotly debated subject for sure. IMO, an informed view can be found here, even though it's a couple of years old now.
ReplyDeletehttp://www.oreillynet.com/pub/a/security/2004/09/16/open_source_security_myths.html
Security has to be part of the development lifecycle, not just a reactive activity.
I also want to add that open source provides unrestricted access to your data. With proprietary systems, you may only be able access your data with their product. This keeps you from changing vendors since you are not able to move your data from one system to the other. This is another form of vendor-lockin. Open source usually provides an open data format that makes your data available to you.
ReplyDeleteA like your list. I find that your section on "Flexibility" has the most traction. Certainly there promises to be cost advantages in open source. But even if these don't pan out, the virtues of flexibility (a.k.a "controlling one's own technological destiny") and avoiding vendor-lock-in make open source an option that one needs to take seriously.
ReplyDeleteVery interesting read. Thanks for this post, it's helped me to think much more broadly on the topic of Open source, and has thus helped greatly with my research.
ReplyDelete-University student, Australia