Monday, January 20, 2014

FOSS Experiences and Reflections

For this blog post I was required to read The Cathedral and the Bazaar (Audio Version), which was written by Eric S. Raymond, a long time hacker who has been active in the Internet culture since the early 1970's. In this particular writing of Eric's, he talks about the two opposite types of software development styles: "The Cathedral" style, and "The Bazaar" style.

The Cathedral

 "The Cathedral" style of software development is based on propriety software and is the main style that big software companies use (e.g. Microsoft, IBM, and Apple). The name for this style is derived from how cathedrals are built, that is during construction, cathedrals are not open to the public and only hired architects and workers are allowed in. The designs and blueprints for the cathedral are drawn up pre-construction and are altered only slightly, if at ever, throughout the build. Once the the cathedral has been built, the public may come in and use the cathedral for its purpose, but cannot change how the cathedral looks or runs without being an employee of the cathedral's controlling authority.
Now you are probably wondering what this all has to deal with how companies develop proprietary software. Well if we describe the development environment of proprietary software by using analogues from the construction of a cathedral, then it will become readily apparent how these two are interrelated. When a major software development company goes about making a new piece of software they first layout the design and the requirements of the software itself through the use of the Unified Modeling Language (i.e. the blueprints). Then they select a team of their employees to build the software from the ground up (i.e.architects/workers). Only people within the company can work with and see the source code of the proprietary software, and they cannot show source code to others for help unless the other person is a part of the team and/or company. Once the designers have built the software up, testing is done within the company to polish the software furthermore before being released to the public. When the software is released, users (i.e. the public) can use the software for its intended purpose but cannot see the source code (let only change it), and because of this if a user finds a bug or some missing functionality, they must report it to the company instead of fixing it and sending the fix to the company, no matter how easy the bug may be to fix (i.e. change how the cathedral looks and runs).

The Bazaar

"The Bazaar" style of software development came about during the rise of the Free Software and Open Source movements. A bazaar in a traditional since is a marketplace where a wide variety of goods and services are exchanged. Anyone can come to a bazaar and set up their own shop to sell the wares and/or services to the rest of the people at the bazaar. open source projects have this similar style of environment when it comes to developing their software. Anyone can come work in the Open Source world and set up their own shops with their FOSS. If other people in the open source community like what you are working on, they will come and help you with your projects. If it doesn't draw enough attention at the start then you must polish the software more then release it again. Wether people are coming to help or you're working on it by yourself, you will need to constantly release updated versions of the software to the public so to gather more of a following and so your following can beta test the software to find more bugs to be fixed for the next release. Starting from scratch with a new FOSS is a good way to break into the "bazaar" of the open source world, but you can also find a FOSS (or multiple) already in the bazaar and use that software as a framework to build on and eventually release your own version of that FOSS. Strong social skills are also necessary in the open source world because unlike the proprietary world where all the developers are hired hands, with a FOSS project the developers working with it are all volunteers. So the project leader has to work with and not boss around the other developers as to not make them lose their interest in the FOSS.
                                                                                                                                                        

Revolution OS (2001)

This is a great documentary covering the rise of the Free Software and Open Source movements and has many famous faces being interviewed: Richard Stallman (developer of GNU), Linus Trovalds (creator of Linux), and Eric S. Raymond (the author of The Cathedral and The Bazaar).

Give it a watch if you have 90 minutes to spare for some great insight into the Open Source world!

No comments:

Post a Comment