In this section I will identify some tentative challenges and constraints of the FLOSS process. This I have identified from reading about FLOSS and from talking to different people. I do not have any references on this and it is only my opinion, based on direct and vicarious experiences.
One of the greater challenges meeting FLOSS at this time is the limited focus given the end user experience, or wrapping if you will. For many commercial products the wrapping is one of the most important elements, if not the most, that need to be in place in order to sell. The wrapping is the first thing a user sees, and first impression is important. Many hacker dislike “bells and whistles” which is functionally unnecessary but visual pleasing. Hackers often prefer the command line, and some even look at GUIs with a certain antipathy. I do not think this is a limitation in the FLOSS process. FLOSS have just recently come to a level of maturity where it is meaningful to focus on end user experience. Now that there are tools available to work with image processing and good libraries to build GUIs, and more people are aware of FLOSS, people who have an eye for esthetic qualities can be attracted to contribute.
Everybody, even FLOSS developers, needs to earn a living. Before anybody is willing to contribute for no monetary benefit they have to have food on the table and be able to pay their bills. When a developer has to prioritise his time, voluntary labor will most likely loose to labor the developer are paid to do. Some FLOSS developers are payed for their work, this frees the developer’s time, but most developers are not. Getting large contributions from companies, or being hired by a company to work on a FLOSS project, can free a developer’s time. This can unfortunately create conflict of interest between commercial interests and the interest of non-commercial users or user-developers. Projects run into the danger of being co-opted by commercial interests.
Free-riding, where someone use the software but never contribute back, is not a problem if the free-rider is an individual user. To have many users, contributing or not, is an asset to a FLOSS project. Except for download bandwidth, it cost no more for a project to have ten thousand compared to one million users. A large user base creates a positive network effect where the users do marketing for the software, and they do support by helping their friends. For commercial user making good money from FLOSS the question of free-riding is different. This is the primary reason for the “viral” clause in the GLP license.
A majority of FLOSS projects are small and a lot of effort is “waisted” on marginal projects. Because this is done voluntarily it has no monetary cost. If the time spent on coding a piece of code that never came into active use were to be given monetary cost my guess is that the “losses” would amount to a lot of money. In a proprietary setting there is also much waisted effort, but here it cost money which is an incentive for management to avoid waisted effort. In a FLOSS setting efforts cost time which is an incentive for the developer to avoid waisted efforts.
FLOSS do not have the marketing power of large corporations1 and FLOSS do not have the same distribution network as conventional merchandises have. The most important distribution channel for FLOSS is the Internet, and the most important marketing channels is the Internet and the users. Linux distributions like RedHat and SuSe bundles Linux and a lot of other FLOSS programs and sells it through conventional distribution channels, but they are the exception and you are not likely to find them in a software shop in Africa. To effective use FLOSS a descent Internet connection is almost2 required. There is also a lack of support from the hardware industry. Many hardware producers are reluctant to provide drivers to Linux and even more reluctant to release them under a FLOSS license.
One result of the FLOSS process which is an advantage as the same time as it is a disadvantage is the number of choices available to users. To be able to chose is generally a good thing, but choices requires some effort to obtain the knowledge needed to make a good decision. It takes time to get a general overview of the FLOSS scene. There is a bewildering number of choices. Take for example the number of Linux distributions. For those who have a passion for programming and computers this can be an acceptable cost. For those who use the computer only to get the job done I suppose it can be more appealing to just have one choice, which is just good enough. One appealing aspect of the one-choice approach which Microsoft offer is the freedom from the burden of having to choose. There is business opportunities in offering this same safety by acting as a proxy for FLOSS software, like Linux distributions are sort of doing, and some consultancy firms are doing for business customers. Still there is a great many Linux distributions and consultancy firms to choose from.
US Patent laws create legal headaches for Linux distribution because they risk being sued if they bundle software which violate a patent. Lawyers earns good money on patent issues because patents is so open to interpretation. In the US you can file software patents (on a algorithm or process), in Europe you cannot do this. Linux distributions generally want to distribute their distribution to the US and have to be sensitive to US patent laws. This is the reason why some software is not bundled on the regular CD, but have to be downloaded separately from the Internet. The patent issue chiefly affect multimedia applications because of patents on compression/decompression algorithms.