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
390
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.3k
Open source inspired workflows for open (and closed) geospatial data
benbalter
0
130
Featured
See All Featured
Unsuck your backbone
ammeep
669
57k
How to train your dragon (web standard)
notwaldorf
88
5.7k
GraphQLとの向き合い方2022年版
quramy
44
13k
Typedesign – Prime Four
hannesfritz
40
2.4k
Designing Experiences People Love
moore
138
23k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
It's Worth the Effort
3n
183
28k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Cost Of JavaScript in 2023
addyosmani
45
7k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Adopting Sorbet at Scale
ufuk
73
9.1k
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/