Skip to main content

V. Collaboration and Communication

In software development, effective collaboration and communication are as vital as writing good code. These aspects are crucial for ensuring that everyone in the team is on the same page, that tasks are correctly understood and effectively executed, and that any issues or challenges are promptly identified and resolved. This section of the guidelines outlines our practices and expectations around the use of communication tools, collaboration with internal teams, and issue reporting and tracking.

A. Effective Use of Communication Tools

We use a variety of communication tools to facilitate effective collaboration within our teams. These include Microsoft Teams, Wikis, Markdown files, and GitHub Issues.

Microsoft Teams is our primary tool for direct and instant communication. It can be used for quick discussions with individual team members or entire teams. However, it's crucial to note that decisions made during Teams calls or via private messages might not be transparent to all team members. Therefore, any critical decisions should be appropriately documented using our other tools.

Wikis serve as the repositories for architectural insights and high-level information about our system or its components. They are an excellent place for storing information that provides a broader understanding of our projects.

Markdown files are typically used for more specific information about a particular service or internal library. They can capture necessary details relevant to a specific context or part of the system.

Azure Devops Issues are used to track bugs, feature requests, and other project-related tasks. Even if these aren't addressed immediately, logging them as issues ensures we don't lose track. Before creating a new issue, it's important to search the existing issues to prevent duplicates. This approach helps us maintain a well-documented, searchable record of all project-related discussions and decisions.

B. Issue Reporting and Tracking

Azure Devops Issues is our primary tool for tracking all project-related tasks, which can include new features, bug fixes, security issues, and more. When creating a new issue, it's crucial to provide as much relevant information as possible to facilitate understanding and resolution.

For Bug Reports: Include the software version in which the bug was found, and detail the environment it was discovered in (e.g., Kubernetes version). If possible, attach relevant log files or screenshots that could help in diagnosing the problem.

For Feature Requests: Clearly articulate the benefits that the proposed feature would bring. Describe the problems it would solve and how it could simplify or enable certain operations or functionalities.

Before creating a new issue, always search the existing issues to avoid duplication. In situations where an issue pertains to a specific area of expertise, don't hesitate to collaborate with or mention colleagues who are experts in that field. They can bring valuable insights and accelerate the issue resolution process. This ensures our issue tracker remains an effective and efficient tool for project management.