Week 4 - Reflecting on the Firefox Add-on Project

My open source Firefox add-on project YouTube Interface Customizer is finally completed this week through the collboration with my team. I learned a lot from this process, and also from the presentation of other teams.

Reflecting on My Group

Working with others is completely different from working alone on a project, especially when the development team members have different schedule. Communication is a large obstacle, and responses are often delayed. However, I think my team tackled this issue quite well. We had many meetings to discuss each other’s progress, and to assign future work, which is much more efficient than communicating only through messages.

Moreover, we had clear job distribution. Since both my teammates are very occupied during the week, and bearing in mind that we should always start early to make a successful project, I handled the work on building up a framework for the project as well as adding some basic features. @rufaida99-k was responsible for aesthetic issues, adding more features, and preparing for the presentation. @Shenghan0329, @rufaida99-k was responsible for adding more features as well, and moreover he worked on the README.md and CONTRIBUTING.md files. Such a clear job distribution led to the smooth progress of our project.

Reflecting on Myself

As previously mentioned, I was mainly responsible for the coding part of this project. From the very basic framework, to the layout of the popup window, and to the various features of our project, I made contributions in each of these parts. I have learned a lot from this process. First of all, I’ve learnt about Javascript (I did not know a bit about Javascript before T_T). I read a lot of Javascript documentations and Mozilla documents whenever I ran into a problem. If I met bugs that I could not solve in a short time, I would leave it later so that it wouldn’t affect other aspects of the development. Secondly, I learned about how to write documentations for an open source project. Though I was not responsible for the initial creation of these documents, I revised them and created the documentation website. I realized that understanding the project myself is one thing, but making users understand how to install, use, contribute, etc. is another thing. A successful project is inseparable from deliberately written documents, and I will keep on working on them in the future.

Finally it was about collaborating with my teammates. I have to say that I didn’t do really well. Though I made a lot of contributions and had meetings with the team, I should have updated my progress more often and more in detail with the team. I only introduced what features I had added in each meeting, but then my teammates would have to read through my tons of code to see how to add to it, especially since I was not familiar with Javascript so the coding style is a bit messy. As a result, my teammates were not able to make much code contribution, which I believe is my fault. In the future if I’m again the one to build up the framework, I will make sure that I add more comments in the code to make it comprehensible, and introduce the code structure to my teammates more in detail.

Learning from Other Teams

One of the add-on projects that I liked is the Brightspace_Pdf_Viewer made by Team 6. It was actually a pretty simple project, but it is really helpful. Compared to my project, though it does not have that many fancy features, it is something that really tackles the pain point of Brightspace and that I may really use during browsing. It makes me realize that sometimes the number of supported features is not the only issue to think about when doing a project, but a great idea in the first place is even more important. For my future projects, I will definitely brainstorm with my team to come up with more ideas to choose from.

Aside from the project code, I was quite impressed my the modifications to the Code of Conduct of TabColor made by Team 8. While most teams, including my team, directed adapted the Code of Conduct document from some version of Contributor Covenant, Team 8 made it more suitable for a small community. Given that the add-on projects are indeed small projects, I think those modifications are indeed reasonable.

I cannot mention all the teams due to the limitation of space, but I did scanned through all the repositories. The instructions and guidelines are deliberately designed and easy to follow, and the add-ons are usable as are claimed in their README.md documents.

Summary

I have talked about my reflection on the team work and on my own contributions during the Firefox add-on project. I have tried the add-ons of all the teams and mentioned some of them that left me deep impression. Finally, thank you very much for your meticulous reading and hope you enjoy it.

Written before or on February 19, 2023