What Software Engineering Entails

18 Dec 2020

What Software Engineering Entails

After learning about Software Engineering for about half a year, I learned many things. Some of these things include Open Source Software Development, Configuration Management, Functional Programming, Development Environments, Coding Standards, User Interface Frameworks, Agile Project Management, Design Patterns, Ethics in Software Engineering. I’m not going to explain what every single one is, but I will explain to you what I think are the three most important things I learned and I will use throughout my career.

Design Patterns

I find design patterns very useful. “Design patterns are commonly defined as time-tested solutions to recurring design problems.” (Maiorriello) This means that they are patterns that you can use to solve different types of design problems. The design patterns may include having the same template for an application or having the same data structure to store different types of data. Design Patterns are very useful because once you are familiar with a design pattern, you will be able to finish your project faster since you are using the same design patterns all over again. The best thing about design patterns is that they are time-tested solutions. This means that you do not have to worry about the design patterns being wrong. All you have to worry about is tweaking the design so that you can finish your project.

Agile Project Management

Agile project management is a thing that will follow you throughout your life even though you may not have a career in Software Engineering. People will work with one another no matter what career you go into. Agile project management is a way for a group to work with one another on a project. This is very important because not many people know how to efficiently work in groups together. When learning software engineering, I learned how to efficiently work in a group by having milestones and assigning tasks to each member of the group. We will finish all the tasks that we were assigned before the milestone. At each milestone, we will have a meeting on the progress of each member and what we should do for the next milestone. We keep doing this until the project is complete. This is important to learn because many jobs have big projects that multiple people need to work on. Learning agile project management will help me throughout my career and I am glad I learned it.

Ethics in Software Engineering

What I find the most important thing in Software Engineering is your ethics. Ethics in Software Engineering is important because it will make your clients or users feel safe with the program you created. Developing trust with your clients and users will help you succeed with your application. When learning about Software Engineering for half of the year, I learned about Facebook’s situation. I learned that a lot of people do not trust Facebook anymore since they are doing things behind the public’s back. Facebook is hiding things from their user about what they do with their personal data. This makes a lot of users leave Facebook because they lost the user’s trust. I do not want to follow in Facebook’s footsteps where I lose the public’s trust and will feel bad for doing things that may not be morally right. I do not want things to be hidden in the dark about stuff and I want the users to know what is happening to the application and all its data. This is one of the things I learned in Software Engineering that will follow me throughout my career.