Innovation at Scale: Why GitHub is an excellent tool for the job

Stephen Bunch
HackerNoon.com
4 min readDec 14, 2016

--

GitHub has become the default collaboration tool for many tech innovations ranging from simple ideas such as Reactive Programming to massive enterprise-backed open-source software development projects such as Microsoft’s .NET. I used to think of GitHub as a website for hosting source code repositories in the cloud. Today, I see it as the foundation for collaborating on big ideas.

If you’ve looked at GitHub in the past, you may have been turned off by all the technical jargon and the fact that you had to use the terminal. Nowadays, you can do everything through a web interface, and although the technical jargon hasn’t gone away, I’d argue that it actually helps you think about the collaboration process in a more structured way.

Decentralized Decision Making

At the heart of GitHub is this concept called a “pull request”. A pull request is simply a request made by a contributor to incorporate changes to some information. This transaction is much like letting your spouse know that you’re going to hang out with your friends after work instead of coming home. The purpose isn’t to ask permission, but to allow a decision to be challenged before making a commitment. Understanding this distinction is key to understanding the process behind decentralized decision making and solving problems at scale.

When you make a pull request (PR), the other team members can see a visual diff of the lines of text that were changed and see what the new text will look like if the PR is accepted. They can also leave comments, suggest improvements, and require additional changes that prevent the PR from being accepted without their explicit approval. Once a PR is accepted, the changes are applied and the PR is archived. Later, you can view a file and use the “blame” tool to find the specific PR where the change was introduced. This is especially helpful when you want to know why a particular change was made months down the road after everyone has forgotten the original discussion.

In the past, meetings were used to collaborate on decisions. Today, pull requests offer many benefits:

  • Participants don’t need to be available at the same time to have a discussion.
  • A discussion doesn’t have to fit within the timeframe of a meeting. Some problems take a long time to solve, and it’s unrealistic to think that every problem can be solved within a 1-hour meeting (or 8 hours even).
  • The entire discussion is documented and linked to the physical line of text that is being changed.
  • PR owners are less likely to leave key people out of a decision. It’s very easy to setup a process that notifies people whenever there’s a change in an area that they care about.

Pull requests revolutionize the way teams collaborate on ideas. They allow specialization of knowledge without sacrificing time and quality of outcome.

And more features

Source Control

Most collaboration tools provide document history. This is great if you want to view a single file in the past. But it doesn’t allow you to see what your entire project looked like at the time a particular change was introduced. Often times, you need to see the content of multiple related files to understand the full picture. GitHub also allows linking to files at a specific revision. This is helpful when you need to reference things in the past.

Folder Structure and Search

GitHub organizes files using folders just like your computer. You can easily search for a file by its full path using the File Finder. You can also create “relative links” to files. This makes it easy to link to other files in the project.

Markdown Formatting

Markdown is a simple way to add style to your text without getting technical. It removes the need for a WYSIWG editor, and it’s much easier to work with. Think of it like HTML without all the syntax of HTML.

Editing Files Online

It’s now possible to edit files directly from the website and create a pull request. You no longer need to edit files locally and type “git commands” in the terminal.

Using GitHub for any project

GitHub isn’t just a tool for developers. It can be used for many kinds of knowledge work. Not only does it allow for better quality control, it provides a workflow that allows teams to scale as problems become more complex.

See how Kubernetes uses GitHub to document their project.

Update: Check out my video tutorial to see how GitHub can be used without getting too technical:

Hacker Noon is how hackers start their afternoons. We’re a part of the @AMIfamily. We are now accepting submissions and happy to discuss advertising &sponsorship opportunities.

To learn more, read our about page, like/message us on Facebook, or simply, tweet/DM @HackerNoon.

If you enjoyed this story, we recommend reading our latest tech stories and trending tech stories. Until next time, don’t take the realities of the world for granted!

--

--