How to contribute to issues and coordinate with the team
Before starting on a new issue
This step should take place a day or two before you wrap up your current work. Look in the "Up Next" column on GitHub and start with the issue at the top.
- If the issue does not have anyone assigned to it: assign yourself
- If the issue has someone assigned and has the tag "help wanted":, then reach out to the person to whom it is assigned and see if they still need anyone to help on that issue. If the person needs help, then add yourself as an "assignee" on the issue and coordinate with them on what needs to be done
- If the issue has someone assigned to it and there is no "help wanted" tag: move on to the next issue in line
Starting on a new issue
For any questions, ask the questions clearly in the Github issue as a comment (and @ mention the person), so that your questions can be answered asynchronously. And note that you are not blocked! If you have requirement or technical questions that cannot be answered the same day, make a decision and continue. Your question will be answered the next day and you can always make adjustments as needed but at least you made progress.
- Step 1: read the requirement and identify any questions you have or gaps
- Step 2: identify prerequisites: research, reading docs, any setup required (new repo, etc), decisions on infrastructure, etc.
- Step 3: note down any dependencies (stories that need to be completed first)
- Step 5: for issues that require modeling, create a model and get feedback
- Step 6: for complex issues, consider creating a developer diagram to help others jump in and help on the issue
- Step 7: write down any high-level tasks, then add size of the story (small, medium and large)
- Step 8: for medium and large tasks, it is advisable to add the "help wanted" tag so that others can jump in
- Step 9: break down the task into a to do list, with each item capable of being merged to the main branch independently
- Step 10: add the appropriate tags to the issue, and for large issues add the "help wanted" tag so that others can jump in and take some of the available tasks (also mention in #team-dev that you need help on the story so others can jump in when they free up)
- Step 11: for the tasks that you plan on working on, put you name next to them
- Step 12: write acceptance criteria
Jumping in on a new issue
For any questions, coordinate with teammates first.
- Step 0: for issues that have the "help wanted" tag but the issue is still being prepared, coordinate with your teammate so that you can assist in the preparation process (i.e. steps 1-12 in the "Starting on a New Issue" section)
- Step 1: read the issue and identify any questions you have or gaps
- Step 2: add anything to the issue as you see fit within
- Step 3: for the tasks that you plan on working on, put you name next to them
Working on an issue with others
If the steps above were done properly, the coordination process while coding should be pretty smooth as the tasks were clearly defined for each person and clearly outlined. For branching, you should take a branch of the overall issue branch (see this article)
Wrapping up an issue/tasks
When wrapping up your tasks, it is time to move on to the next thing! Here are some guidelines for moving on to the next thing:
- Step 0: coordinate with your teammates who are working on the same issue to ensure that nothing else needs to be done/they don't need help
- Step 1: check in on other issues that are in-progress, for issues with a lot of outstanding tasks coordinate with your teammates to see if they need assistance
- Step 2: if nobody needs help, move on to starting on a new issue section!