Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Open Source Demystified

From command line
to community engagement

  Roadmap

  • Git (command line, desktop, web)
  • Ground rules for government
  • Community Engagement
  • Q & A

  What is Open Source?

* Rarely two people working on the same thing at the same time * Rarely two people working at the same place at the same time * Produces better results than purpose-built counterparts * The story of Wikipedia versus Encyclopedia Britannica

  What is version control?

Who made what change, when?

Ye olde workflow

email

  What is Git?

The open source workflow

Author Publishes Author Reviews
 
Collaborator Modifies Community Discusses

  What is GitHub?

* Web-based, visual, social layer on top of open-source Git * Largest code host in the world * Free for public engagement * Starts at $300 for internal collaboration

The GitHub flow


Create a branch

Add commits

Open a pull request

Discuss & Review

Merge & Deploy

Meet Gman

gman

  Git

* Open source distributed version control system * Created by Linus Torvalds, creator of the Linux operating system * Everyone has a complete copy, no server/client relationship

git init

git **init**

git clone

git **clone**

git status

git **status**

git diff

git **diff**

git add

git **add**

git commit

git **commit**

git log

git **log**

git push

git **push**

git pull

git **pull**

  Branching

git branch

git **branch**

git merge

git **merge**

  Git on the desktop

  Committing via desktop

commiting via desktop

  Pushing via desktop

pushing via desktop

  Git on the web

  Organizations

City of Philadelphia

Repositories

Philadelphia Flu Shot Spec

  Files

flu shot spec

  Issues

An issue

  Forks

  Pull Requests

pull request

  Diffs

diff

  Discuss

discussion

  Merge

Merge

  Mentions

Mention

  Changelog

changelog

  Ground rules
for government

  Finding great projects

  • Update frequency
  • Issues
  • Forks, stars, watchers, downloads
  • Documentation
  • Organization or user
  • Number of contributors
  • Who else uses it?
  • License
  • The code itself

Source

  Great open source teams

  • Open development process
  • Developers with an open source track record
  • Open from day one
  • Ships 0.1, not 1.0
  • Open source stack

Source

  A closed source stack

  • OS - Windows
  • Server - IIS
  • DB - MSSQL
  • Language - ASP.net
  • Framework - Umbraco

  • Your site - Plugins/modules/theme

  An open source stack

  • OS - Linux
  • Server - Apache
  • DB - MySQL
  • Language - PHP
  • Framework - WordPress/Drupal
  • Your site - Plugins/modules/theme

  Open source governance

  • Benevolent dictator for life (BDFL)
  • Collaborator
  • Contributors
  • Users

  Open source licensing

  • choosealicense.com
  • Contract for IP rights with outside developers
  • CC0 ALL THE THINGS!
  • Drupal, WordPress, Joomla - GPL

But, IANYL

  Open source security

  • Often more secure than closed source
  • Security through obscurity
  • Release cycles
  • Treat custom code as foreign code
  • Code review is code review
  • No threat until in production

Community engagement

One class of developers

  • One bug tracker
  • Minimize (and memorialize meatspace discussions)
  • Equality of information sharing and input

Communicate
the bigger picture

  • Open source problems, not solutions
  • Project goals, founders’ vision
  • Development roadmap, timeline
  • Project status

Encourage Contributors

  • How to contribute
  • Feedback & Acknowledgement
  • Minimize friction through tooling
  • Requirements, how to run locally
  • Automated testing

Governance

  • Decentralize decision making
  • Provide clear value to all stakeholders

Continuium of stakeholders

  • Non-technical, non-user stakeholders (“the boss”)
  • Potential users
  • Non-technical users
  • Veteran (or curious) users
  • Subject-matter experts
    (accessibility, content, i18n)
  • Technical users
  • Active developers
  • Potential developers

Ways to contribute

  • Kick the tires, does it work?
  • What would you love to see?
  • Documentation
  • Community evangelism
  • Answer Q&A in the forums
  • Genius bar at meetups
  • Translations
  • Give feedback on proposed bug fixes / features, submit new ones
  • Recruit new developers

Next Steps

Getting started

  • The technology is the easy part
  • Feedback repositories
  • Open source an existing small project
  • Start your next project in the open
  • Communicate more openly within your organization

  Learn more

government.github.com

  Join the community

github.com/government