Code, Reflect, Learn: The Process of Software Engineering

10 May 2024

Intro

In the realm of software engineering, the principles of coding standards and agile project management are often associated with web application development. However, their significance extends far beyond this domain, impacting various aspects of software engineering endeavors. The fact is that these concepts can be applied in different project contexts outside of the classroom.

Coding Standards: Fostering Consistency and Readability

Initially, grappling with adhering to coding standards, such as fixing ESLint errors, felt daunting and time-consuming. However, as I progressed, the purpose behind these standards became more apparent. Adhering to coding guidelines isn’t just about ticking off a checklist; it’s about promoting consistency and readability within the codebase. Consistent coding standards facilitate smoother collaboration among team members by ensuring that the source code remains understandable and maintainable. I would not want to begin to imagine how hectic the final group project would have been if everyone just wrote code however they wanted without keeping to a consistent guideline. I am confident that this process is particularly crucial in larger projects involving multiple developers. By embracing coding standards, we not only improve code quality but also streamline the development process, ultimately leading to more robust software solutions.

Agile Project Management: A SMART Process

In parallel with coding standards, the course highlighted the agile project management method, emphasizing methodologies like Issue Driven Project Management (IDPM). Initially, the idea of creating and managing issues on GitHub project boards seemed tedious and burdensome. However, in hindsight, these practices were vital for coordinating collaborative efforts and steering the final project toward success. Agile project management embodies a flexible and iterative approach to software development, characterized by constant reflection and adaptive planning. IDPM, specifically, revolves around systematically identifying, prioritizing, and resolving issues, leading to a dynamic and responsive project environment.

Application Beyond the Classroom

While coding standards and agile project management are commonly associated with web development, they are relevant beyond just that. In various project contexts, from desktop applications to embedded systems, the principles of these methodologies are still important. For example, in a scientific computing project involving computational algorithms, adhering to coding standards ensures clarity and reproducibility among researchers. Likewise, in a hardware design project, agile project management helps refine specifications and solve design problems promptly through iterative processes.

Takeaway

In summary, coding standards and agile project management are foundational aspects of software engineering with broad applications. By embracing coding guidelines, we promote consistency and readability in the codebase, facilitating collaboration among team members. Likewise, agile project management methodologies empower us to navigate the complexities of software development through continuous planning and adaptive execution. Recognizing the broad applicability of these principles allows us to build strong, reliable, and creative software projects.