Skip to content

Commit 2bdfdbb

Browse files
authored
Merge pull request #401 from cagov/git_norms_doc
Git norms doc
2 parents ebd59ff + 7d5d713 commit 2bdfdbb

19 files changed

+391
-0
lines changed

docs/code/project-management.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# GitHub and Project Management
2+
3+
## Guidelines
4+
5+
These guidelines are meant to ensure that issues are created in a standardized format and contain sufficient detail so we know what needs to be done, how much effort is involved, and how to prioritize it against other issues.
6+
7+
1. Title: This can be short, but should give enough detail to identify what work this issue is related to and differentiate it from similar task. For example, “Review Documentation for [Specific Project Name]”, as opposed to “Review Documentation” which is too vague.
8+
2. Description: This should be detailed enough that anyone viewing the issue knows what work needs to be done, and what the ideal outcome or deliverable is once this work is complete (success criteria).
9+
1. If the work can be broken out into subtasks, make use of the checklist format option to list those subtasks.
10+
![pm-subtasks](../images/github/pm-subtasks.png)
11+
2. Meta-issues: If the issue is sized Large (1-2 weeks of work) or X-Large (more than 2 weeks of work), turn it into a meta-issue. The subtasks should be turned into their own issues and linked back to this issue. This should also be done if subtasks need to be assigned to someone other than the primary driver of the issue.
12+
3. Sub-task issues should be sized appropriately so that they can be completed in <1 sprint of work. So Tiny (1 hour), Small (1 day), and Medium (1 week) are appropriate sizes for sub-tasks. A Large (2+ weeks) or X-Large (months) task should be broken up into smaller components and turned into a meta-issue.
13+
4. Example Meta-Issue: Note that in the screenshot below, there is text between the check-box and the issue name. This will prevent the automation that checks the box when the issue is closed from working. To enable that automation, there should be no text in the check-box besides the issue name.
14+
![pm-eg-metaissue](../images/github/pm-eg-metaissue.png)
15+
16+
3. The following items should always be filled in when creating a new issue. If you are unsure what to enter, reach out to the Project Manager to discuss, or bring it up in daily standup or weekly sprint planning meetings to discuss with the team.
17+
1. Assignee: If you are unsure who to assign the item to, assign it to yourself to avoid losing track of the issue. Then add a comment that you think it may need to be assigned to someone else and we can discuss in the next team meeting.
18+
2. Priority: Indicates how soon the work needs to start. See definitions in the appendix at the end of this document.
19+
3. Size: Size indicates how much time the work will take to complete oncgite it has started. See definitions in the appendix at the end of this document.
20+
4. Sprint: If the work will start within the next 6 weeks, assign it either to the current or next 2-3 sprints. Work planned further than 3 sprints out does not need to be assigned to a sprint. In this case set the status to “Backlog” and assign a Due Date. If there is not a known due date for the work, this should be a date by which the work needs to be added to a sprint so it does not get lost.
21+
5. Project: This field is important because it ensures the issue is surfaced in the correct location. If you are unsure of the project, the Project Manager can help identify the correct selection.
22+
1. Projects associated with DIF work start with “DIF - “ followed by the project name.
23+
2. Tasks related to overall ODI infrastructure changes not tied to a specific project can go in the appropriate Infrastructure projects. This should be used by DSE team members only.
24+
6. Milestone: Most DIF projects have Milestones which map to our project timelines. There is a search function which can help identify the correct milestone for the work being done. The Project Manager can help if you are not sure of the correct milestone.
25+
1. Note: If a project repo does not have milestones created (for example the ODI data-infrastructure repo) then this can be left blank.
26+
7. Due Date: Assign a due date when the work needs to be completed by, if applicable. If there is no set due date this can be left blank.
27+
8. Status: Assign a status on the current state of the issue. See below for status options.
28+
4. Pull Requests: Add phrase “(Fixes/Closes/Resolves) #xx” to ensure the referenced issue gets closed when PR is merged
29+
1. Review “Open PRs” tab during stand up
30+
5. Make sure to fully close an issue when completed.
31+
32+
33+
## Size Definitions
34+
35+
**Tiny**
36+
37+
- Easy task, something that can be completed in about an hour. It may not require issue creation but could use as a reminder to complete the task later in the sprint (if something takes less than 30 minutes, no need for an issue).
38+
- Example: Sending a follow-up email
39+
40+
**Small**
41+
42+
- A task that can be completed in one day
43+
44+
**Medium**
45+
46+
- A task that can be completed in about a week
47+
- More complex but still straightforward to complete
48+
49+
**Large**
50+
51+
- A task that can be completed in 2 or more weeks
52+
- Increased complexity, may require slower manual work or unknowns that require research and discovery
53+
54+
**X-Large**
55+
56+
- Tasks that may take a month or longer to complete
57+
- Consider breaking up into sub-tasks if appropriate, or create a meta-issue when there are dependencies
58+
- Example: Refactoring a code base
59+
60+
## Priority Definitions
61+
62+
**Urgent**
63+
64+
- Top priority
65+
- Reserved for unexpected emergency items
66+
- Putting everything else on backburner
67+
- Aiming for completion ASAP
68+
- Due Date assigned must be kept
69+
- Not assigned as part of regular sprint planning process
70+
71+
**High**
72+
73+
- Important, goal is to complete this sprint
74+
- Due Date should be kept as much as possible
75+
76+
**Medium**
77+
78+
- Less important than High, aim to complete within 2-4 sprints
79+
- Due Date is a target but OK to push back
80+
81+
**Low**
82+
83+
- Work on as time allows, may leave in backlog
84+
- Due Date not required or kept as a reminder to check back and move out of backlog by a certain point in time
85+
86+
## Status Definitions
87+
88+
1. **New**: Default for new issues. If discussion is needed to clarify details about the issue leave it as New until that discussion happens (so it appears in the “New Status” Project Board view).
89+
2. **Backlog**: If work is not planned on this within the next 2-3 sprints, set the Status to Backlog (or Blocked if the work is blocked for any reason) and do not assign it to a sprint.
90+
3. **TODO**: If the issue is assigned to a sprint but work has not started yet, set the status as TODO.
91+
4. **In Progress**: Choose this status once work has started on the issue.
92+
5. **Needs Review**: Indicates that review is needed from other team members.
93+
6. **Blocked**: Choose this if work on the issue cannot move forward due to something outside of your team’s control, for example if waiting on another team to respond to a question.
94+
7. **Paused**: Work has started on this task but has been put on hold due to competing priorities.
95+
8. **Done**: Indicates the issue is completed. This status is set automatically when the issue is closed, you do not need to select it.
96+
1. Note: The correct way to close an issue is to scroll to the bottom of the issue page and choose “Close Issue”.
15.8 KB
Loading
27.7 KB
Loading
62.5 KB
Loading
28.5 KB
Loading
3.94 KB
Loading
7.58 KB
Loading
51.9 KB
Loading
236 KB
Loading

docs/images/github/open-a-pr.png

12.3 KB
Loading

0 commit comments

Comments
 (0)