Reflecting on Software Engineering

07 May 2024

Introduction

As we near the end of the semester, and ICS 314, at UH Manoa, I can say that while it wasnʻt the easiest journey, I still have gained valuable skills that will come in handy in the future, even after I graduate from university. I never thought that I would ever see myself studying computer science. But as I finish the semester, I can see now that being part of this degree program isnʻt as daunting as I thought it would be. No rewarding journey is easy, but I can see the light at the end of the tunnel and learning about software engineering helped me see that light. There were a lot of topics that were covered in ICS 314. Looking at the syllabus at the beginning of the semester, I almost decided to switch out of ICS. But as I progressed into the course, I realized the work was doable with lots of effort and motivation. Some topics were frustrating at times but I have gained so many skills that I plan on using in the future like agile project management, coding standards, and ethical software engineering, to name a few.

Agile Project Management

One of the main skills needed for a software engineering project and beyond is being able to use agile project management and the ability to work effectively with a team. For our group project, we had utilized Issue Driven Project Management (IDPM), which is a process within agile project management. This process offers an organized and collaborative way to tackle our final group project. Though my group found complications merging our work to main on GitHub, we quickly adapted well to this process as the project progressed. It also helped to document each team memberʻs task so everyone is kept in the loop and everyone knows what people are working on. Though IDPM is an approach that works well for smaller groups, I can see how my newly learned agile project management skills will become useful in the future. Software engineering involves a lot of teamwork and theses skills will ensure that there are little to no issues that arise.

Coding Standards

Software engineering is like writing an essay or learning a new language. There are grammatical, vocabulary, and sturctural rules everyone must follow in order to ensure clarity, consistency, and quality. It is like an art on communication. Software engineering is the same way. In any code that someone may write, there must contain cosistency and readability in order for all software engineers to be able to read the code. This is especially important when working on a team which all software engineers must do. At first, I had some level of annoyance trying to learn coding standards, getting errors for wrong indentation or not following ESLint rules. But as I progressed, I found my codes to be more organized, readable, dare I say, prettier when following universal coding standards. I am just starting out in my software engineering journey, but I fully believe that coding standards are a skill that I will need as I progress in my academic journey and beyond.

Ethics in Software Engineering

Technology is and continues to grow into one of the most important and impactful aspects of everyoneʻs lives. For myself, growing up with the internet, I canʻt picture a life without technology. Now more than ever, itʻs important to remember that though technology as a whole has had a generally postive impact in our lives, there are still aspects that can hurt people. There are many ethical issues in software engineering that should be considered, like privacy, security, and even societal impact. In software engineering, as well as all aspects of life, itʻs important to go forth with the skills and knowledge needed to make ethical and informed decisions in both our academic and professional careers as anything we do can have a positive or negative impact on others.

Conclusion

As I end the beginning of my journey in software engineering, I will continue on in my studies with valuable skills and knowledge that I will need in future classes and even more professional roles. Agile project management, teamwork, and ethics are all skills that I plan on utilizing in the future. A combination of these skills and many more will ensure my success in my career.