The Fundamentals of Software Engineering

15 Dec 2019

Software Engineering

Software engineering is the process of developing software using engineering concepts. This broad definition of software engineering doesn’t even begin to encompass the many lessons that I learned throughout my time in my software engineering class at the University of Hawaii. However, my biggest takeaways from this class was adhering to coding standards and getting accustomed to using a development environment.

Coding standards are arguably one of the most important aspects of software engineering, possibly even above getting the project to function properly. When a software developer works on a project, they are not just setting a foundation for themselves, they are also setting a foundation for the other people in their team, as well as a foundation for people who will work on the software in the future. Therefore, it is extremely important that your code is easy to read, easy to understand, and easy to manipulate. If even one of these aspects aren’t met, then that means that future developers will have to spend additional time either deciphering your intentions or creating increasingly more complex solutions in order to work with the code that you had already implemented. This additional overhead can be prevented by adhering to set coding standards. There doesn’t have to be a single, universal coding standard that everyone in the work must follow, as there are different reasons to use different standards. Some standards may dictate where you place the curly brace when defining a function. However, this isn’t always necessary, such as in Python, where curly braces are non-existent. However, the important thing is that when a coding standard is chosen for a given project, that it remains consistent throughout the development cycle of the project. This way, everyone on the team is on the same page about what standards they should use in order to better understand the code written by their coworkers. If there’s a change midway through the cycle or someone begins using a different coding standard, then this could cause confusion between the workers, create overhead in the development, and ultimately prove to be a deteriment to the project, even if the new coding standards would have benefited the team more if they had used it in the beginning. Since a standard had been chosen, then it is best to stick with that standard.

In tandum with using an appropriate and consistent coding standard is using the proper development environment for the project. The development environment is the software that a software engineer uses to develop the code for their project. Development environment is usually considered to be synonymous with IDE (Integrated Development Environment). IDEs serve an important role for the software developers as this is the tool that they use to help them create code without having to perform redundant tasks such as compiling code, creating files with redundant patterns (imports, class declarations), and other useful tools. Even vim, my personal IDE of choice, contains some useful features that we often take for granted such as automatic indentation. These tools are also extremely helpful when creating code that adheres to coding standards. Due to how important IDEs are to developers, companies have created IDEs such as IntelliJ that allow the user to customize their experience and install certain coding standards onto their software, to ensure that the developer adheres to requirements, and complains if certain rules aren’t followed.

Software engineering contains a lot of nuance, and some of the most important lessons that you learn as you begin software developing aren’t related to getting your product to function, but rather to ensure that your project is readable for other people, and that they are able to use the proper tools in order to work on the project, either by maintaining it, or updating it for a newer audience.