Software is everywhere, for instance even an automated coffee-vending machine works on a software (though it’s a processor based, but still it’s a form of software that makes it work). The demand of software in today’s fast moving world has grown drastically and thus, need of its fast development and delivery also. But, the process of preparing software is not an easy task as it involves may constraints and also the cost involved is exceptionally higher; the demand of cost effective and/ or cheap software has also taken a move in today’s competitive market. Traditionally, the software that is used is commercial software with a vendor license, which is purchased by spending huge funds. This indeed is a financial burden but yes, it also carries further cost-effective and other derived benefits along with it. On contrary, Open source software is a segment which is highly cost —effective than any other means because they are available at almost zero cost!
A closer look —
“Commercial software” is a software, which is available in market at a certain price. Which means, whosoever needs to use it has to pay for it to get a valid and authorized license; of course, the amount is too high because it is commercial and at certain level depends on market value and share. The commercial software is either developed by an individual or a group or an organization for an individual, group or organization to meet a specific or chunk of requirements. Certain funds, time and measurable efforts are invested in order to meet these requirements and to achieve the final product hence, the cost to be retrieved/ regained is by means of selling it thus, are distributed commercially!
“Open source software” is again a form of software developed either by an individual, group or an organization to meet certain requirements but here the case of its development is different that is, it’s not developed for some individual, group or organization but is developed based on its developing body’s interest and is published openly for general public. Open Source software also sometimes termed as “OSS” is computer software whose source code is available to the general public with relaxed or non-existent intellectual property restrictions (or arrangement such as the public domain) and is usually developed with the input of many contributors. The openly viewable nature of the source provides better flexibility and that if possible problems are found, they can be quickly addressed and altered to adapt, again with the supervision of more than one company / programming team located at various locations globally.
The process and approach —
Normally, in development of a commercial software there is an agreement/ contract signed between two individuals/ groups (the requirement generator and the solution provider) in order to provide the required software by every possible means by utilizing its skills, resources and expertise, etc. and deliver the final product as requested. This is usually a one on one agreement that means, there a fixed/ selected requirements of an individual or group which are fulfilled by another individual or group (vendor), usually a vendor — customer relation.
The approach is the requirement generator (the entity who demands for a software) generates the requirements to meet a specific goal (s)/ objective (s). These requirements are circulated to the vendors (solution providers), once a specific solution provider is selected the process starts and work proceeds. Now, it’s the solution provider’s responsibility to provide complete end-to-end solution in the agreed stipulated time and terms.
On the other hand, in development of open source software there is neither any agreement/ contract nor any specific requirements that are considered to produce the software/ product but yes a finite number of general requirements are considered as baseline to develop the software. This in turn will be most useful product/ software for a specific group and a least useful for others thus; it does not fulfill the demand of every one as per their requirements. But, it also keeps an option open (because its an Open source) that users seeking their requirements that needs to be incorporated in it, can definitely do it with less hassles as the source code is openly available. The only thing one need is to customize the existing open source software as per their demand.
Why Open source?
Every individual will have his or her own perspective over this question. Some may agree some may not, it’s more or less like a debate but yes the major benefit of open source is it is available freely while its commercial counter parts my cost multi folds. It is not just the cost benefit but also the customization feature that catches the interest of various sections. Suppose a commercial application software available at $ X amount consists of 10 functions and features, you as a customer also need 2 additional features in it which are not readily available with the existing package, if at all it is decided to induce these 2 features the vendor demands certain time along with raised price of the actual software. Thus, the new price is now $ X+Y. Comparatively, the open source has a different story; though the time factor may be same in both the cases but the cost factor is definitely that matters. It may happen that one single open source software fulfill your complete demand or half the requirements may be fulfilled by one open source software and remaining requirements are met by another open source software. Finally, if neither of the open source softwares meets you requirements the best option is to get it developed by in-house team or by solution providers again by using open source technologies (cost0-eefective way).
Let’s elaborate — an example:
Now a days testing of a software application is a tedious task and one of the critical requirements. Also, testing differs from application to application and technology to technology. Functional testing is a vital part of testing efforts that is involved and has more weight-age in entire testing phase. Now, if this testing is to be automated, the options available are numerous, and also there are dozens of commercial tools and open source tools also. If we think to use any of the commercial functional testing tools the cost starts right from the beginning – the cost of license and its validity (this is a huge cost), skills required and so on. Now, when it comes to the usage of open source software – a cost effective manner, then cost of software license is directly clipped/ eliminated and the cost remains is the cost of skilled resources and associated costs. The major burden is already nullified hence, compensating it over resource training, resource hiring, infra is accepted and is reasonable enough. Adopting an open source tool may be a good option at broader level but it’s again management’s call.
Pros and Cons of Commercial and Open source software:
Cost — As stated earlier the commercial software costs more and is ideally a big hurdle in selecting and investing funds over the open source software because, open source software is available freely; you hardly have to pay anything for it.
Security — It is again a big question. Commercial software is mostly developed with certain intension and under consideration of specific standards hence security constraints are taken care of in a better way. This may not be the case with Open source software — you may have to compromise over security (up to some extent)!
Reliability and Ownership — A software developed by a commercial software/ solution provider will always be highly reliable as it is produced with certain considerations and parameters. The vendor developing the software is solely responsible for all the failures (if at all) and also responsible for its long term (may be life time) support and maintenance till software is literally phased out. In Open source software reliability may not be confirmed, as everyone’s requirements can’t be fulfilled neither there is anyone responsible to own the failures.
Customization — Until few years customization in commercial software was not possible because, the software were distributed in packaged form (to be used as it is). But, now customization options are available for few commercial software. Ideally, open source software provides wide scope of customization, which is another great advantage that, one can mould the software as required.
Availability — This may be the case in both, what you need may not be available or cannot be made available either in commercial software or open source software. Thus, meeting exact requirements may be difficult. But, both the options up to certain level provide availability of making the software as required, especially the open source.
Both commercial and open source have their own benefits and drawbacks and they mutually have their own share in today’s market. It is the user’s perspective to view which stands where and what type of software have which kinds of provision. A survey published in “Network World magazine article” (http://www.networkworld.com/supp/2007/ndc2/031907-open-source-security-sidecode.html) states that, “Most of the packaged security appliances for everything from firewalls to security information management are built on the same BSD Unix and Linux (open source platforms) distributions as the application servers you build yourself.” Probably, it seems that the open source is leading gradually to beat the commercial dominance. It’s a wait and watch show; who wins the race is undetermined!
- Open Source Security Myths Dispelled — A white paper by Angelo Comazzett of Astaro.