Edit Sticky HomeDevelopment

Using GitHub

We use GitHub for pretty much everything for mainly two reasons;

  1. It enforces the same workflow and discipline on all aspects of our company, from code to sales.
  2. It reduces friction for our (overwhelmingly technical) team to access and take part in anything we do (especially recruitment).

A few gotchas

  • Write proper issues & comments; we’ve written about it before. Always give context and clear next steps to your messages.
  • Assignee, labels and milestones; take the time to properly label your issues, assign them to somebody on the team (if you’re not sure assign it to yourself or the SCRUM master) and tie it up to a milestone.
  • Mentions; we often end up a comment or issue with /cc followed by mentions of people we feel should be included in the thread.
  • Meaningful commit messages; avoid things like updated stuff. You want to make it easy for others to review your changes.
  • Always have a README; we always add a README.md file at the root of our repositories to explain what it is and potentially give further instructions (installation, deployment, todo list…).
  • Check your notifications; most likely the first thing you should do when you https://github.com/notifications/participating

Our GitHub workflow

Our worflow is a tad more complex than the GitHub flow, but not as much as Atlassian’s feature branch workflow.

  • “There are some work done to the master branch (or say the branch my branch/fork is based on) and I want to include the changes” or “There are some work done to the master branch and I got conflict with my PR now” - see QA

Labels

We use the SANE Github labels formula helping to highlight the status, type and priority of each issue.

Development stage

These labels represent the current stage of development of the issue.

Label Description
24 Issue is not yet acted on
23 Issue is currently ongoing
22 Issue is currently in review
21 Issue is done
31 Issue is ongoing QA by WCL
32 Issue is ongoing QA by Clients

Type

These labels represent the current type of the issue.

Label Description
54 The issue is a question about a feature
53 The issue is a bug to an existing feature
52 The issue is a task to be implemented
51 The issue is an enhancement to an existing feature

Priority

These labels represent the current priority of the issue.

Label Description
15 The issue is of low priority
14 The issue is of medium priority
13 The issue is of high priority
12 The issue is of critical priority and should be resolved as soon as possible
11 The issue is currently blocking the development of the features