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