“Git what?” Extolling GitHub’s virtues to non-coders
What is GitHub and why should you care?
When NYC Planning Labs starts a new project, we begin by explaining to our new customers the basics of how we work. GitHub is an essential part of our workflow, and it’s also a tool most non-developers haven’t heard about. In this post, I’ll highlight aspects that are most beneficial for non-coders to understand.
Highlights:
GitHub is a powerful project management tool with features that are beneficial for many types of projects. It’s most important features include content management, version control, and task management.
Github stores all work in a centralized place where anyone can view and use it.
Have you ever had to take over someone else’s project when they’re no longer around to help? In that scenario, there are usually notes or files that someone forgets to share, and you’re left trying to figure out how to piece things together. GitHub solves all of that by acting as the centralized repository for an entire project. All the code used to create an application and any relevant documentation lives in one place where it can be easily shared with others via the web.
Here’s an example repository for our ZoLa app. It stores and lists all the files and folders for the application. One essential file, called a README, provides the documentation that guides someone through rebuilding the app. In the README file, we can nicely format text and embed images and diagrams. GitHub also allows us to provide links to specific sections of the documentation or even specific lines of text in a file in order to answer someone’s question or point them in the right direction.
GitHub allows collaborative work with version control.
In addition to storing all the files needed for a project, GitHub does an incredible job of tracking all the changes (called “commits”) made to the files. We can see who made changes when, and we can see exactly what they changed. If any mistakes were made, GitHub enables us to easily revert back to a previous version of the code.
We’re also able to have team members work on separate copies (called “branches”) of the code, make changes independently, and then easily merge the diverged versions back together. That way multiple people can be working on pieces of the application at the same time without holding each other up. When a team member has completed a task on their “branch,” they submit their changes (called a “pull request”) to be reviewed by the rest of the team before it can be merged in.
Tasks (called “issues”) are tracked publicly where anyone can add on to the to-do list and see recent progress.
This task management feature is perhaps the most important aspect of GitHub that non-coders should leverage. If you use an application and notice a bug, GitHub enables you to report that bug directly to the project team by submitting an “issue.” Similarly, you can submit issues with ideas for improvements and new features. You can also search through existing issues to see what work is already planned for the project. This makes the product development process much more transparent, allowing anyone to see what ideas have been received and what work has been completed (i.e. which issues have been “closed”).
In an given issue, you can add comments to discuss its merits and how to approach resolving it. You can also attach images and any relevant documents. The project team can also assign a team member to an issue, give it a label, or assign it a completion deadline.
GitHub’s task management system is completely free (as long as you make your repository public), and it can even be used for non-coding work streams. For example, our agency has setup GitHub repositories for tracking data quality issues that need to be researched and resolved by urban planners. In our application, ZAP Search, we allow users to report data quality issues about zoning and land use applications which are sent directly to a GitHub repository as new issues. In this way, GitHub can be an excellent tool for people who don’t code at all.
—
We hope this was helpful! If you’re curious to learn more about GitHub, this blog post by Stephen Brennan delves deeper into the details and terminology in an accessible way.