Week 4 -- More on Addon Experience

In this week, we wrapped up the Web-extension project by giving presentations. Looking back, there is tons of take-aways from this experience, both for individual improvement as well as getting to know classmates and learning collaboration. It is also an experience triggering my interest in involving in communities to see more open source projects and to learn from more people.

From an individual level, I would say my biggest take-aways are getting in touch with a totally new programming language and having the courage to ask others for help.

Though I had a basic understanding of how a web-application would work, such as the communication between frontend and backend, I had no experience with Javascript. It is always fun but challenging to use a completely new language. I spent two days only reading other projects written in Javascript. It was extremely helpful to read other’s coding structure to gain an overall insight but start writing from the very basic. I tried to only modify Beastify at first, but I found some part of its code still confusing as I had no idea why it is there, and I couldn’t debug properly. It turned out later that building from the very beginning was more feasible. Another thing is to compare the code that we wrote ourselves to those mature project to see what was going wrong. I mainly used this tact to figure out the necessity of background script and asynchronous functions. And solving these two problems might be my biggest contribution to our team. It felt great seeing my effort helping the whole team to move forward.

At the same time, as mentioned in my last blog, I also asked someone working in an IT company doing frontend for help. As someone new to these concepts, I needed an expert to help me figure out the specific difference between background script and content script. Though by that time our team has noticed background script, our background was not functioning and it seemed there was few instruction online. I am not a person always having the courage to talk to strangers actually. But after I took up my courage and received really great help this time, I started thinking of actively getting in touch with other people and helping each other. I hope that I will keep trying this in the long-range future.

From a team’s perspective, I am also grateful that I have wonderful teammates and it’s true that I learned a lot from them. We communicated mostly via messages and we had two online meetings in addition. When we were not facing any obstacle, we split the work well. When there is a problem difficult to fix, like having no access to browser theme, we all worked on such problem so that the problem could be solved more quickly compared to only asking one person to do that. During collaboration, I learned elegant Javascript coding styles from Grace and I appreciated how Riya polished details when she modified our documentations.

Doing introspection, of course there are some potential improvement for teamwork. At first we didn’t have the habit of keeping a detailed live log. But actually writing log is crucial in terms of keeping what have been done and what to be done. It is a skill still needs practicing. Another potential improvement would be setting deadlines. We didn’t set strict deadlines this time. Considering this is a small project and everything was working on pace, it didn’t affect much. However, if this is a larger project, dividing work phase and assigning deadline would be certainly necessary.

During class, we also heard other teams’ presentations. It was inspiring that many teams were so careful in daily observation that they could find the inconvenience around us and come up with a solution. For example, I really like the Brightspace PDF Reader. It is a practically helpful tool. And I appreciate their ability for finding potential improvement in everyone’s life, which is also where many great technologies started from.

Written before or on February 19, 2023