Software Engineering is a Team Sport?

11 May 2022

In-Person Classes

This semester, I gained a much better understanding of how software development works and how we progress the the building procedure as a team, not just an individual assignment like in the previous semesters.

One major problem I faced in the beginning of the semester was switching to in person classes. It was my first time attending in-person classes in the Computer Science major and I was very much worried if I can keep up with the lectures and assignments. It felt like I was being tested if the skills we practiced in the previous ICS courses were actually in me. Despite the changes in the learning environment, everything went pretty smoothly. At the start of each module, the topic introduced seem nearly impossible to comprehend but by Thursday’s WOD (timed coding assignment/test), I was comfortable enough to complete it. Out of all the modules that we’ve gone through, the two most important topics in my opinion were the UI Frameworks and Open source software modules.

User Interface Frameworks

By utilizing User Interface Frameworks, we were able to create professional looking UIs with just few lines of simple code. We used semantic UI and it was our go to tool for designing our web applications throughout the course. At first, using semantic UI to me was like magical words that makes the application look better but it has to be typed in the right place in the right order. For example, I would be designing a header section for a web application and the items of the header won’t line properly so I would try to fix it by adding semantic UI keywords such as fitted, right aligned, borderless into the classnames for the code section. There were many times I ended up giving up after many tries and later find out that I was using the keyword “right aligned” when I needed to use “right”. Although the difficulties, I’m thankful for semantic UI for helping me design decent looking UI’s despite my lack of knowledge and experience in design and UI coding.

Open Source Software Development

I would say that this is the most important theme throughout the course and was implemented in all of our assignments in some way. As a software engineer most of the work gets done in teams, one needs to have at least some idea of how open source development works because of how efficient it lets us write build applications as groups of people. By having project to be open source, any or a selection of people have access to the code and are able to modify it freely. For our final project, we had a small version of a open software where we had 5 team members that had access to the same github repository to edit the code. We created a web application that organizes and introduces activities that can be done on Hawaii for new and incoming UH students. We used issue driven project management to organize the work as a team. An issue represents a certain task to implement or edit a portion of the exisiting code by creating branches off the master and merging it back into master once it is finished. This made the developing process go smoothly without any troubles such as someone overwriting someone else’s code.