The Positives of Software Engineering

14 May 2020

Knowledge of Software Engineering

After completing a software engineering course, one may ask themselves, “Have I learned anything?”. The answer to this question depends on the individual but for me the answer was yes. Before taking this course, I thought software engineering was about creating applications or website but I was wrong. The course did teach me how to create a website from scratch but it also taught me valuable skills that I can apply outside of software engineering. Two different skills or topics I learned of through this course, that I can apply outside of software engineering, would be agile project management and design patterns. Each skill is something that will help me to become a better worker in the future and is valuable for a good work ethic.

Agile Project Management

Agile project management is a combination of three topics which are team coordination, planning, and issue driven management. Most people know what team coordination and planning is but what is issue driven management? Issue driven management is where each group member is assigned a task that is specified as an issue in an organized milestones project page located on Github. This type of project management is solely based on Github where the milestones have due dates and each group member must finish their issue by the specified due date. With an issue driven management, it keeps group members reliable on completing what is assigned to them and it can help other group members see how far along they are in their task. Agile project management can be used beyond web application development by incorporating this structure to any project in life whether it be a work project in creating a game or completing a senior capstone project.

This type of project management does not need to be written on Github but it could be laid out to project members on paper with a memo on when it is due. By having an issue assigned to a specific group member at all times, it keeps people on their toes and splits up the work evenly instead of putting the work on one member. If a group member does not complete their issue it will affect the team as a whole because the project cannot be completed without their issue. Another aspect of agile project management that is helpful outside of web application development is the planning of the project is continuous and a group can create more than one milestone to spread out the work. With continuous planning also comes continuous testing which is ideal when creating a video game or trying to complete a school project. By continuously testing, group members can identify the small errors or hiccups along the way instead of finding out 18 errors at once.

Design Patterns

Design patterns are templates for a programmer to use in many different situations and help newcomers acquire the knowledge to become an expert. The main goal of design patterns is to acquire experience. Design patterns are something we not only see in software engineering but it is a concept seen in everyday life. A design pattern could be related to how a phone looks or the way a pencil is created. Without even knowing it, people use design patterns often. In software engineering, design patterns help to show the relationships between classes and objects when relating to object oriented design patterns. Without design patterns, coders would have a difficult time in putting together a simple object because they would have to start from scratch. Design patterns go beyond web application development and it could be used for writing scripts to parse through data or code for controlling a car. The design pattern will put a beginner on the right track and give the knowledge they need to make it their own.

Overall knowledge

A semester of software engineering has taught me a lot of concepts that I can take with me into my future career such as agile project management or design patterns. Many may think software engineering is only about web application development but it really is not. I have learned, firsthand, how much more there is to software engineering and how valuable these skills are going to be in my future career. The class kept me on top of my toes the entire semester and framework has made me set on future coding projects.