Monday, March 17, 2008

The Cathedral and the Bazaar

What does Raymond mean by the 'cathedral' and the 'bazaar' style of software development?

A 'cathedral' style is based on a skilled individual or a small group privately developing software, without releasing it before it is completed and ready.
With 'bazaar' style, the software is released early and often and different approaches are taken by different people to develop the software; those submissions form a single stable system.

According to Raymond, what is necessary for a successful bazaar-style project?

A successful bazaar-style project starts with a base program that was written by the will of a skilled individual developer that understands certain key ideas like, it is better to start from a good partial solution from nothing and be ready to start over if needed. It is also important to treat your users like your co-developers as they are a good source of quick code-improvement and effective debugging. By releasing early and often, the new software and its updates can be 'tested' by your 'co-developers' and they can give you new feedback.

Do you think Raymond's characterization of these styles of development is accurate? Why or why not?

I think Raymond's characterization of these styles of development is accurate as with 'cathedral' style software development, which is closed source there is a small group of working togther towards a single direction while with 'bazaar' style of software development it is open source, where different people can input their various code for different improvements.

In your opinion, what sorts of projects tend to be successful open-source projects? What is it about them that causes this?

Projects that are not specialized and can be flexible are best for open-source projects. Developing software is also prime to be open source as being open source will help them penetrate the market; they are able to become established and gain a competitive edge, as users, 'co-developers', would feel empowered and a sense of ownership from the resulting product.

In your opinion, what sorts of projects are better suited for commercial development? Why is this?

Projects that are complicated and specialized like Photoshop or many games would be very difficult to complete through open-source projects. Projects may also have a certain reputation and standard which must be upheld, like how great the first version of a software or how good the first game was, which is best kept up through commercial development.