Skip to main content

I Introduction

A. Purpose of the Guidelines

The purpose of these software development guidelines is to create a consistent and high-quality standard across all software development efforts within our organization, encompassing both internal and external developers.

  1. Quality: Ensuring high-quality software is at the heart of these guidelines. We aim for reliable, efficient, robust, maintainable software that provides an exceptional user experience. These guidelines direct developers towards best practices that enhance the overall quality of their code, establishing standards for code structure, design patterns, testing methods, and more.

  2. Getting Started: The guidelines serve as a valuable resource for all developers, new or seasoned, within our projects. They provide a clear understanding of our software development expectations and standards, assisting in the onboarding of new team members and acting as a continued point of reference for all developers. Adherence to these guidelines will ensure smooth integration into our development processes and maintain high productivity levels.

  3. Understandable Code and Architecture: We believe in the principle that good code is self-explanatory and maintainable. Thus, these guidelines emphasize practices that promote clean, readable, and self-documenting code, resulting in architectures that are understandable and easy to navigate. They advocate for clear naming conventions, a coherent structure, ample documentation, and the efficient use of design patterns, all with the aim of producing software that's not just functional, but also understandable, both at the code and architectural levels.

In summary, the purpose of these guidelines is to foster an environment where all developers, internal and external, can consistently produce excellent, robust, and maintainable software, and where anyone involved in the project, now or in the future, can understand and contribute to the codebase efficiently.

B. Scope of the Guidelines

These software development guidelines are intended to provide a consistent and high-quality standard for a broad range of contexts within our organization. They are designed to be widely applicable, and their reach extends to the following areas:

  1. All Software Development Projects: These guidelines should be applied to all software development efforts within the organization, covering a wide range of projects including product development, internal tool development, and research and development initiatives.

  2. External Collaboration: Projects involving external developers, contractors, or third-party companies should adhere to these guidelines. We aim to ensure uniformity and maintain the same high standard of quality whether the work is done internally or externally.

  3. Partnerships or Joint Ventures: When our organization engages in partnerships or joint ventures, these guidelines should be upheld as the governing principles for all software development processes involved in such collaborations.

  4. Project Lifecycle Stages: These guidelines are applicable to the standard stages of the software development lifecycle, from initial design and development through to testing and deployment. Exemptions may apply for prototypes or Proof of Concept (PoC) software, where rapid exploration and experimentation might take precedence over strict adherence to these guidelines. However, should a prototype or PoC advance to a stage where it is being seriously considered for production, these guidelines should then be applied.

  5. Technology or Domain-Specific Projects: Regardless of the technology stack or domain involved, these guidelines should be followed as closely as possible. While certain specifics may vary based on the technology or domain, the core principles of producing high-quality, maintainable, and understandable software remain the same across all tech stacks.

C. Technology Stack

DO programming in C# for backend and in Typescript for frontend development