# Mandatory Exercise - Book at Least One Consultation
Most collaborative software development projects make significant progress through remote interactions using issues and pull requests.
By now, you should have some open issues and know how to work with issues based on the previous exercise **[Make and Document a Plan](https://hackmd.io/@fair4rs/SybbutV26/%2F9yl4S_7FS_mHoKy5bKAm7A)**.
The general steps to book a consultation are:
1. Document your issue or issues.
2. Start a booking by going to [this link](https://www.tudelft.nl/en/library/library-for-researchers/library-for-researchers/setting-up-research/dcc/open-office-hours).
3. Check the box at the end of the form asking: "I am attending as part of the FAIR for Research Software program."
4. Share the link to your repository in the "brief description" field of the form. Refer to the issue number you would like to discuss, for example, Issue#1, #23, etc.
5. Meet with the consultant online or in person.
Following these steps allows everyone to be prepared by clearly capturing your intention and goals. You can practice a similar approach later with other contributors and colleagues.
At TU Delft, researchers have access to the **[Digital Competence Centre](https://dcc.tudelft.nl) (DCC)** to help implement and organize research workflows. The DCC has recently launched the "Open Office Hours" as a pilot initiative to provide consultations. We are taking advantage of this initiative for our program. In the future, you can still use the **[booking system](https://www.tudelft.nl/en/library/library-for-researchers/library-for-researchers/setting-up-research/dcc/open-office-hours)**, and follow the instructions there so an expert can assist you.
## Some Tips for Asking for Help
- **Be Specific**: Clearly articulate the problem you're facing, including relevant context and steps you've already taken to troubleshoot. See: [GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports).
- **Use a Descriptive Title**: Make your question or request easy to understand at a glance by providing a concise and descriptive title. See: [Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask).
- **Provide Reproducible Examples**: Share code snippets, error messages, or any other relevant information that can help others understand and reproduce the issue. See: [GitLab - Submitting a Merge Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html).
- **Respect Community Guidelines**: Familiarize yourself with the community guidelines of the platform you're using and adhere to them when asking for help. See: [GitHub Community Guidelines](https://docs.github.com/en/github/site-policy/github-community-guidelines).
- **Express Gratitude**: Remember to thank those who take the time to help you, whether they provide a solution or offer guidance towards finding one. See: [Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask).
## References
[GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
[Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask)
[GitLab - Submitting a Merge Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
[GitHub Community Guidelines](https://docs.github.com/en/github/site-policy/github-community-guidelines)
[GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
[GitLab - Issue Templates](https://docs.gitlab.com/ee/user/project/description_templates.html)
<!--
### 💪 Extra (optional) material
-[link text](https:// "title")
-[link text](https:// "title")
-[link text](https:// "title")
<!-- # Mandatory Exercise - Book at least one consultation
Welcome to this exercise on how to book a consultation
:::info
**Learning objectives**
With this exercise, you will be able to:
1. Phrase your question so it can be addressed by a (potential) collaborator
2. Raise your question in the form of an issue
3. Book a timeslot with an expert
**What to expect**
By completing this exercise you will have experienced a main point of collaborative software development: raising an issue wich can be then addressed by a collaborator
:::
0. **Introduction**
* Brief overview of communication on collaborative software development
1. **Asking for help**
* How to effectively communicate a specific problem or challenge in a clear and concise manner to seek assistance from collaborators
2. **Raising an issue**
* How to report a problem or suggest an improvement in a project's functionality, providing relevant details for collaborators to address the issue efficiently
3. **Booking a consultation**
* How to get expert help providing clear and concise details in the form of an issue to efficiently address challenges in research Software Development
### 0. Introduction
Software development rarely happens in isolation, as a matter of fact, most successful projects arise from a collaborative effort. Effective collaborative development can only be achieved with effective communication. For this purpose, we will exercise the process of phrasing a question so it can be addressed by the general public and, eventually, an expert collaborator.
### 1. Asking for Help:
- **Be Specific**: Clearly articulate the problem you're facing, including relevant context and steps you've already taken to troubleshoot. Reference: [GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
- **Use a Descriptive Title**: Make your question or request easy to understand at a glance by providing a concise and descriptive title. Reference: [Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask)
- **Provide Reproducible Examples**: Share code snippets, error messages, or any other relevant information that can help others understand and reproduce the issue. Reference: [GitLab - Submitting a Merge Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- **Respect Community Guidelines**: Familiarize yourself with the community guidelines of the platform you're using, and adhere to them when asking for help. Reference: [GitHub Community Guidelines](https://docs.github.com/en/github/site-policy/github-community-guidelines)
- **Express Gratitude**: Remember to thank those who take the time to help you, whether they provide a solution or offer guidance towards finding one. Reference: [Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask)
### 2. Raising an Issue:
### Raising an Issue:
- **Search for Existing Issues**: Before creating a new issue, search existing ones to avoid duplicates and contribute to ongoing discussions. Reference: [GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
- **Follow the Issue Template**: If the project has an issue template, ensure you fill it out completely to provide all necessary information. Reference: [GitLab - Issue Templates](https://docs.gitlab.com/ee/user/project/description_templates.html)
- **Provide Clear Steps to Reproduce**: Detail the steps required to reproduce the issue, along with any relevant code snippets or screenshots. Reference: [GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
- **Include Environment Details**: Mention the environment (e.g., operating system, browser version) in which the issue occurs, if applicable. Reference: [GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
- **Be Courteous and Respectful**: Maintain a respectful tone and avoid using all caps or offensive language when describing the issue. Reference: [Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask)
### 3. Booking a consultation
Most collaborative software development projects will make significant progress by remote interaction using issues and pull requests. At TU Delft, researchers have access to the [Digital Competence Centre](https://dcc.tudelft.nl) (DCC) to help implement and organise research workflows. The DCC has recently launched the "Open Office Hours" as pilot initiative to provide consultations. Please use the [booking system](https://www.tudelft.nl/en/library/library-for-researchers/library-for-researchers/setting-up-research/dcc/open-office-hours) following the instructions there, and provide a link to your issue so an expert can help you
## References
[GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
[Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask)
[GitLab - Submitting a Merge Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
[GitHub Community Guidelines](https://docs.github.com/en/github/site-policy/github-community-guidelines)
[Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask)
[GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
[GitLab - Issue Templates](https://docs.gitlab.com/ee/user/project/description_templates.html)
[GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
[GitHub - Creating an Issue](https://github.com/rstudio/rstudio/wiki/Writing-Good-Bug-Reports)
[Stack Overflow - How do I ask a good question?](https://stackoverflow.com/help/how-to-ask)
### 💪 Extra (optional) material
-[link text](https:// "title")
-[link text](https:// "title")
-[link text](https:// "title")
-->