Software Engineering and The Present Me

08 May 2022

Software Engineering and The Present Me

The young me would have never thought that the present me chose to do engineering as a career, a software engineer. It seems hard and out of my younger self’s character but now it seems more interesting and can be a fun career to pursue.

I have taken several classes on basic programming and even participated in different projects to improve my programming skills. However, there’s this one class that truly challenged my learning ability, coding skills, and even my project management skills.

ICS 314: Introduction to Software Engineering is a class I took during Spring 2022 which challenged my current programming skills and taught me so many skills that have helped me throughout the semester.

The Pedagogy

With the pedagogy called “Athletic Software Engineering” or ASE implemented in our coursework, I was able to survive the class in a way that I also understood the concepts and know how to apply these concepts in a project with a team of 4 other ICS 314 students. We also had those weekly Work out of the day (WOD), which truly challenged me, and even made me cry for not passing a couple of WODs. But I gradually understood what I needed to do and how I could perform better in class.

Coding cleaner and better

Coding for me can get messy and hard to understand which sometimes results in errors and a lot of debugging. In this class, I learned how important it is to implement coding standards. Coding standards improve the readability for anyone working on the code and detect and remove basic anti-patterns or coding mistakes. This requires a tool that enforces coding standards with automation, but for it to work, running the tool and fixing the errors are important parts that we, coders, need to do. I learned every language has a tool that we can use. In our case for this class, since we are using IntelliJ, there are already inbuilt tools that we have to set up, such as ESlint.

Learning how to implement coding standards to have a good quality code is very important. After learning more about its importance in class and implementing it in several activities, I would implement it in my projects.

The Agile Way

A topic that I truly liked in this course was Agile Project Management, which is one of the software development process models of work practices, tools, and techniques to develop software. Agile Project Management is continuous adaptive planning and requires continuous testing which is great for a short time project like ours in this class. Using this model, our team was able to continuously work on one task to another with rarely blocking the others while waiting for others to finish their tasks.

Other than it being something that I used frequently for our final project, it is also the topic that brought out the management skills that I never thought I could pull off and apply to our final project. I learned an agile project management skill called the Issue driven project management (IDPM) that helped me manage my team for our final project for ICS 314. This style allows us to divide the whole project into several small tasks specified by an Issue, organized in Milestones that have due dates, which are then represented by Project Boards. Through this style, we were also able to properly understand how to use Github and its other features, such as naming branches properly, merging our work to the main/master branch, and also using the project board and the kanban technique.

I see myself using agile project management in different projects since it does work well with how I work and it helps me work efficiently. Especially using the kanban technique which I already have been using for my work at KCC as the social media manager.

Conclusion

Overall, ICS 314 taught me so much not only about programming in javascript but how to program efficiently. The skills this class has taught me did change my learning process in a better way and I hope that I could implement them in my other projects in the future as a Software Engineer.