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

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

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 clone

git status

git diff

git add

git commit

git log

git push

git pull

Branching
git branch

git merge

Git on the desktop
Committing via desktop

Pushing via desktop

Git on the web
Organizations

Repositories

Files

Issues

Forks
Pull Requests

Diffs

Discuss

Merge

Mentions

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
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
Open Source Demystified
From command line
to community engagement