Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Open source behind the firewall
Search
Ben Balter
July 07, 2015
3
350
Open source behind the firewall
What government can learn from startups and the open source community
Ben Balter
July 07, 2015
Tweet
Share
More Decks by Ben Balter
See All by Ben Balter
A community of communities: Empowering maintainers to grow communities around their code
benbalter
1
1.2k
Fostering a culture of collaboration
benbalter
0
190
Growing open source communities on GitHub around your WordPress plugin or theme
benbalter
1
210
It takes a digital village
benbalter
1
380
Open source workflows in highly regulated environments
benbalter
0
76
Optimize for Developer Happiness
benbalter
0
260
The technology is the easy part
benbalter
2
260
How to foster an open source culture inside Government
benbalter
3
2.2k
Open source inspired workflows for open (and closed) geospatial data
benbalter
0
130
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Facilitating Awesome Meetings
lara
50
6.1k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
For a Future-Friendly Web
brad_frost
175
9.4k
Speed Design
sergeychernyshev
24
610
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
A Philosophy of Restraint
colly
203
16k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Agile that works and the tools we love
rasmusluckow
327
21k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Transcript
! Open source behind the firewall What government can learn
from startups and the open source community @benbalter government.github.com
[email protected]
! 1. How government works 2. How open source projects
work 3. How gov. can work like open source
! How you work is as important as what you
work on
! But first, I’d like to talk about trash cans
! But first, I’d like to talk about rubbish bins
! For any given problem, there are always two
solutions
! The easy way and the government way
! When outputs can’t be measured, government institutes process
! A lot of process.
! " on the DC Metro
None
None
None
! " on the London Underground
None
None
! Transparency solves for process
! How government typically works
! Few (if any) in-house developers
! Same procurement process for aircraft carriers and websites
! Siloed IP, Siloed efforts
! Closed source, but still somehow, too many cooks in
the kitchen
! Program managers as human issue trackers
! Non-purpose built tools (Excel + Outlook)
Ye Olde workflow
! Open Source ≠ Published Source
! How Open Source projects work
! If you remember one thing about open source’s secret
sauce…
! Prefer systems that naturally capture and expose process
! Who made what change when (without the human blocker)
! Open source is the story of Wikipedia v.
Encyclopedia Britannica
! Rarely in the same place at the same
time
! Rarely working on the same thing at the same
time
! Better results than heavyweight alternatives
! The constraints of open source
! ! Electronic High fidelity mediums expose process
! # Transparent Communicate decisions in realtime, and forever
! $ Asynchronous Focus workflow on code, not meetings
! % Informal Adopt cultures, not polices
! What makes a healthy open source project?
‣Code in the open ‣Shared, public issue tracker ‣Extensive test
suite run on each proposed change & Code
‣Proposed improvements discussed in the open ‣Few synchronous meetings
(open and memorialized when necessary) ‣All stakeholders have opportunity to contribute ' Discussions
! What government can learn from open source (even
if the code’s never public)
! Friction (n) Time between “I want to contribute” and
“I have”
! 1. Minimize friction
! in Gov Speak
! Maximize the substance-process ratio
! ( Scripts to rule them all $ script/test Bootstrapping
$ boxen giants $ cd ~/github/giants $ script/bootstrap Running $ script/server Testing githubengineering.com/scripts-to-rule-them-all
! 2. Prefer cultural constraints to administrative or technical constraints
! Non-blocking is better than blocking
! 3. Optimize for developer happiness
! You can have open source without executive oversight
! You can have open source without policy guidance
! You can’t have open source without developers
! You can’t have open source without code
! What does that look like practically?
! ) Email
! At GitHub we use GitHub to build GitHub
GitHub uses GitHub for Code Legal HR Blog posts Documentation
Policies Sales Ops
zachholman.com/posts/github-communication
! “Meetings pull you from actual work in order to
talk about doing work”
None
‣ We use 185 rooms at the moment. ‣ We
generated 29,168 lines of text on February 4. ‣ Of that, Hubot accounted for 13,462 lines. ‣ 468 images were pasted in. ‣ We deployed various apps and services 544 times.
! Why chat?
! Chat is inherently asynchronous
! Tapping someone on the shoulder is inherently being a
jerk
! Scheduling a meeting is inherently evil
! Chat has transcripts
! Chat exposes process
* Meet Hubot
! + Continuous Integration (CI)
+ Continuous Integration (CI)
, Build Status
‣ ~1,500 test suits ‣ ~19,00 tests ‣ ~80,000 assertions
‣ x 2 environments (.com, Enterprise) ‣ Tests > 20 seconds are considered a failure ‣ ~ 90 seconds to complete - On each push…
! /Deploy
! Nothing gets deployed unless tests are green
⚡ Doing it live
Meanwhile, back at the pull request…
! githubengineering.com/deploying-branches-to-github-com
0 ChatOps
" Shared Command Line •View cameras in our datacenter •
Search error logs • Manage and trigger alerts • Perform server maintenance • View load balancer status • Spin up cloud instances • Provision servers • Adjust firewall ports • Activate DDoS Mitigation • Restart processes • Configure DNS • Deploy to production
! Who’s doing this?
! 20,000+ government users
! 1,000+ government organizations
! 100+ UK government orgs
! What about the private sector?
Startups twitter.github.io yelp.github.io
netflix.github.io adobe.github.io
Tech Giants sap.github.io ibm.github.io microsoft.github.io
! To summarize…
! 1. Transparency can save you from the tyranny
of process
! 2. Prefer systems that inherently capture and expose process
! 3. Minimize friction
! Open source behind the firewall What government can learn
from startups and the open source community @benbalter government.github.com
[email protected]
! Appendix
A typical deployment flow Development Staging Production
GitHub's 1 flow Development Staging Production Development Development Staging Staging
2 Branch Labs
3 Queuing
‣ Trash can — https://www.flickr.com/photos/dcmetroblogger/ 191721958/ ‣ Rubbish Bin -
http://anonw.com/2013/02/08/more-bins-are- appearing-on-the-underground/