Skip to content

Open Source Dev: 06.01.2018

Kasia Chmielinski edited this page Jun 1, 2018 · 1 revision

Conversation with Spoke project (moveon.org) (6/1/18)

HISTORY

  • Started as a closed project within Bernie campaign - Coders for Bernie
  • Moveon negotiated with them to adopt the codebase - last April / March 2017
  • Open-sourced it July 2017 - came to them kind of gnarly - took a bit of work to get it into shape
  • Working in production (in the open) Sept 2017
  • Forked by Australian marriage equality campaign
    • Pulling in Australian company’s changes was actually tough, they should have just rewritten the features
  • But they were interested in maintaining the story of provenance - both internally and externally - there is value in that
    • He suggests that our story is also about transparency in government
  • Open source ‘is a strategy’ that takes a lot of time
    • 'The first six months in the open is a lot of work’ - you’re doing more work than getting benefit
    • A question of resource management - it is very intensive
    • Make it ‘newbie-ready’ - this takes a lot of work up front

HACKATHON NOV 2017

  • … as forcing function for newcomer experience
  • Suddenly had 10-20 ppl trying to install it all at once
  • ‘I got to see all the things they ran into’
  • ‘If you asked me at that point whether this was worth open sourcing the project, I’d said 'I think we should give it six months, but not yet …''
  • They got two really strong contributors
    • A few really committed developers - one guy on paternity leave ‘who was bored’ - haha sigh.

FROM 1 USERS TO N USERS

  • 'You’re going to be in the wilderness for a while'
  • Recommendation: find a partner or organization that is another compelling user of the code
    • Their users are organizations, not individual users (similar to us)
    • At 2 users, the codebase is suddenly forced to be generic
  • Now over a 100 campaigns using it (!)
    • SEIU, Working Families Party, …
    • Super contributors = 5-7 people
    • 1 feature submitted = 15
    • Installed Codebase = 100
  • Make it super easy - make campaigns ‘not afraid of the software'
    • They made a ‘one-click heroku button’ to set up
    • Youtube video to ‘setup spoke in 10 min’
    • Run test suite, sample data (include sample data)
    • They were 'performing in public’ - in the slack channel, they would work with people to get things up and running ‘publicly’
  • ‘Sales funnel’
    • They’re competing with actual vendors (like us)
    • ‘This is as close to any kind of promotion you will ever see from us’
      • **opensource.moveon.org —> easy to pitch to your boss - like a ‘vendor website’ **
      • ‘This saved us $100k’ etc. and here’s how to contact us
    • "100 learn about it, 10 will say they will, 1 will actually do something"

TRACKING SUCCESS / MEASURING COMMUNITY

  • Tracking activity in the slack channel
  • Tracks activity in GitHub repo (notifications)
    • People are super intimidated and he tries to eliminate or reduce intimidation / imposter syndrome
    • ‘Just commenting makes us happy’
    • ‘You can mark your work ‘work in progress’ and we’ll help you get it over the finish line’
    • Be explicit about encouraging people to engage
  • Doesn’t look at forks, ‘though I should’
    • **Actually prefers that people run code off master - unmergable forks are an indication of ‘a sad open source project’ **

COMMUNITY MANAGEMENT

  • Asked one of the contributors to run the community themself - he basically escalated the power of this one individual, and it solidified that person’s commitment
  • I didn’t want to say to people ‘Give me your email address’ - he said ‘go to this issue and comment on it!’ and he knows that GitHub will email them with notifications on the issue, and that he has their handle on GitHub
  • Matches contributors to new orgs who need features - suggests that org pays dev, and then merges changes back up

TELLING A STORY

  • **‘Theory of Change’ **- he abbreviates this as TOC
  • Story that you tell others: ‘If you do X, change will happen’ - meta level is important for folks to understand their impact (and want to contribute)
  • Very simple and quick pitch - it should be really clear
  • Highlighting customers through the work that the tech enables (‘changed outcomes for healthcare in Alabama through the election’) - how it actually impacted people

DEVELOPER EXPERIENCE

  • Dev should be up and running in 10min - 30min max.
  • How to deal with dependencies on external services
    • Spoke is dependent on telephony, authentication for end-to-end experience
    • The readme says very explicitly that if you want an end-to-end setup, you will need to interface with third party services
      • They have to keep updating readme as third party services change (‘super annoying’)
    • Make it easier for folks to develop locally by stubbing out third party services
      • e.g. for twilio connection, he stubbed out a fake service so that you can actually run everything locally and get a ‘reply’ that looks like a text message - for local dev and testing
    • The ‘airplane test’ - can you develop and run things locally in a meaningful way (on an airplane)
  • Good first issues
    • ‘Even though it would have taken me five minutes to fix the bug, I just filed the bug as ‘good first issue’ instead so others could pick it up’
    • Important to have these ready for hackathon
    • **In each issue, write out which files will be touched in this issue **
    • Think about the junior developer who has never before contributed to an open source project

HACKATHON LOGISTICS

  • Before hackathon - they had 2 people install the codebase beforehand and get feedback - ‘some stranger needs to go from zero to X on their own before you take it to a hackathon’
  • At Hackathon - grouped people into 2s and 3s to do the install together
  • ‘Abortion Access’ hackathon in NY is a really strong example
    • If you can bring someone who is a user of the software - not a developer, but someone who uses it, and if they can attend with you, it creates a motivation
  • Have issues ready - good first issues list needs to be prepped - 5-10 issues that could be completed in less than a day (a new person can do it)
  • Goals & success metrics
    • He’s looking at whether people had a good experience
    • ‘I could write that code in 5 minutes, so it’s not about the code’
    • You’re trying to get people into to the project, or just coding for a good cause - evangelism around open source
    • Lower the barrier to engaging with open source project
    • At best, one person in the hackathon will continue working on the project - 'that’s a great success'
    • 'Go wide'
Clone this wiki locally