You may not know about GitHub if you’re not a programmer. To those in the software business, GitHub or rival products like Atlassian Jira, are essential for dividing up coding tasks among team members and tracking what everyone is working on. Inside the San Francisco company, its 600 employees, nicknamed Hubbers, have found other uses for their online service—managing not only code but any collaborative projects, such as legal documents or HR policies. “We’re going to treat legal issues like bugs in the code,” says Julio Avalos, GitHub’s general counsel and chief business officer.
To get a sense of GitHub, start by thinking of Google Docs—an online repository for text where people can make changes and leave comments. But software projects are a lot harder to manage. They can take months or years to develop, run to thousands or millions of lines of code, and have dozens or more collaborators. So toss in project management capabilities like those in Trello, which allows people to define individual tasks that go into developing the software, track progress, and assign who is responsible for them. Then add a messaging system like Slack so that workers can chat about the projects and flag specific people by username (with an “@” symbol) to get their attention. One unique aspect of GitHub is the pull request. It allows someone to alert other collaborators of new code they have proposed and get feedback before a decision to add it to the main project.
As GitHub, founded in 2008, expanded beyond its original core of techies, employees found new ways to use it. Shortly after joining GitHub in 2012, Avalos was asked to draw up a legal liability waiver for employees to sign before an off-site meeting. He mentioned it in a GitHub discussion, and an employee recalled that a lawyer had created such a document a few months earlier. “By the time I get into the [discussion] thread 10 minutes later, there’s a pre-existing [document] that I take five or ten minutes to tailor to this event, rather than reinventing the wheel,” he says. “For me, that was some kind of a ha moment, where I get why the developers like [GitHub].”
Many open-source software projects are hosted on GitHub (a service it offers them for free). The company thinks of its internal operations as open-source for employees, allowing anyone to see and contribute (through a pull request) to projects such as its first employee handbook in 2016 (a seemingly late effort, given claims of harassment by employee Julie Ann Horvath in 2014 that forced founder and CEO Tom Preston-Werner to resign).
The HR department started from a simple document called Hubber Expectations and (in the open-source spirit) from the employee handbook for game developer Valve Software. “We just built it in there through our community, through putting it on GitHub and getting feedback,” from employees, says Merritt Anderson, the head of HR. GitHub now plans to make its handbook open source so that other companies can build upon it.
GitHub also used its own platform to revamp the company’s parental leave policy, upping the time period from 16 to 20 weeks. Employees provided input through GitHub, such as pointing out more generous policies that Netflix and Pinterest were offering. Using what’s called a pull request, the HR team could alert employees of changes made to the policy or questions answered so that everyone had a chance to review them.
In our conversations with GitHub employees, we got many tips on how to use the platform better, be it for managing software development or any other projects. Here are a few that can be used for coding projects or adapted for other uses.
1) Save time with a discrete set of emojis
Emojis can easily get out of hand, and ambiguous. GitHub provides just six to express the most useful reactions, such as smile, frown, thumbs up, and thumbs down for pull requests.
Nicci Arsenault; HR
2) Use reaction sorting
You can sort by the volume of emoji-based reactions to see what issues have gotten the most engagement.
Ayman Nadeem, Software Engineer.
3) Use Projects (normally for tracking a coding endeavor) to create a to-do list, sorted by deadlines, for any type of duties.
4) Use Blame View to see why a piece of code was written
Blame view allows you to click on an entry in the project’s version history and see what the code looked like before that change was made. It saves you from having to dig through the file’s full history to find the part you are interested in.