Agile and Organized: My Journey in Software Engineering

18 Dec 2024

Reflection on Software Engineering

Introduction

Through the Final Project of ICS 314, I was able to learn not only how to develop web applications but also the fundamental concepts of software engineering. The project I participated in aimed to create a webpage that allows musicians on the UH Manoa campus to network easily. During this process, I had the opportunity to practice various software engineering concepts through collaboration with my team members. In this essay, I would like to share my experiences with Agile Project Management and Configuration Management during this project.

Agile Project Management

Brief Explanation of Agile Project Management

Agile Project Management is a project management approach where development is divided into smaller, manageable units and continuously improved through short iterations. It focuses on flexibility and incremental progress.

Application of Agile Project Management

Before developing the Musicians of Manoa application, our project was divided into three milestones: Milestone 1, Milestone 2, and Milestone 3. These three development cycles allowed us to divide the application implementation into multiple parts that were distributed among the team members. For example:

Additionally, at the end of each milestone, we reviewed the overall design and development process to identify areas for improvement or additional features. This iterative process significantly contributed to tracking progress and increasing work efficiency.

Applications Beyond Web Development

Agile Project Management can be applied not only to web development but also to various tasks and even personal life. For instance:

Configuration Management

Brief Explanation of Configuration Management

Configuration Management is a process for systematically tracking and managing changes to source code, documents, and configuration files. This is typically achieved using version control tools such as Git.

Application of Configuration Management

During the development of the Musicians of Manoa project, I realized the importance of Configuration Management. Collaboration has always been challenging for me. I believe this is due to my slower learning pace compared to others and the language barrier, as English is not my first language.

During the project, I encountered an issue where I failed to communicate the changes I made to the code to my team members, which resulted in a code conflict. For example:

Through this experience, I learned the importance of proactive communication and decided to utilize Git’s Pull Request feature in future projects to conduct code reviews and share changes with the team in advance. Configuration Management allows for systematic code management and enhances transparency in collaboration, which I found to be extremely important.

Applications in Other Fields

Configuration Management can be applied to any field that involves collaborative work, not just software development. For example:

Conclusion

Through the Musicians of Manoa project, I gained a deep understanding of the importance of Agile Project Management and Configuration Management. Agile Project Management helped us distribute tasks systematically and manage them efficiently, while Configuration Management proved to be an essential tool for maintaining transparency and organization in collaboration.

These concepts are not limited to web development but can also be applied to game development, research projects, design work, and many other fields. Moving forward, I aim to apply these principles to various projects to become a more efficient and collaborative developer.