In Eric S. Raymond's The Cathedral and the Bazaar, he discusses the idea of the "cathedral model" of software development and the "bazaar model" that opposes it. The cathedral model to Raymond is marked by meticulous planning, controlled management, and limited input from outsiders. In the same way that a cathedral is not opened until it is stable and refined, the code crafting process is the same for this method. The bazaar model, on the other and, resembles a marketplace, allowing for rapid and incremental improvements, as seen in today's open source projects. The models themselves here are in opposition as two sizes of a spectrum of ways to conduct code development, but I do not think they are mutually exclusive ideas.
Both cathedrals and marketplaces are beautiful parts of the way the world operates today. Cathedrals mark hard work and dedication and a final product to marvel for years. Marketplaces highlight the lively, chaotic exchanges of goods and services, constantly bringing new items to the public. These models are both good for different end goals. I believe they can work side by side or together in the continuation of code development. What that could look like is having open-source projects that somehow incorporate more structure or final products. Overall, however, I think the open-source model, aligned most with Raymond's bazaar model, will continue to grow in popularity as the future of software development.
Personally, I have not contributed to much open-source work (though I am excited to in our next project) and most of the work I have done has been school projects, research, or my summer internship work which was more research focused. Nonetheless, Raymond's messages still held true for me, and many stuck with me. Specifically, the principle (#4) that, "If you have the right attitude, interesting problems will find you" and (#12) that, "Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong". I like how the first one I noted here connects back to the idea of having meaning behind what you are working on, and how care in the solutions makes for much more productivity. I also like the second principle here because it made me chuckle at all the "whiteboard" moments with friends and group projects of realizing better or more correct ways to solve a problem. I think this one is good because it implies the importance of open-source work and being able to get and give feedback immediately and often.
I also think there is a lot of merit to the sixth and seventh principles Raymond discusses, that "Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging" and that one should "Release early. Release often. And listen to your customers." In our recent group project for the Bar Buddy app, I sent it to some friends early on for feedback, and that was the best way that I found we improved it: from hearing people's first responses. I also think that a focus on the user, alongside frequent releases, keeps the end result in mind and allows for more direct short term goals. This I really value in a project and therefore see myself enjoying working on open-source projects. Again, I think both the cathedral model and the bazaar model can coexist, but I do believe that the open-source bazaar model is here to stay and will undoubtedly be the future of software development.
コメント