We said in the previous section that all of today's businesses need to use ICTs and software in particular, but how can a company get the software it needs for its production processes?
Based on the classification developed by Bruce Perens in "The emerging economic paradigm of open source", we can sort companies as follows:
Required reading
B. Perens (2005). The emerging economic paradigm of Open Source. <http://www.uic.edu/htbin/cgiwrap/bin/ojs/index.php/fm/article/view/1470/1385>
1) The Microsoft and Adobe model (Perens' "Retail" model), whereby a company develops software and sells it packaged to customers.
Thus, from their point of view, customers can forget about the development of the software and simply buy it finished.
Consequences of the retail model
Naturally, this software development usually takes the form of proprietary software (where the provider does not reveal the code to its customers). From the point of view of somebody who purchases this software, the first obvious drawback is that it is not designed for his/her specific needs (because, obviously, it has to be sold in a very uniform way in order to be of interest to a range of customers). Another potentially serious problem is, as we mentioned earlier, the danger of being trapped by the provider, which makes it difficult to switch to other software, retrieve certain databases, etc. Conversely, but with similar consequences, there is the danger that the provider will disappear and thus cease to provide the required software maintenance and improvement services.
2) The business model where the company that needs the software develops it, either with the computer scientists on its staff or by hiring a specialist IT company to develop it (Perens' "In-House and Contract"model).
Development cost
Of course, this way of developing the software that a company needs can be very expensive, and can lead to repeating parts of programming that have already been developed and could have been used.
In the last two models of development in Perens' classification, companies seek out other companies with which they can collaborate to develop the software they need.
3) In this model, the consortium develops a software that is not free (i.e. that will not be available to companies that do not participate in its development).
4) In the last model, the consortium companies develop free software, i.e. with a source code available to any other company, even if they are not involved in its development.
This offers the clear benefit of being able to take advantage of improvements in the community of programmers created around the project, thus reducing development costs.
Of course, the development of the free software will not be free to the consortium companies, which will need to finance an initial group of programmers. The danger of consortiums (both proprietary and for free software) is that there is a lack of leadership in the development of the project because no company wants to commit to guaranteeing its development, which creates a barrier to its implementation (either from the start or when successive developments generate new expenses).