Repo? Forking? Pushing? Pull request? Merged?
We’ve all heard about Github, but unless you are a programmer, you probably don’t understand exactly what it is nor how it works. In simple terms, Github is a code sharing and publishing service that allows versioning, collaboration, access control, task management, wikis, bug reporting, and feature requests. The code is hosted in a repository, or repo, and gives anyone with access to your repository to copy the source code (forking) to their computer, make changes, put those changes back to the repository for review (pushing), have the owner of the repository look over the changes (pull request), and if the owner agrees, the changes will be made to the master source code (merged). This process allows for multiple programmers to contribute to a single project without duplicating or overriding anyone else, and having snapshots of every version of your project.
Why should we know about it?
Admit it. We’ve all had to deal with them at one point or another: IT, developers, engineers, programmers. Traditionally, the relationship between developers and designers has been contentious to say the least, and has be described as “[bordering] on sibling rivalry”.
However, there are ways to make this relationship better and more productive. This article from Smashing Magazine argues that you should include your developer in the design process. After all, one wouldn’t want to propose a design that is impossible to build, and developers actually make design decisions all the time.
If communication is the key to success, then we must learn the communication of those implementing our research-informed designs. Github is incredibly popular with developers and programmers. According to Github, there are 9.2M people collaborating right now across 21.8M repositories on GitHub. Chances are that sometime in your life as an information/UX professional, the developers creating your user research informed design will be working with Github. The major benefit of learning the basics of Github is the ability report bugs and make feature requests. Instead of email, gchat, skype, slack, or any other communication channel one prefers, nothing is more efficient than using Github to request changes and report problems. By posting issues directly into a Github repository, all the problems become centralized, leading to quicker fixes and faster changes to the iterative process of messy design.