Experiencing Software Engineering

18 Dec 2024

Developing a Skill

In ICS 314, we learned a lot about software engineering, specifically web development. But along with this, we implemented various skills and techniques that would be essential in aiding us to create the most functional and utilitarian programs, not just for others, but for ourselves and our teams. We tend to overlook the simple concepts, but skills like Coding Standards and Agile Project Management were essential to my learning and are just a couple parts of Software Engineering that I’ll take with me beyond ICS 314.

Coding Standards

Coding Standards are a pretty simple thing that we as Computer Science students, or Software Developers, learn from the get-go. I’ll always count on my professors to give us some type of mini lecture on the importance of them and what not on the first week of classes. It seems a bit repetitive and boring, but you really start to see the importance of them after completing your own web app.

A general definition of coding standards is maintaining structured, well-defined, and standardized style of coding. You can make your own general Coding Standards for yourself, but also for an organization or group. These standards include naming conventions, code formatting, and error handling.

Especially when working in groups, you really start to see the importance of following Coding Standards. Working independently may give you the freedom to be all over the place, but that definitely doesn’t fly in a group. There could be multiple people working on the same file, and having unorganized code is just a means for disaster. Setting the standards and following them is the least one can do to ensure everyone is on a similar page.

Agile Project Management

Agile Project Management is an approach to managing software development projects. The purpose of this is to emphasize collaboration in a team, and working in short “sprints”, where specific goals are set to be completed in a time period. Using this explanation, it’s really self explanatory as to why I find this important even outside of class. I can only imagine that without these goals, we would have been scrambling to finish things last minute (as if we weren’t already). Just doing so much as setting a couple goals for all of us to finish within a week was a lot more efficient than winging it all.

Issue Driven Project Management is designed to support large groups in creating software. This includes meeting biweekly to manage a project, dividing work into 72 hour tasks, and documenting tasks on GitHub. I found that correctly documenting on GitHub was more useful than I thought it would have been because I could easily see where all my teammates were at and how we were progressing. It made everything a lot easier to discuss and to figure out what problems we needed to prioritize.

This skill is truly so simple and something that we see in every effective team setting, not just Software Engineering. Keeping an eye on what issues are being addressed and what needs to be done to make improvements is essential in every group project.

Conclusion

I acquired many new Software Engineering skills in ICS 314, but I think these two are some of the most important. I know that effectively collaborating with a team will come to be extremely useful whether it be in a future career or in other classes. Being skilled technically in coding or development is, of course, a necessary component of being a software engineer. But being a well rounded Software Engineer, in my opinion, includes keeping Coding Standards and Agile Project Management a top priority.