So… How Did Software Engineering Go?

12 Dec 2023

In my journey of software engineering learning, I’ve dove into various fundamental concepts that extended beyond my knowledge of software web application development. Two of probably the most important things that I learned throughout this software engineering course are Agile Project Management and Issue-Driven Project Management.

Agile Project Management

Agile Project Management is a concept that emphasizes flexibility, collaboration, and responsiveness to change throughout the development process. Within this framework, I encountered a specific style known as Issue Driven Project Management (IDPM). IDPM is the idea of breaking down tasks into manageable issues, incorporating a more structured approach to project management when working in a large group.

While initially learned in the context of web application development, the principles of Agile and IDPM go beyond the boundaries of specific technologies. The adaptive nature of methods in Agile Project Management can be applied to a vast amount of different projects, ranging from software development to product management and more.

I can see utilizing Agile and IDPM in non-web application projects, such as system integrations or software infrastructure upgrades. The emphasis on collaboration, adaptability, and one-issue-at-a-time progress, aligns well with the dynamic nature of modern project landscapes. Whether developing a new algorithm or implementing network optimizations, the principles of Agile Project Management offer a structured but flexible approach to project execution.

Design Patterns

Design Patterns refer to reusable solutions to common problems encountered in software design. This concept extends beyond web application development, influencing the overall design and structure of software systems. One example is the Observer Pattern, where an object, known as the subject, maintains a list of dependents, called observers, that are notified of any state changes.

In a broader software engineering context, the Observer Pattern can be applied to various scenarios. For instance, in a non-web application project like embedded systems development, the Observer Pattern could be employed to monitor data and trigger actions based on changes in environmental conditions. Defining and understanding such design patterns is crucial for creating scalable, maintainable, and adaptable software architectures in diverse fields.

It Was Fun

This software engineering course has provided me with a comprehensive understanding of fundamental concepts that extend well beyond the scope of web application development. Agile Project Management, Issue Driven Project Management, and Design Patterns are just a few examples of the different principles that can be applied to a wide range of projects in different domains. As I move forward in my software engineering journey, these insights will undoubtedly contribute to my ability to navigate and excel in various professional settings.