The Making Of A Software Engineer

15 Dec 2020

Diving Deeper

Prior to taking ICS 314, I had a vague understanding of software engineering and hoped that this course could immerse me in its vast body of fundamentals. We’ve flowed through the modules and concepts of web development. However, the web development river converges to the broader software engineering sea; the concepts we’ve covered in this course are intertwined with the grander scheme and go beyond web development. Two fundamental concepts that I believe apply most significantly to software engineering in general are coding standards and agile project management, especially when working in teams.

Uniformity in Code

In any professional environment, clear guidelines must be established. Coding standards provides such guidelines that improves the quality and formality of any software. These standards define how code looks and is written. Imagine a team of a dozen software engineers, each one structuring their code a different way. Think of how tedious it would be for others to read, understand, and maintain the project. Coding standards provides uniformity to software such that everyone’s code is consistent and their intent is clear. That way, software is presentable and easily understood. Easily understood code is also easily maintained and used by others. Time spent deciphering code is spent improving code through coding standards.

Staying On-Task

In a team project, the following questions may arise: What tasks need to be done? How should we divide up the work? How do we know we’re on track? What are our deadlines? These questions can all be answered with Issue Driven Project Management, a type of Agile Project Management. Using GitHub project boards for our final project, my group members and I could divide up the work into assigned tasks with clear deadlines set by milestones. We could monitor others’ progress and the overall completion of our project. Conversely, this was used to set new tasks for the next milestone. Having our project state displayed in real-time on a shared platform ensured progress was smooth. The concept of continuous and adaptive planning or delivery can be applied to any software project to provide organization and management.

The Spirit Lives On

As I near the end of ICS 314, I look to apply these fundamental concepts we’ve learned to the broader spectrum of software engineering. I hope to carry these values beyond this course to my future colleagues and coworkers. The spirit of ICS 314 will live on through meticulously organized and efficiently designed software projects.