Free Software Development Model: The Cathedral and the Bazaar

Free Software Development Model

Free Software Development Model

The Cathedral and the Bazaar is a manifest type document developed by Eric S. Raymond in the year 1.998 to try to explain from his own perspective and experience (Fetchmail Development) what he understood about the successful creation and evolution of Linux and its related programs, especially from the perspective of the difference between the Software Development Models, which he personally called: the Cathedral Model and the Bazaar Model.

And in this publication, we will provide an analysis and summary of said manifesto so popular among the developers of the Free Software Movement. Which is available freely and accessible in many parts of the web, but that can be downloaded from the following web link to access it more quickly: The Cathedral and the Bazaar.

Introduction to the Cathedral and the Bazaar

INTRODUCTION

Said material «The Cathedral and the Bazaar» presents us with the vision that within the world of Software Engineering there are “two completely different styles of development, the cathedral model, applicable to most of the developments made in the world of commercial software, compared to the bazaar model, more typical of the Linux world ”.

Emphasizing that these 2 models are derived from opposite starting points on the nature of the software debugging process, and of his particular theory about what he called Linus's Law which stated the following: "Given a sufficient number of eyes, all errors are irrelevant" or in other words: "With a sufficient number of eyes, all errors they are trifles ”.

And it emphasizes the word Hacker, which in my opinion the author expressed as a kind of high-level User capable of understanding and efficiently exploiting a program, and to detect, suggest or implement corrections or modifications of efficient form and substance for the entire user community.

In other literatures, this word or concept called Hacker refers to:

«an expert, passionate about a certain subject area, especially the technological area, and whose purpose is to take advantage of this knowledge for benign purposes. It is that person, usually a professional in an area of ​​knowledge, who is passionate about knowledge, discovering and learning new things and understanding how they work, reaching the point of improving it with effective suggestions and proposals, and always with the intention of share knowledge or avoid a failure or malfunction of the object of study.

Which is a more universal and real concept, since there are "Hackers" in all areas of human knowledge.

Premises in the Development of Free Software

DEVELOPMENT

Of the many who have read such material, surely there will be a large number who will agree that the idea that "Linux is subversive" is clearly expressed there. But why?

Because until that moment there was a multiplicity of standardized Software Development methods or models based on a “more centralized and planned approach from the beginning” Because the act of creating Software was taken as something associated with something that leads to "a certain critical complexity."

And that despite the fact that the Unix world already existed, consisting of small tools, rapid prototyping and evolutionary programming, The emergence of the Free Software development philosophy under Linux took the matter to another level of sophistication.

While In the world of Private Software Development it was done in a "silent and reverent way", just as a Cathedral is built, in the World of Free Software Development (Linux) it was done in a "boisterous way and with multiple agendas (paths) and approaches (proposals)", just as you were in a great bazaar.

This great manifesto gives us several premises to condense the ideas expressed there, in terms of the Free Software Development Model, which are:

Premise 1: The Cathedral and the Bazaar

PREMISE # 1

ALL GOOD JOBS IN SOFTWARE BEGINS TRYING TO PLEASE A DEVELOPER'S PERSONAL PROBLEM.

Which is an undeniable reality because Many of those who work in Free Software Development usually start due to the need to solve a personal problem or that of a collective or group, or to optimize a process already executed in a slower and / or repetitive way, which often becomes exhausting and / or boring for those who participate in it, trying to maximize the time and efforts of those involved.

Premise 2: The Cathedral and the Bazaar

PREMISE # 2

GOOD PROGRAMMERS KNOW WHAT TO WRITE. THE GREATEST KNOW WHAT TO REWRITE AND REUSE.

Any programmer knows that starting from scratch is nothing bad or unnecessary, when it comes to developing a program or application. However, for many who are starting and for others already knowledgeable in the matter, it is well known that sometimes "Inventing the Wheel" again is not very efficient, but it is better to just optimize it and adapt it to your own needs. In other words, it is better to rewrite and assimilate as much code as possible from other experts in the field that concerns us to solve our own software development.

Premise 3: The Cathedral and the Bazaar

PREMISE # 3

"THINK ABOUT THROWING OUT AT LEAST ONE - YOU WILL END UP DOING IT ANYWAY."

A good Software Developer must know how to listen in detail to what the users of their developments say or suggest or propose, since a program that is already functional, can still become something very big, despite being functional, something that loses the north, a functional monster that does everything for everyone, and in turn something not pleasant. So listening to go back to the roots, win back lost users, add new functionalities, remove unnecessary ones, make the program smaller, more specific and general, is always a good practice.

Premise 4: The Cathedral and the Bazaar

PREMISE # 4

IF YOU HAVE THE RIGHT ATTITUDE, INTERESTING PROBLEMS WILL FIND YOU.

A good change in attitude and on time can mean a radical change for each programmer or software developer in their current or new developments that in turn mean new advantages of time, money or comfort for the users of their products. Be on the lookout for innovative ways to solve problems that are presenting themselves in a good symptom in the right direction.

Premise 5: The Cathedral and the Bazaar

PREMISE # 5

WHEN A PROGRAM IS NO LONGER INTERESTING YOU, YOUR LAST DUTY IS TO PASS IT ON TO A COMPETENT SUCCESSOR.

