Skip to content

Instantly share code, notes, and snippets.

@john-science
Last active April 26, 2016 20:22
Show Gist options
  • Save john-science/ccd9f9b267e155f43ee9 to your computer and use it in GitHub Desktop.
Save john-science/ccd9f9b267e155f43ee9 to your computer and use it in GitHub Desktop.
Is GitHub right for your government agency?

Government on GitHub

What is GitHub? Is GitHub right for your government agency?

What is Git?

Git is a command-line tool that helps people who write software in several key ways:

  1. Git is a place to store all your code.
  2. Git tracks all your changes.
  3. Git allows people to work together.

Git is a free and open source distributed version control system designed to handle everything from small to very large projects. There isn't a company in Silicon Valley that doesn't use some form of it. Having a "code repository" is the first step in organizing your code and your software projects.

1. A Place to Store Your Code

Our team spends all year writing big programs and little scripts to do their job. Without a code repository like Git, they would each keep what they write on their own machines. People would have to contantly ask each other for the latest versions. And there would be no central place for people to find what they need. Git solves that problem.

And it doesn't just work with code. Git can store and track any file type.

2. Track Changes

You know how you can turn on "Track Changes" in Microsoft Word? Well, GitHub tracks all changes to all your files permanently. You can always look back in time and get an older version of any file. And all changes have little comments attached to them, so you can see why people made the changes they did.

This works on everything, it doesn't matter what kind of file it is.

3. People Working. Together

With all of the code in one place, and all the changes constantly tracked, Git is the ideal platform for people to work together. Everyone knows where the latest version of everything is. No one ever has to be out of the loop.

We are already using it!

The MMB group has been using a private "Git repository" for about 18 months now, and the majority of our code is stored in it (on a local Linux machine). When changes are made, people can get the new code any time they want. Easily. It has been very successful and has helped us organize our work, which is extremely varied and complicated.

What is GitHub?

GitHub is a web interface for your Git repositories. GitHub is:

  1. Free
  2. Universal
  3. An Automatic Back-Up
  4. Much more friendly than using Git on the command line
  5. A joy to use.
  6. Helps people work together, when-and-wherever.

In the Cloud

GitHub stores your files in the cloud (like Dropbox), so they can be accessed anywhere in the world. GitHub is totally free, as long as you keep your projects public. If you want private GitHub repositories, there is a small fee.

Automatic Back-Up

Everyone stores their code into GitHub and it lives there. When people want something, they can easily make a complete copy of the entire repository, or a single file, and then they work on that copy. The original copy serves as a back-up on the GitHub servers.

Improving Cooperation

You know how Facebook has "Like" buttons and threaded comments and pictures of your friends and their adventures? While non-programmers find Git to be about as exciting as a fax machine, GitHub makes the process of working with a project through Git feel like using Facebook. It is easy to use, easy to understand, and has a ton of tools to improve cooperation.

We'll see some of those tools later.

Is GitHub Good for Governments?

An important question is whether GitHub is a feasible tool for governments to use. Thankfully, you do not have to blaze a new trail. There are already many government organizations using GitHub at every level in America.

U.S. Government Agencies on GitHub

Open government. For real.

For more information about government projects on GitHub, see their introduction.

EPA

The federal EPA has a very active GitHub profile, with so many project it's hard to sort through them all. But we might be interested in their introduction to the R programming language.

CEMPD

CEMPD, at UNC, writes a lot of code for the federal EPA.

Here are some of their bigger projects:

BAAQMD

BAAQMD, The Bay Area Air Quality Management District.

So Many More

NASA, NIST, Los Alamos National Lab, USGS, US Census Bureau to name a few, but there are literally hundreds of US City, County, State, and Federal agencies using GitHub. They include:

  • 125 federal agencies
  • 45 states
  • 18 counties
  • 2 tribal nations
  • 63 cities
  • 10 districts
  • 10 military and intelligence agencies
  • 92 research labs

GitHub Examples

Let's take a look at some GitHub repositories and see what features GitHub gives you.

The Process

  1. Create "organization" for your agency on GitHub.
  2. Find an administrator for your organization.
  3. Start with one, simple repository.
  4. Find the person who's in charge of that repository.
  5. Publish.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment