Getting a taste of Software Engineering
20 Dec 2024
Software Engineering: Taking a Stab at it Once More
ICS 414 is a class at UH Manoa that is all about utilizing Software Engineering skills. The class before ICS 414 is ICS 314, which is all about learning those Software Engineering skills.
I took ICS 314 in the past, so I decided to take ICS 414 as I liked the experience of ICS 314 and thought it would be great because I would be joining a class that would offer a similar experience,
with the exception of now working with an actual client; one excelent aspect of the class. From the beginning of the class, it did not feel too bad because it was more or less the same.
But as the class went on further the class shifted to something more than I could chew.
Introducing a Problem and Meeting with Clients
As mentioned previously, this class offered an opportunity to work with an actual client. After a brief introduction of themselves,
we were assigned to produce a program similar to a balance sheet that is capable to input new data and visualize data through
seeing all the data points and seeing all the data in different formats like graphs. At first this didn’t seem too bad, and we were even provided a guide that went through all the
math to be implemented. Throughout the class, as a group, we were able to slowly chip away at fully understanding it, not without troubles of how exactly we would implement it.
The Troubles of the Design Process and Learning from it
ICS 414 was a lot harder than the previous ICS 314 class. In this class I have come across 3 main concepts that I have decided to learn from.
- First, even though I thought I performed good in ICS 314, my knowledge didn’t retain as much as I thought, resulting in a performance in this class
that I think could have been a lot better. This class reminded me of keeping up with what I learn and making sure I review the concepts. Just like any skill, you need to hone it day to day, and while I’m not entirely sure how I would
like to apply my Computer Science knowledge, if I were to continue to pursue Software Engineering, practice makes better, but never perfect.
- Second, I also learned the importance of leadership and teamwork, especially in the setting of making software.
For one, leadership is important because you have one or a part of the group that takes initiative to coordinate actions of the group. Having everyone be part of the leadership, in my opinion, leads
to the group getting nowhere, so having someone, or even shifting leadership from week to week, would possibly lead to better performance of a group. Along those lines, teamwork/communication does make the dream work, with being aware
of the situation of my fellow teammmates made it easier to gauge what we could do from week to week. Without proper communication and teamwork, just like improper leadership, the project goes nowhere.
- Lastly, it is important to understand/temper limitations/expectations. With this class, as a group, we all had these ideas that we wanted to implement for our project. With those ideas, we had a motivation for the project for how we
wanted to see our final project. While nice, I believe this led to a pitfall for the project, as we are students that have other responsibilities besides this class so our attention was spread to other things besides this project.
We have also overestimated our ability for this toolkit for the project, so we spent more time reacclimating ourselves rather than making progress towards the project. Both of these factors combined with a rather complex problem
space, led to some trouble in producing the software.
Lessons Learned
While there were many challenges with ICS 414, I believe that this class was still a good experience. Learning from mistakes makes for great growth, so hopefully I can leave this class with learnt skills/knowledge that I can take with
me in my future endeavors.