Week 13 The Cathedral and the Bazaar Lessons and Group Progress

  • During the discussion and hearing other students thoughts on some of the lessons definitely did change my views on some of the lessons and also my favorite lesson. My favorite lesson (also the most voted for one) was “Good programmers know what to write. Great ones know what to rewrite (and reuse).” and I think it really interesting in class that someone mentioned how Open Source applies to this. Originally, I was just thinking about functional or even object oriented programming, where you do not want to create too much repetition through abstraction, inheritance etc.. But come to think about it as a programmer you almost always rely on someone else’s (open source) code too as they probably did it better than you. In a sense, high level languages built upon lower level languages are also using this principle when you use a high level language like python. Why rewrite say a framework like React.js when you can just use React which is definitely better maintained than anything you can come up with in your limited timeframe. Reusing things is great especially when it is something that is already made and used by millions of other people which is literally what open source is for.

  • The other quote that I found almost a bit more compelling after discussing it in class was “When you lose interest in a program, your last duty to it is to hand it off to a competent successor.” which I often think about as I have so many projects that just get left or abadoned by me. I think for an open source project especially, the main contributor should find a successor as remove themself as the benevolent dictator of the project as we want to let that project continue (especially if a community was built around it). I think it would be unfair to people that actually use it and just completely let it go. So perhaps finding a sucessor is a good idea for bigger more successful projects if the original contributor wants to quit.

  • In terms of group work, we finally made finished one of contributions and submitted a close to done PR draft for P5.js’s 2.0. It was an expanded implmentation on their keyDown feature that a member of the community suggested. All four of us worked on the fork so it was really cool. Personally, I’ve submitted another bug fix PR that took me a while to figure out and we did get a merge in for translations. The code ones are awaiting review from a main contribtor. I guess the biggest challenge still as a group to overcome is delegating the right tasks to everyone. We did essentially a programming sprint on Friday, one of our meeting days, for that big 2.0 PR implementation and we kind of switched roles a bit around the team because I felt like that worked better as we worked as opposed to the initially selected roles from unit testing to documentation to actually writing the implementation. But I feel like thats a minor enough issue that just takes time (given that we only have 2 months together to work on this project). Personally, the biggest challenge I still need to overcome is probably understanding these large codebases of open source projects a lot better and faster. I guess p5 is a good experience in that it’s not too big and too crazy but big enough to help me get acclimated to that if I decide to contribute to open-source on bigger projects in the future.

Written before or on April 21, 2024