The following section illustrates several practical aspects of open source software and involved parties.
Many people claim that open source software does not fit in our economical system because of its distribution terms. Although making profits might be more difficult today with open source software than with proprietary software, recent times have shown that you can earn your living with open source software. A good example is the Free Software Foundation that has existed for quite a while. Besides, there is no proof that the situation will remain in the future the way it is now as a lot of money has been invested in open source software and a certain 'hype' can be observed these days, too.
For a better understanding of the economical background I will present some ideas in this section on how to take direct or indirect economical advantage on open source software.
In order to understand the creation of selling prices for software we have to look at related costs as well.
Before a business managers decides to introduce new software for his company he would like to know how much money this decision would cost in total. This amount is called 'total cost of ownership' (TCO) and covers not only the selling price of the software, but any cost that is caused by this decision. In particular, when there are several alternatives to choose from this sum is an important aspect to compare the different options.
I want to give some examples of what has to be considered to calculate the TCO:
It is a common business strategy to bill expenses for provided products on related goods instead. Therefore the consumer does not have to pay directly for corresponding products and these companies still make profits. For instance, you do not have to pay for watching commercials, but the advertising company has to pay for producing and transmitting them. They are free for consumers and companies do not stop producing and paying them because they have another advantage than direct profits, e.g. popularity of their products.
In the information technology business proprietary software is still sold, but related costs are much more important for the mentioned TCO. Therefore a good company could easily give their software away as long as they make enough profits with related services and products. Their business is then based on the knowledge they gained producing the software and their popularity as the original creator. Nobody has a better knowledge about software than its creator, at least at the beginning. As software business changes very fast, this knowledge lead gives a company an enormous advantage in comparison to its competitors. Therefore open source software production might be even profitable using similar business models as proprietary software producers.
R. A. Ghosh goes even further and presents a new model for an Internet economy [Ghosh98].
However, the question is whether (open source) software development really is a business case. Considering it as ``a special case of academic research'' might be a more suitable approach [Bezroukov99] and gives another alternative to integrate open source software development in our society.
Nevertheless even software developers have to eat. Therefore I will give some examples of how present companies profit from the development of open source software:
Ian Sommerville describes software engineering as follows:
``The specification, development, management and evolution of [...] software systems make up the discipline of software engineering'' [Sommerville96, Preface]There are several thousand open source projects (OSPs), they are more or less independent and nobody can force them to use a certain method to develop their software. Therefore, some projects use sophisticated strategies of software engineering while others just start working without any planning at all.
Although there is no general method of producing software in OSPs, their special open distribution policy raises several interesting questions.
Since it is no problem to write a long book on the software engineering aspect of open source, I will only face the prejudice that OSS lacks certain features in comparison to proprietary software.
Many people claim that open source software is not secure. Normally, this opinion is based on the theory that the availability of source code makes software less secure in any case. I cannot follow this argumentation as nobody could provide me any reasonable proof for this theory. Additionally, there are some issues that should be considered discussing this question:
``It may seem a paradox, but one of the vital elements of security is the absence of secrecy. By this I mean that open access to algorithms, and to the source code that implement those algorithms, is essential if anyone is to rely on the Internet to be a safe forum for business'' [Livermore00]
I could not find any reasonable relation between provision of the source code and bad reliability of the corresponding software, but I found a study of the University of Wisconsin about the ``Reliability of UNIX Utilities and Services'':
``[T]he reliability of the freelydistributed GNU and Linux software was surprisingly good, and noticeably better than the commercially produced software.'' [Miller00, Conclusion]This examination does not mean that OSS is more reliable in general, but proves that at least sometimes OSS is more reliable than its commercial competitors.
The evolutionary process that is made possible by the permissive licenses helps to shape reusable software components. Therefore it is more reasonable to consider the distribution of the source code and the granted right to modify the software as a stimulating factor for the reusability of software components.
Why should developers use provided standards? The members of OSPs tend to choose the most effective option they can find without much effort in advance. Standards are very handy for this strategy as they contain a lot of theoretical work and developers can concentrate on the actual task instead of spending most of their time thinking about theoretical frameworks and a fundament to provide consistency and compatibility to other parts of the related software system.
Well designed standards are shortcuts for open source developers and there is no reason for them to protect their developments by making it incompatible to other software as they do not want to sell their software anyway. Actually, they want as many people to use their developments as possible. Therefore standard compliance is a natural choice for OSPs.
The other question is: Who is willing to spend the required amount of resources to create standards for open source software (OSS)? First of all, many suitable standards are not made for OSS in particular, but can be used for it as well. Secondly, since many companies have come into being during the last decade which are based on OSS and many traditional software companies have joined the open source community more or less, there are a lot of financial resources available today for such undertakings.
Finally, I want to give some examples for concrete standard efforts. Most of them are somehow affiliated and not concurrent:
Software is not only another new technology, but has a deep impact on our society.
The virtual space that computer systems are forming is often called cyberspace36. Software is something special as it controls everything that is happening in cyberspace. This was true from the very beginning of software, but the virtual computer world used to be very limited. First, it was only mathematics and calculations then text entered the cyberspace and other things followed.
Today, this development reaches a new dimension with the Internet. So many things that used to take place in the real world are now 'moving' into cyberspace. People are trading, communicating, arguing, and electing via the Internet and this just seems to be the beginning.
Software contains the law of nature of cyberspace that is governing these activities. Therefore giving someone the power to control software in the real world gives him omnipotent power in the virtual world of cyberspace, e.g. it is easy to 'kill' the virtual appearance of a user by closing his connection to the rest of the world.
Since software controls a lot of valuable goods, it is essential that it works correctly. Therefore it is important to observe the used software as well as possible. When choosing proprietary software a user has to trust the producing software company that they do their best to provide him with a high quality product as he cannot really check it because the source code is secret and software is too complex to observe it only by empirical testing.
I will give some aspects about software people might want to check:
Whether we like it or not, software is becoming more and more important in our life. This is true for the business world in particular. As long as there are many different compatible software systems we can choose from, this is not a threat to our independence, but compatibility of software systems has turned out to be a very difficult undertaking. Therefore even today, the replacement of installed software systems is difficult and in the future maybe impossible without consumption of enormous financial resources. So, choosing a proprietary software system is a far-reaching decision and means to lose a large part of your sovereignty as you further on depend on the producing software company and its future products. It should be a really trustworthy company as you may find yourself bankrupt otherwise because of technical difficulties.
Although many members of the open source community claim it, open source projects and companies do not naturally provide the better technology. However, you can leave your service provider at any time and keep using the same software as it is open source. Then, you can look for someone else to do a better job.
Iceland and other nations with too few inhabitants for a profitable software market have already experienced such problems when they were looking for native language support, though, they were willing to pay for the translation effort. Companies will not have it easier in the future to satisfy their needs.
Many countries and companies do not like to depend that much on private companies and therefore look for alternatives. Open source software might turn out to be the best choice.
for more details about
the use phases of software components.