Week 13
Cathedral Model vs Bazaar Model
According to Eric S. Raymond in his book The Cathedral and the Bazaar, free software development follows one of two different models: the cathedral model or the bazaar model.
In the cathedral model, the source code of a software is made available to the public after each release, but during development (between releases), the code is only available to some software developers. Examples of software whose development follows the cathedral model are GNU Emacs and GCC.
In the bazaar model, the source code of a software is always made available to the public, and unlike in the cathedral model, the code is developed by the public over the internet. Examples of software whose development follows the bazaar model are the Linux kernel and the project my team is working on, freeCodeCamp.
After having spent some time in the bazaar style of development, I personally prefer the bazaar model over the cathedral model. As Raymond states in his book, “given enough eyeballs, all bugs are shallow.” I completely agree with him on this - from personal experience, I’ve seen and reaped the benefits of having other people on a project find and fix bugs that I first missed when I wrote some code. It is also great to have multiple perspectives on a project because more ideas are generated that way (as the saying goes, “more heads are better than one”).
Summary of course-related activity
Friday, April 26
No class.
Tuesday, April 30
We discussed advanced Git workflow techniques such as merging and rebasing, as well as collaboration workflow basics. We then started an activity to practice complex collaboration workflows on GitHub.
Contributions
I closed the pull request from last week (here) since it was open for about two weeks, and I already had more changes since then. I then created a new pull request (here) that combined those changes with the work from my previous pull request. Now I just have to wait and hope that my new pull request gets merged. Until then, I am planning on adding more JavaScript guide articles that are missing from freeCodeCamp.