GitHub seems to be everywhere these days. Billed as “powerful collaboration, code review, and code management for open source and private projects,” GitHub is now used for a wide variety of things, not just programming tasks. At New Relic, for example, we’re using GitHub-style pull requests to manage our engineering department. Meanwhile, over at Kickstarter, they’re teaching GitHub for Poets.
At the Velocity Conference in Santa Clara, Calif., earlier this summer, Kickstarter’s lead operations engineer Aaron Suggs explained how the company created a GitHub for Poets training class “to introduce all employees to our engineering process and the codebase that runs kickstarter.com, regardless of their role or department.”
The one-hour “G4P” class is part of Kickstarter’s onboarding process, Suggs said. The goal is to give non-developers at the company—including marketing, editorial, and HR functions—an overview of Kickstarter’s engineering processes and how the engineering team works. Modeled on college classes like Physics for Poets, where the goal isn’t to turn people into physicists but because “it’s enriching to understand” complex material outside of one’s particular area of focus.
The class includes explanations of git branches and commits as well as git file layouts, plus a live demo of a copy change using the GitHub flow in the browser. Attendees find something to change, make the change, and commit it as a pull request for others to comment on and approve, Suggs said. Although it takes only five minutes, “It’s really eye opening to the employees who go through it.”
By allowing everyone to commit code, Suggs said, the company has created a more lightweight process for making simple changes such as text strings. Fixing typos used to involve what he called a “ridiculous process” of sending tickets to engineering, but now editors can do it themselves … just as customer support can improve messaging and HR can update job listings without bugging engineers for these mundane tasks. That has even avoided the need for Kickstarter to build a CMS, Suggs said, “at least for now.”
And despite concerns like “They will break the site” and “It’s a security liability,” some 29 “poets” have made 1,139 commits, Suggs said.
Most important, according to Suggs, “We’re making our engineering teams more inclusive and transparent” and spreading the cultural values of the consensus inherent in the pull-request process. Capturing the history of every change comes for free as part of the modern software development process, he explained. And besides, “Asking for help and improvement is a really powerful way to work.”
Good for Engineers, Too
Understanding how engineering works “improves how other teams work with engineering teams and improves how they work themselves,” as Suggs explained. Kickstarter is a big fan of acronyms like DRY (Don’t Repeat Yourself), ABL (Always Be Learning), and JiT (Just in Time) learning. With these techniques and a shared repository, “you can learn exactly what you need to get started,” Suggs said. GitHub’s system of pull requests means your work won’t affect anyone else until you commit it, Suggs added, so you don’t have to be an expert before you can start making a contribution.
G4P is a great way to help improve the way other teams work, said Suggs, and it also increases engineering’s impact within the company. Transparency and consensus lead to blamelessness, he said. Done right, the organization as a whole—not just a single individual—becomes responsible.