Software Engineering Is More Than Just Web Application Development

18 Dec 2020

Now that we are at the end of the semester, I am wrapping up my first semester of learning software engineering. I’ve definitely learned a whole lot about software engineering in these past four months. When I signed up for this class, I honestly thought software engineering was mainly web application development; just building some nice websites. While this is what we do in software engineering, there is much more to the process of web application development. There are a couple of concepts that really stood out to me in these past four months.

Functional Programming

Pretty early on in the semester we were introduced to functional programming. The first time I opened the functional programming website, underscore, I was feeling a bit lost. The code just looked quite unconventional, but after spending some time reading it and reading about underscore and functional programming, it started to make sense to me. Functional programming is a way to make your code more compact and understandable, and it is very, very useful! It allows you to use functions that are often used, by not writing the full code for the function. For example, by using the function _.map(list, iteratee, [context]), you can iterate over a list and perform an action on each item of the list. For example, you can multiply each number in the list by 3. This is very convenient, because now you don’t have to write out a lot of lines of code to do the same thing. It just takes a couple of lines now and a very short amount of time to write the code. I am very glad I was introduced to this in my software engineering course. By the time our final project came along, I was more familiar with functional programming, and we definitely made use of it in our project. For example, filtering out only certain categories out of collections was much, much easier with functional programming.

Issue Driven Project Management

At the end of the semester, we had to hand in a final project. We were divided into groups of 3 or 4 people. I was divided into a group of 4, and was teamed up with classmates that I did not know yet. To ensure that we were working well together and followed a good, well thought out planning, we made use of Issue Driven Project Management, where we assigned issues for each milestone of the project, and assigned those issues to team members. Github has a nice feature for this, where you can design a project board and have three categories: to do, in progress, and done. By making use of this style of project management, we divided the project into milestones, where each milestone had a set due date, we assigned issues for each milestone, then we made a project board for each milestone, and then we assigned the issues in each milestone to a team member. This way, each team member had a nice overview of the status of the project. By just checking out the project board, we were able to see who was where in regards to their tasks for that milestone. Issue Driven Project Management is definitely something that I will make use of in further projects. It allowed me to have a very organized overview of the project, which made me less stressed about finishing the project in time. The fact that we divided the project up into the milestones definitely helped with the workload of the project as well. I would recommend this type of project management to everyone!

More than just web application development

As I already mentioned in the introduction, software engineering is way more than just web application development. Functional programming and issue driven project management are two very different things, yet they both are a part of the software engineering process. Behind the scenes of web application development, there are a lot of parts that are just as important as the web application development itself. I am really interested in software engineering after learning about it for these past four months, and I can’t wait to see what else I will learn about it in the future!