Productivity and Policy

25 Apr 2024

A Group Setting

Working in a group/team setting is what is expected of software engineers. It is important to be able to work with others to create a product. Software-engineering is not a one-man-show. In most if not all places, people are expected to work in teams to engineer software. In a team setting, there must be a clear definition of how a product should be produced and maintained. That is where design patterns come in.

Enforcing A Policy

Imagine a world with no laws or rules. Total anarchy. Now, think about that world, but as a Github repository. Contributors committing and pushing code directly to the main branch. Naming conventions and coding standards vary from file to file. No one knows what is going on or what anyone is doing. Everyone is disconnected and doing their own thing. A complete and utter nightmare to manage. This highlights the importance of set standards and policies to follow when working on a project with a team.

Personal Experience

In my group for the final project for ICS 314, we have utilized multiple design patterns in our project. We have used the singleton pattern for our database, so that only one instance of the database is created, and can be accessed from multiple pages. We have also used the factory pattern to assign roles to users, whether or not they are a regular user, or admin user. We have also used the observer pattern to notify users of changes in the database, like for when users edit their profile. A design pattern can implement practices of other patterns to create a new, unique pattern, depending on what is required of the project.

Takeaways

Design patterns are important to enforce to ensure the quality of a product. With a clear pattern in mind to follow, productivity is enhanced and quality is assured. Group cohesion and collaboration improve as a result of clear design patterns. Being able to work in a team and follow a clear set of rules and guidelines is important in the software engineering field.


Note: ChatGPT assisted with grammar in writing this essay.