NASA’s Jet Propulsion Laboratory in Pasadena, California has been experimenting and innovating on projects for decades, ranging from early iterations of rocket development in the 1930’s to NASA’s Explorer 1 in the 1950’s. Today, JPL is instrumental in some of the most important research of our time, including climate change, energy, robotics, and astrophysics, and software development makes that research possible.
Inter-agency and international collaboration has been integral to JPL’s success for decades, but software development was fractured internally. Legacy application lifecycle management tools were employed with varying measures of success. But having no simple way to allow other developers to see how others were working, they were duplicating work.
JPL began to question their software development tools. “Where can I share this code I’ve written?” At that point, the answer was, “Nowhere, we don’t do that at JPL.” At the same time, applicants to JPL began replacing links to static code archives with URLs to popular sites for sharing and collaborating on source code on their resumes. Development outside JPL was becoming more collaborative, and it was hoped that a collaboration hub for software development would raise awareness between scientists for each others’ projects and workflow within JPL.
JPL made an initial installation of GitHub Enterprise available within the Operations Laboratory, a center for innovation in mission operations technology, and it was quickly adopted by the twenty or so regular users of the lab. By August of 2013, usage had spread to 80 users through word-of-mouth. Availability of GitHub Enterprise was officially announced in October, and by December 2014, the installation had grown to more than 600 users.
Simple administration tools are a big asset when it comes to convincing groups at JPL to get started on GitHub Enterprise. There’s nothing on the backend of their installation that might cause a fracturing of the community, so GitHub Enterprise becomes a reflection of the individuals and teams that use it.
By providing a platform that integrates with lots of different tools and supports many different workflows, we’ve provided the greatest common denominator to our developers, while capturing the greatest value for JPL—a single location where developers can find code that solves JPL’s problems.
Software collaboration has picked up traction at JPL. There are now monthly meetups across labs to share openly, and organizers often underestimate the number of chairs required for the events. They’re starting to see conversations around modernizing the software practice, and in having a more vital role in the open source community. They’re building a collaborative and contributory community.
How JPL is integrating with GitHub
JPL has a tool service that supports some popular software tools, including AccuRev, Bamboo, Coverity, Eclipse, IDL, JIRA and JIRA Agile, JRebel, QMetry, Subversion, STK and others. They use the GitHub API to get information on who is using the system, where to focus evangelism, and who to talk to about specific development projects.