Software Engineering

18 Dec 2019

Software Engineering

Software engineering to me is the art of designing code to accomplice the task at hand. It encompasses the entire process of the project, from understanding the problem, designing the draft, ensuring the user interface is simple to use, and all the way to pushing you project out for production. There are many skills that you can learn along the way but for me, the three most pounced things I’ve learn from the software engineering class are Open Source Software Development, Coding standards, and Agile Project Management.

Working Together

When an electrical engineer designs a circuit, the engineer doesn’t design small components such resistors. The Resistor is already built, and their values are already list. This allow modern engineer to focus on the bigger project, building upon previous work to build even more complex circuits such as smart phones and personal desktops. This idea can also be carried over to software engineering as our web frame, Meteor with react, allows software engineer to focus on the project, without worrying about the smaller issues such as interfacing with operating system to establish sockets, working out how a database system is coded and stored, or finding out how to configure the webserver to handle request from a client. Opensource require good documentation, as most developer will scroll through, reading how to implement Open Source software into their project and with it, allow them to build upon and hopefully contribute back to build upon the open source project.

Understand One Another

Another aspect of software engineering is the coding standard. Standard in general are import as they allow people to understand each and allow communication across different areas. For example, spoken language has standard that everyone follows, and it allow people to convey information. In software engineering, writing to a standard allow code to be easily readable to different people. This idea allows people to collaborate in any project as other member will understand your code if written to a standard. Without a standard, coder can write code in any order, without any though to the structure and leave confusing style that will have very bad flow. This causes other collaborator to spend extra time interpreting the code instead of working and can make debugging broken software very difficult

Project Management

Finally, Agile Project Management was a new concept to me but makes sense. A lot of project is built step by step and using Agile allow you to build a project step by step. It was an experience watching our web project grow from a simple, bland website based on a template and slowly transform to a functional website with a usable interface.

Closing Thoughts

There was a lot more I learned in software engineering but overall, I learn more about working with other people, ranging from the classmate next to me to working on framework other people have created to build into a useful project. Hopefully, I’ll be more skillful in the coming year to help contribute to another opensource project as they have help contribute to the community to empower public projects.