CatB Write-Up
Our assignment for Friday is to finish reading the Cathedral and the Bazaar essay in ESR's book, The Cathedral and The Bazaar. Then we have to summarize the key points in a short review of the paper comparing and contrasting the views expressed in the Times articles about open source software with those of Eric Raymond's. We also need to provide our own thoughts.
ESR's book, The Cathedral & The Bazaar, has started conversations about Open Source Software that see both its pros and cons in the software engineering field. In his first essay of the book, also called The Cathedral and The Bazaar, he us tells about his experience with an Open Source project and what he has learned that needs to be passed on to others. Software engineering has been around for quite some time but OSS has introduced some new techniques. These not only work but sometimes are better techniques than its predecessor. In the Times article by Steve Lohr, his quote about OSS is that this "seems to be a radical approach" but admits that it is moving into the mainstream. The first development style that I am referring to is the Cathedral model and this radical development style is called the Bazaar model. We all know that the Cathedral model exists when a group of programmers are put into a office somewhere, working on code and in complete isolation from anyone else. The Bazaar on the other hand doesn't thrive on programmers even being in the same building or city. The Internet makes it possible for programmers to communicate with each other by releasing their software early and giving as much information about the source as possible. This method delivers high quality software in an efficient about of time that can blow away the previous method in both quality and time of completion.
ESR listed 19 keys to a successful Open Source Project which I will summarize some of them. The first and maybe the most essential part to starting a project is that this must be an area that you are passionate about working on. It is very easy for a person to find a project that is reasonable to work on but is not of any interest to that person. When this occurs it is possible for someone to lose interest early or to produce something that is less of less quality than what they are capable of completing. ESR's interest at that time happened to be checking his email. Let's move on to thinking about a couple of programming techniques. We all know that once we have spent time studying code and working on changes we are more knowledgeable about the software than before we started. Keeping this in mind, ESR believes that one quality of a good programmer is that they are willing to throw the program away, start fresh and build from the ideas that they implemented in the previous program. The other technique that is important and can also be very valuable is to reuse code that already exists. This is not used to take the easy way through a project, rather it is to provide more time on other parts of the project that are require more time because they are difficult. Certain pieces of well know code exists that we all know have been done quite well before such as ftp or pop servers. If I need to add this feature to my piece of software wouldn't it be more efficient to just use one that already exists rather than spending time on my own version? The Bazaar model is also more efficient at finding bugs and fixing them in a timely and proper fashion. The number of people that find bugs in software is far greater than what any single person or group of people could find in any amount of time. Therefore, wouldn't it be beneficial to treat users as co-developers to our own projects by listing to their problems. Once a problem is found it can be posted and fixed by any number of people because the source code is available. This in turn earns the respect of your users because their problems will be fixed and a download will be available to get rid of the problem. Users are not just used to find bugs though. I know that when I use software there are certain capabilities that I do not feel like it can do. It would be nice if I had the availability to go to a web page and post my thoughts with the confidence that someone would listen.
The benefits of OSS outweigh the benefits of the Cathedral model once you start looking at some of these ideas. One concern of people that are against OSS is this model takes away from the money that is made in the software industry. This is not true if you look at it from the point of view that Steve Lohr sees in his article. The idea is that money can be made from the installation and support of the software. This gives users more for their money and provides a reasonable method for programmers to afford it. I think that this is really what people have been asking for all along and will ask for in the future. ESR, Lohr and the others that were quoted in the Times article all realize that OSS is not the answer in all situations. This should just be another development style that programmers take advantage of to provide for their users. After all, that is who we should really be concerned with.