Going into a software engineering course, I was confident in my abilities to design a web application. “How hard could it be?” I rhetorized. “I already know how to code, so this should be easy!” I was sorely mistaken.
As it turns out, while programming shares many similarities to software engineering, there are many essential concepts present in software engineering that my programming history never delved into. Of these many concepts, a few stood out.
I was not particularly keen on the maintenance of coding standards in my work. Nevermind proper spacing, comments, or readability. All that mattered to me was that my code worked, there was no need for it to look good, as long as I knew what it was doing. That was indeed true for one-off, personal coding projects. Once I encountered my first group project, that perspective quickly became outdated. I realized that it was hard to read other peoples code. If I was to work with them on the same project, the use of coding standards had to become standard. Even outside of a web application, I found following coding standards to be immmensely beneficial. More readable code makes tracing, and therefore debugging, easier, and improved my ability to organize and structure programs. In the event that I wanted to copy my code from one program to another, I would have a easier time understanding how it works, in case I forgot.
In this course, my greatest struggle was not in coding, but in collaboration. In a team of individuals with their own schedules and work ethics, development becomes difficult. In times like these, agile project management techniques become appealing. These techniques center around approaching project management by completing segments of a project over-time, enabling adaptability in terms of when tasks must be completed. This approach, when used properly, can facilitate improved team productivity in future projects I may take, both in web application development and outside of it.