Developer Relations: Getting into GitHub
by Reena Leone
If you’ve ever worked with developers , you’ve probably heard of GitHub. As defined in the the Acquia eBook “GitHub 101 for Government”: “GitHub is a user-friendly website that helps people and organizations share code and collaborate on projects, like a social network oriented around code. The site’s main feature is hosted Git code repositories, like a “track changes” feature for software projects.”
GitHub was founded in 2008 and has since grown to over 14 million Github users and more than 35 million repositories. This makes GitHub the largest host of source code in the world.
The important role GitHub plays in the lives of the developers who use it can’t be understated. It is a tool vital to their work, their careers, and the spirit of open collaboration which has transformed the way software is written today.
To get started with GitHub, you create a project (after creating an account) to host and share it. A GitHub project consists of a repository of code and, if you choose, an issue queue and/or wiki. A repository is a place where all versions of all code for one project is stored. Once you have your repository, anyone (depending on permissions) can collaborate with you on your project
If you’re a commercial coder you might only allow access to colleagues inside of your organization and not make your project open to public view and commentary. The project’s owner decides who can see the code, comment on it, download it, or fork it (copy it) and create their own copy so they can work on their own version. They can then merge changes back into the original project, thus contributing to it.
GitHub is used to review code changes to projects, to “commit” code (code is committed to the repository), create pull requests (to let others know about code changes that have been pushed to the repository), etc. GitHub is designed for collaboration and discussion, which is critical to developers, especially in the open source community.
So why care about GitHub if you’re in marketing or developer relations? For the most part, if you don’t code you don’t need it. This is not an opportunity to fill your database of developer leads or promote your own products or services. However there are ways that developer relations evangelists can tap into GitHub to help collaborate better with developers with a need or interest in their technology.
Technical Content Review
When creating technical content for developers, accuracy is paramount. If you’re not a technical person yourself, you need a solid technical review from someone who is, especially if your piece contains snippets of code. GitHub is an excellent way to get such an expert review because it was designed with the intention of soliciting and receiving comments -- for code as well as documentation. Once you create a project on your GitHub, you can share a technical paper, a piece of documentation, or a draft of a blog post with whomever you want through the GitHub community. Developers and engineers can comment or even fork the piece of work or expand on your topic to give you a better understanding and ultimately deliver a more accurate piece of work.
Subject Matter Experts
In a sense, GitHub has become the "LinkedIn” of coders -- a professional repository of their projects and code that prospective recruiters and employers can review for a sense of the coder’s capabilities and approaches. In effect, GitHub is a vital piece of a modern coder’s resume, representing a record of their work from school and onwards throughout their career. While an engineering manager might want to see how a potential candidate codes, GitHub can also be used to see what project a developer might be working on and where their expertise may be deepest.
Many organizations use GitHub to promote and share their projects. The tech publisher O’Reilly Media posts their books on GitHub. Many are in working draft status so readers can report bugs, request features, provide feedback and stay informed about updates. A good example is HTMLBook.
Because anyone can add comments or report an issue, GitHub can also be used for “brand” management and keeping good relations with the greater community of devs.
GitHub’s role in the realm of developer relations became clear to us at Acquia this spring. Our Professional Services team released a free tool that they use to build and launch Drupal projects. It was inadvertently named something similar to different project (acquia/bolt vs. bolt/bolt) from another company. Developers from the bolt/bolt community alerted the Acquia team by submitting an issue, and we adjusted the name accordingly to avoid confusion. In the end we were able to remedy the situation quickly because of GitHub’s open, collaborative functionality.
GitHub might seem like foreign territory but it doesn’t have to be. Playing around with it and exploring is worth it if you want to understand developers and how they interact a little bit better. Remember that any comments, contribs or feedback must be useful and relevant; this is not a place to post promotional materials but seek out real technical expertise.