For many programmers or software developers, as well as for other technologists, it is not uncommon to want to dedicate new time to new projects. But in the world of Free Software the premise is to pass the baton, there are others who would like to continue with the development of their already abandoned products, for which they must allow anyone to hack (improve) the program for themselves or for the benefit of the community users of the program.

Premise 6: The Cathedral and the Bazaar

PREMISE # 6

TREATING YOUR USERS AS COLLABORATORS IS THE LESS COMPLICATED WAY TO RAPIDLY IMPROVE AND EFFECTIVELY DEBUG A PROGRAM.

As "free" is often interpreted as "free" in the development of Free Software, many programmers tend to group together to avoid unpaid wear and tear by allying with other developers or advanced users of their developments, to continue them or for others to continue them , in exchange for receiving "credits" in the development of future code innovations and ensuring that future developments formally include some licensing, to avoid misuse of it.

Premise 7: The Cathedral and the Bazaar

PREMISE # 7

RELEASE IT SOON. LAUNCH IT OFTEN. AND LISTEN TO YOUR USERS.

Unlike in the world of proprietary software development, in free software it is often the case that much and fast is better. Since the broad base of users and developers who usually use and develop a program in the community and in turn interact with each other, to communicate their doubts, suggestions, proposals, complaints and / or claims, can become a valuable source of knowledge to rapidly evolve a program towards mature stages of development.

Premise 8: The Cathedral and the Bazaar

PREMISE # 8

GIVEN A WIDE ENOUGH BASE OF TESTERS AND COLLABORATORS, ALMOST ALL PROBLEMS WILL BE IDENTIFIED QUICKLY AND THEIR SOLUTION WILL BE OBVIOUS TO SOMEONE.

The material ends by making the reader conclude, many times that the Software Development Method based on the Bazaar Model, is very effective. Because the more power, freedom or knowledge a Software Developer provides Users about their program, the more they can contribute ingenious ideas or useful changes, just for the purpose of collective benefit.

And this is pleasantly expressed in the following excerpt from the material:

"This is, I think, the fundamental difference between the cathedral and bazaar styles. According to the way a cathedral looks at programming, mistakes and development problems are insidious, deep and twisted phenomena. It takes months of scrutiny by a small number of dedicated people to be confident that they have been removed. Hence the long periods required for the release of new versions, and the inevitable disappointment experienced when those that have been waited for so long are not perfect.

In light of the bazaar model, however, it is assumed that errors are normally minor matters or, at least, that they will become such rather quickly once they are exposed to the eager eyes of a few thousand dedicated collaborators to put the right and upside down each new version. So you keep releasing versions frequently to get even more fixes, and as a beneficial side effect you have less to lose if you mess up every now and then. "

Conclusions: The Cathedral and the Bazaar

CONCLUSION

Personally, my little experience in the field of Free Software Development under the Bazaar-type Model leaves me the following conclusions:

  • Users should be treated as an invaluable resource, and in the best of cases as invaluable allies for their collaboration in the development of the product.
  • Every idea is good or worth exploring, since sometimes the least suspected can be a great solution or improvement for development.
  • It is good or probable that the original idea divides, expands or moves away from the original concept, but what is important is how focused one must be in terms of the type of user market that you want to serve, serve or help.
  • In order to be efficient and avoid loss of effort due to dispersion.
  • The best is a small, direct, simple, but efficient code that manages to be appreciated by the community as correct.
  • A program is already mature for the Community of users, when there is nothing more to eliminate, since adding is always a good possibility to take into account.
  • Any program can be used (in part or in whole) to be reused in functions that were not originally conceived.
  • All Software must carry its respective licensing and security measures for the confidentiality of the use of the user's Data.
  • It is not necessary to start from scratch, someone has always developed something similar to our conceived idea.
  • You must work on something that you like, you must feel passion for the development to which you will dedicate yourself in Free Software in order to generate internally a sense of union with what is elaborated, without reaching the extreme of developing a sense of ownership over it .
  • There must be excellent and frequent means of communication between Developers and Users (Collaborators), so that work flows quickly and changes effectively.

I hope you liked and found this information useful, since the Reading of "The Cathedral and the Bazaar" is a mandatory reference for all those who program any Free Software Development, no matter how big or small.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   naciiboy said

    nice summary / opinion, I would only take away so much image of «monitor with code» that it does not come to account for anything

    1.    Linux PostInstall said

      I found them appropriate for the issue of Systems Development, and it would no longer be correct to remove them but thank you for your observation!

  2.   BAYRON said

    Excellent summary and analogy.

    1.    Linux PostInstall said

      Thank you Bayron for your nice and positive comment.

  3.   Eduardo from Trinidad said

    Nice try, congratulations on this momentous notice. I believe that "In the kingdom of God" EVERYTHING IS (WILL BE) Free and Free ... otherwise the developers will continue to be martyred or crucified by subversives, by those who do not understand or do not want to understand that we must "give to Caesar what belongs to Caesar… and to God what belongs to God »… Gratuity (FREE) is divine in nature like the sunlight or the air you breathe… Freedom is necessary, but currently it is corrupted by the MARKET of miseries like proprietary software.

    1.    Linux PostInstall said

      Greetings, Eduardo de Trinidad. Thank you for your comment and contribution.