My ICS 314 Journey

09 Dec 2023

ICS 314 is a software engineering course at UH Manoa. This is the first course I have took involve team collaboration coding. I have learned a lot from this course especially in how to work as a team. This class has taught me experience with fundamental software engineering concepts and techniques.

Coding Standard

When working on a team project it is important to follow coding standards. Coding standards refer to a set of guidelines, rules, and conventions established with in development team to dictate the style, formatting, and the structure of code. It is aimed to ensure consistency, readability, maintainability, and reliability in software development. For example, commenting and documentation, code organization, naming convention, etc. This would save lots of time when you teammates are read and understand your code when they are trying to cooperate with the file you responsible with his/her file. This is crucial in all software development, not just web applications.

In desktop application development, coding standards play a crucial role. Clear and consistent coding practices aid in collaboration among developers working on different modules or components of the application. Additionally, they facilitate easier debugging and maintenance. They serve as a foundation for creating high-quality, understandable, and maintainable code across diverse projects and domains.

Agile Project Management

Agile Project Management is also important. Agile Project Management is an iterative and flexible approach to managing projects, emphasizing adaptability, collaboration, and customer feedback over rigid planning and sequential processes. At its core, Agile Project Management advocates for breaking down complex projects into smaller, manageable components known as iterations or sprints. These iterations involve short, focused work cycles where teams deliver small, functional portions of the overall project.

For example, Issue Driven Project Management, one of Agile Project Management style, isn’t tethered to web-centric projects either. By categorizing tasks as ‘issues’ and collaboratively resolving them, this approach proves invaluable in scenarios. In ICS 314, we have used this approach to manage our web application project. Where we created three project board columns: To Do, In Progress, and Done. We would create issues and assign them to the team member who is responsible for that issue. Then we would move the issue to the In Progress column. After the issue is done, we would move the issue to the Done column. This approach is very useful because it helps us to keep track of the progress of the project. It guide us to finish the project on time instead of procrastinating.

Not only can be used in web application development, Agile methodologies are also applicable in other software engineering domains. Like hardware development. Picture a hardware project that demands meticulous testing and continuous refinement. Embracing Agile, specifically Issue Driven Project Management, facilitates efficient tracking of hardware glitches, iterations, and enhancements. Teams can adeptly address malfunctions, design inadequacies, or performance hiccups, regardless of the software domain.

Many more skills

These are some of the concept I have learned from ICS 314. This course have also went over other fundamental software engineering concept include Ope Source Software Development, Configuration Management, Functional Programming, Development Environments, User Interface Management, Design Patterns, and Ethics in Software Engineering. I am glad that I have taken this course. I have learned a lot from this course. I will use these skills in the future. I will try to look for software engineer related internship with these valuable knowledge.