The Broader Applications of Software Engineering

12 Dec 2020

Learning to become a software engineer is all about learning and developing good strategies. Although many of these strategies are easily demonstrated in the development of web applications, they are not limited to just computer science. These software engineering strategies are applicable in a variety of different settings and there are several examples of where they are already being used.

Let’s take coding standards for example. Coding standards are a set of stylistic rules and guidelines that a group of software engineers follow to make the appearance of their programs more uniform. We have previously discussed in “The Basis for Teamwork” how coding standards smoothly facilitate group collaboration in software projects by allowing every member to be able to read and understand each other’s code. What we did not discuss is what coding standards might look like outside the scope of computer science. Some may be quick to suggest that coding standards are like grammar in any written language. However, coding has its own built in grammar in the sense that if you do not construct a “proper sentence” your code will not run. Coding standards deal with appearance. I would say that poetry is a good example of something that utilizes the same idea as coding standards. Poetry is a very diverse form of writing. There are haikus, limericks, sonnets, and many other types of poetry. What makes them all unique? They all have their own rules that dictate their style and appearance.

In “Design Patterns as Pizza” we also discussed how pizza is a great example of a design pattern outside of computer science. We defined a design pattern as a general solution to a commonly recurring problem that can be modified to fit specific requirements. For a more in depth discussion on design patterns I would recommend reading my previous essay. The last strategy that we will talk about here is a particular style of Agile Project Management called Issue Driven Project Management (IDPM). IDPM is a management process meant to organize the project development of a small to medium sized group of people. There are several rules to IDPM but the central idea is to break up a project into several milestones that will each take about 7-14 days to complete. Within each milestone, the work should be divided into 72 hour tasks. Each group member should only be working on one at a time as well. On a much smaller scale, IDPM can be seen in baking. Recipes are often broken down into multiple parts each with a set of tasks. For example, when baking a cake you need to create the batter, prepare the frosting and filling, and eventually decorate the cake once it has finished in the oven. Each of these parts could be seen as a milestone while the tasks are the steps required to actually complete each part.

There is no shortage to the number of ways that software engineering strategies can be applied to other areas of this world. The important thing is to understand these strategies well enough to be able to successfully apply them in all the work that you may do.