My Journey in Software Engineering

16 Dec 2024

My Journey in Software Engineering

The Beginning

Coming into ICS 314, I didn’t really know much about software engineering. The only things I really knew relating to it, however, were front-end and back-end development. I had only a very basic understanding of what these terms meant, but not the specifics on what these aspects are about. For those who don’t know what these terms mean, front-end software development is everything you see on an application. UI, or user interface, and everything you interact with and see on a page or application is considered front-end. On the other hand, back-end is everything “behind the scenes”, or stuff that you can’t necessarily see but without it, nothing would really work. Although the course didn’t specifically talk about front/back-end development, I think I can see what parts from this course may classify as one of these developments.

UI (User Interface) Frameworks

One of the experiences we went over in this course was user interface frameworks. User interface frameworks are components on a page or application that allows users to interact with the application. For example, any buttons you see on a website page are part of user interface frameworks. Outside of web application development, this can definitely be used for projects not involving web applications because frameworks are the components used to allow people to interact with systems. Buttons built and used for machines can be seen as “frameworks” because they allow people to use the machines. For example, the buttons you see on ATM machines allow you to use these machines so you can deposit/withdraw money. Without them, you wouldn’t really be able to do anything or interact with the machines.

Agile Project Management

In ICS 314, we learned something called “agile project management”, which is a way of managing projects by breaking down the project into smaller tasks. These tasks are done in cycles, where after each cycle, the group will get feedback based on the progress they’ve made so far and use that feedback to improve their application. Tasks may be made up based on this feedback and the process repeats again until there is a final product. In this class, we had a final project that required our class to be broken up into teams. Each team was assigned a specific website prompt and had to design and create an application based on the prompt. Students were given about a month to work on the project with their teams, and were required to complete three milestones that would ultimately lead to the final product of their projects. This course specifically used a style of agile project management called “Issue Driven Project Management”. An issue driven project management is very similar to agile project management. Instead of having tasks, we had “issues”, which served as an issue that our application needed to be able to do. Each member had their own assigned issues that were to be completed by the time each milestone was due. After experiencing this style of project management, I can see myself using it for future projects not relatng to web design because it allows me to approach the problem of finishing a project by breaking it down into smaller tasks or issues for me to complete.

The End

While software engineering is hard, it is definitely an interesting field to look into for computer science. Not only have a learned more about the things software engineers have to go through, but I’ve also learned better ways of project/work management. Not only have I gained valuable skills that will benefit me as I continue my journey as a computer science student, but skills that may also benefit me outside of programming related projects.