Building open source community culture online, Part 1
Read on for highlights, stats & learnings from Spinnaker Gardening Days
With people worldwide rediscovering subsistence strategies like cooking and bread baking, I hope that gardening will also enjoy a resurgence! Tweet your garden pics to @dnilas0r with your answer to, “why do you garden?” any time : )
While planning the first Spinnaker Gardening Days, I continually asked myself: what will make folks in the OSS community want to join? What motivates people to contribute to open source projects?
Current circumstances render the question “why do we garden,” rhetorical; of course, we garden for fresh food and beautiful yards. But how many of us stay connected to those clear benefits in our daily lives? Gardening is gratifying, but not instantly. So, we may overlook it.
Just like we all eat, we all use open source software. We build careers and businesses on its capacity to solve problems. When it’s time to apply for a job, prepare a conference talk, or write our bio, demonstrated open source engagement makes an instant difference. To get that gratification, we need to start planting our contribution seeds now.
The hackathon proved that our community is ready and willing to sow those seeds. Prospective contributors expect a huge return on investment in Spinnaker Success at their organizations. As our community heats up, they can also expect the spotlight as the skills and contributions they manifest enhance professional profiles and generate buzz.
Enable the world on Spinnaker with standard development environment setup
The hackathon also proved that establishing a Spinnaker development environment is time-consuming. With several installation routes, and different gotchas to address depending on individual infrastructure choices, this can quickly overwhelm a new contributor. To help contributors prepare, we wrote a development environments guide which covers several viable routes. It even contains a video guide for local installation using Minnaker, a Spinnaker quick-start tool built by Armory for POC installations. Still, the variance we found in environment setup across expert Spinnaker developers indicates that no best practices exist. This isn’t the inviting, smooth onboarding process we’re striving for. Rob Zienert, who volunteered as an on-call expert along with fellow Spinnaker engineers from Netflix, Google, and Armory, addressed this in a key post to our main event Slack channel, #gardening-general:
^ TOC-member Rob Zienert responds to the community’s need with a pledge to lead development of an official Spinnaker Dev Toolkit
I have joined the #dev-toolkit channel and look forward to working with the TOC to unblock prospective contributors for a productive 2020! Please join us, as a standard dev toolkit would help organizations quickly influence Spinnaker’s evolution, in the true spirit of open source.
Hackathon result stats
A message I hoped to communicate to all prospective contributors in the hackathon: start small! Tracking issues and PRs that interest you, and commenting on them to provide context (even when you don’t have a solution), is a great way to start learning a new codebase. The event gave me a better idea of how to balance formation of project teams with to option to work solo on smaller projects. We had one wildly successful project team, which built a plugin for using Pulumi in Spinnaker pipelines (more on their project below).
First, let’s look at this event’s output. Here’s a rundown of recorded contributions (excluding activity from Armory folks). CONGRATULATIONS to these contributors, who will soon receive their prizes from sponsor Salesforce:
- Cristhian Castaneda, @castanedaci
- 1 issue, 1 PR, 4 commits to a repository in spinnaker-hackathon
- Dan Hernandez, @danfhernandez
- 11 issues, 3 commits to a repository in spinnaker-hackathon
- Pulumi Plugin project proposal
- Brian Kelley, @battlecow
- 1 pull request review, 5 commits to a repository in spinnaker-hackathon
- RDS Snapshotter Plugin project proposal
- 1 stackoverflow answer
- Rin Oliver, @celanthe
- 1 commit, 2 pull requests to a repository in spinnaker
- 1 blog post
- Edgar Magana, @emagana
- 1 pull request, 1 commit to a repository in spinnaker
- Trent Albright, @talbright
- 1 pull request to a repository in spinnaker-hackathon
- Development environment guide feedback via Slack
- Barath Sriram, @tcprbs
- Guillaume Dupin, @yogeek
- 2 issues, 1 issue comment in spinnaker
- Prashanth Guduru, @pguduru
- 1 issue comment on an issue he recently submitted to spinnaker, and comments on spinnaker/spinnaker issues 5429, 4595, 5403
- Andres Leon Rangel, @aleon1220
- 1 commit to a repository in spinnaker
We found that many attendees focused on environment setup and introductory plugin building tasks, according to the training we provided. I know we’ll see some of those “seeds” in full bloom at the next Gardening Days!
The Pulumi plugin project
We were thrilled to host a project team with a strong drive to flex Spinnaker’s new Plugin framework to create a custom pipeline stage. Thanks to the framework and clear extension points in Orca, Spinnaker’s orchestration engine, this team was able to scope their integration project with just enough time to demo working AWS resource creation as we concluded the hackathon. Check it out:
For a behind-the-scenes view, look at the code for the Pulumi Plugin, which lives in our Spinnaker-hackathon organization. The plugin deploys and runs Pulumi, an Infrastructure as Code tool that provisions AWS, GCP, and Kubernetes resources with code in your language of choice. Users of this plugin won’t need to leave the Spinnaker UI to interact with Pulumi and see output of its resource actions; it’s all integrated. So, did the Pulumi team enjoy Spinnaker Gardening Days? Dan Hernandez, the project proposer, said in the demo:
The whole time, we had anywhere from 3-8 people on the line with us, with a lot of folks contributing in different ways, even if only by listening and learning and chiming in here and there. We’re thankful for that, as we expected it to be just us to be working on this. It was definitely a surprise to get all of the engagement, which is awesome.
Armory’s plugins team worked tirelessly with colleagues from Google and Netflix to set up and test the new framework and build extension points into Spinnaker. Hoping to engage the community in what they’ve built, they put together a training program to introduce Spinnaker Gardening Days developers to using it. From backend, to frontend, to build and delivery, this series lets you learn step-by-step from experts and creators. Watch the full playlist below:
Plugin Training Playlist
Armory engineers were so excited to use real problems to test and improve the plugin framework. For the Pulumi team, the feeling was mutual. Cristhian, the Pulumi team’s lead developer, said in the demo:
Special thanks to Clay, who helped us to understand how Spinnaker plugins work. It was very helpful. Clay was awesome.
Clay McCoy, the Armory engineer he’s referring to, had a lot of fun working with everyone on the Pulumi team, and got great feedback to bring back into Spinnaker Plugins. He was happy to “get an idea of what an ideal Spinnaker and Pulumi integration would look like,” and I’m so excited to see what grows out of this collaboration!
Thirst for Spinnaker training
The last thing to highlight in Part 1 is the incredible demand for Spinnaker training. Folks have heard the success stories and want support in capturing the value of continuous delivery at their organizations. Luckily, the Armory training team was ready to deliver an awesome lineup of Spinnaker training that ranged from beginner to more advanced topics like custom stages, SpEL, and of course, plugins. 116 people signed up to attend the training track, and we’ve already seen over 500 views of event training videos. Check out the full playlist of training videos below.
Spinnaker Training Playlist
Hearing the community converse about training needs and new project ideas warmed my heart! We’ll hit the ground running at Spinnaker Gardening Days II, coming soon.
Meanwhile, look out for Part 2 of this article, which will dig deeper into what we learned from Spinnaker Gardening Days, including motivation strategies, internationalization, and ways to contribute! I’ll show you my data collection efforts to track contributions, and new efforts to dashboard and gamify them. For now, if you’re still hungry for Spinnaker training, make sure you’re tuned into the action on Spinnaker Slack, and join our live webinar, “Get Started with Spinnaker,” at 4 PM EST/1 PM PST today!