
Throughout my Software engineering course, we practiced and developed many skills in web application development. We did many assignments in TypeScript and built websites using HTML, CSS, and frameworks like React. However, this course did not just simply teach how to code, but rather taught fundamental concepts in software engineering that can easily be applied to a broader spectrum of projects. For instance, two such concepts are coding standards and agile project management. Before I learned these formally, I already had similar experiences with them.
In case you are unfamiliar with coding standards, they are similar to English grammar. In English, there are specific rules that are strongly encouraged when writing and some of these rules change depending on the writing outlet: texting, emails, essays, etc. Coding standards work the same way. Depending on the coding language, there are standardized rules on indentations, naming conventions, and even the use of single or double quotes. Although one can ignore them, they greatly aid in improving readability and collaboration due to the consistency in how code is written. Several of my own experiences with coding standards revolved around commenting. For example, before each function there must be a comment block stating the function’s purpose, parameters, and what it returned. This practice has been enforced in several of my coding classes but also more interestingly in a project I was assigned to in an internship. I was tasked with designing a tool that automatically generates documentation by parsing through these comment blocks in a file. As long as the comments were written correctly, an artifact was provided to users that streamlined onboarding and supported code maintainability. Although a special case for coding standards, this demonstrates how important they can be for projects.
As for agile project management, this is a system applied for efficient project development and to minimize conflicts. Specifically, I was taught issue driven project management (IDPM). IDPM worked by consistently creating tasks called issues that could be completed in two to three days. Enough issues should exist so that team members always have an issue they can work on. Moreover, team members should estimate and note how much time it took to complete issues to aid with predicting how long future issues take and ensure they are manageable within the two-to-three-day timeframe. This practice is important for team projects because it ensures that constant progress can be made towards the project while also avoiding conflicts such as team members working on the same task. Although I have not experienced this specific type of agile project management outside of developing websites yet, I have had a similar system in place for a project I was assigned. My supervisor developed a schedule for me where he split my project into many smaller tasks. He then indicated when each task should be completed so that the project would be done in a month and a half. This helped me prioritize my tasks and work more efficiently.
While this class taught me these concepts by applying them to web application development, they are not bound to this topic. As explained above, I have already been applying them in my own projects. Therefore, I can easily see myself applying these concepts in the future no matter the project.