Slide 1

Slide 1 text

! Open source behind the firewall What government can learn from startups and the open source community @benbalter government.github.com [email protected]

Slide 2

Slide 2 text

! 1. How government works 2. How open source projects work 3. How gov. can work like open source

Slide 3

Slide 3 text

! How you work is as important as what you work on

Slide 4

Slide 4 text

! But first, I’d like to talk about trash cans

Slide 5

Slide 5 text

! But first, I’d like to talk about rubbish bins

Slide 6

Slide 6 text

! For any given problem, 
 there are always two solutions

Slide 7

Slide 7 text

! The easy way and 
 the government way

Slide 8

Slide 8 text

! When outputs can’t be measured, government institutes process

Slide 9

Slide 9 text

! A lot of process.

Slide 10

Slide 10 text

! " on the DC Metro

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

! " on the London Underground

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

! Transparency solves for process

Slide 18

Slide 18 text

! How government typically works

Slide 19

Slide 19 text

! Few (if any) in-house developers

Slide 20

Slide 20 text

! Same procurement process for 
 aircraft carriers and websites

Slide 21

Slide 21 text

! Siloed IP, Siloed efforts

Slide 22

Slide 22 text

! Closed source, but still somehow, too many cooks in the kitchen

Slide 23

Slide 23 text

! Program managers as 
 human issue trackers

Slide 24

Slide 24 text

! Non-purpose built tools (Excel + Outlook)

Slide 25

Slide 25 text

Ye Olde workflow

Slide 26

Slide 26 text

! Open Source ≠ Published Source

Slide 27

Slide 27 text

! How Open Source projects work

Slide 28

Slide 28 text

! If you remember one thing about open source’s secret sauce…

Slide 29

Slide 29 text

! Prefer systems that naturally capture and expose process

Slide 30

Slide 30 text

! Who made what change when (without the human blocker)

Slide 31

Slide 31 text

! Open source is the story of 
 Wikipedia v. Encyclopedia Britannica

Slide 32

Slide 32 text

! Rarely in the same place 
 at the same time

Slide 33

Slide 33 text

! Rarely working on the same thing
 at the same time

Slide 34

Slide 34 text

! Better results than 
 heavyweight alternatives

Slide 35

Slide 35 text

! The constraints of open source

Slide 36

Slide 36 text

! ! Electronic High fidelity mediums expose process

Slide 37

Slide 37 text

! # Transparent Communicate decisions in realtime, and forever

Slide 38

Slide 38 text

! $ Asynchronous Focus workflow on code, not meetings

Slide 39

Slide 39 text

! % Informal Adopt cultures, not polices

Slide 40

Slide 40 text

! What makes a healthy 
 open source project?

Slide 41

Slide 41 text

‣Code in the open ‣Shared, public issue tracker ‣Extensive test suite run on each proposed change & Code

Slide 42

Slide 42 text

‣Proposed improvements discussed in the open ‣Few synchronous meetings 
 (open and memorialized when necessary) ‣All stakeholders have opportunity to contribute ' Discussions

Slide 43

Slide 43 text

! What government can 
 learn from open source (even if the code’s never public)

Slide 44

Slide 44 text

! Friction (n)
 Time between “I want to contribute” and “I have”

Slide 45

Slide 45 text

! 1. Minimize friction

Slide 46

Slide 46 text

! in Gov Speak

Slide 47

Slide 47 text

! Maximize the substance-process ratio

Slide 48

Slide 48 text

! ( 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

Slide 49

Slide 49 text

! 2. Prefer cultural constraints to administrative or technical constraints

Slide 50

Slide 50 text

! Non-blocking is better than blocking

Slide 51

Slide 51 text

! 3. Optimize for 
 developer happiness

Slide 52

Slide 52 text

! You can have open source without executive oversight

Slide 53

Slide 53 text

! You can have open source without policy guidance

Slide 54

Slide 54 text

! You can’t have open source without developers

Slide 55

Slide 55 text

! You can’t have open source without code

Slide 56

Slide 56 text

! What does that look like practically?

Slide 57

Slide 57 text

! ) Email

Slide 58

Slide 58 text

! At GitHub we use GitHub to build GitHub

Slide 59

Slide 59 text

GitHub uses GitHub for Code Legal HR Blog posts Documentation Policies Sales Ops

Slide 60

Slide 60 text

zachholman.com/posts/github-communication

Slide 61

Slide 61 text

! “Meetings pull you from actual work in order to talk about doing work”

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

‣ 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.

Slide 64

Slide 64 text

! Why chat?

Slide 65

Slide 65 text

! Chat is inherently asynchronous

Slide 66

Slide 66 text

! Tapping someone on the shoulder is inherently being a jerk

Slide 67

Slide 67 text

! Scheduling a meeting is inherently evil

Slide 68

Slide 68 text

! Chat has transcripts

Slide 69

Slide 69 text

! Chat exposes process

Slide 70

Slide 70 text

* Meet Hubot

Slide 71

Slide 71 text

! + Continuous Integration (CI)

Slide 72

Slide 72 text

+ Continuous Integration (CI)

Slide 73

Slide 73 text

, Build Status

Slide 74

Slide 74 text

‣ ~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…

Slide 75

Slide 75 text

! /Deploy

Slide 76

Slide 76 text

! Nothing gets deployed unless tests are green

Slide 77

Slide 77 text

⚡ Doing it live

Slide 78

Slide 78 text

Meanwhile, back at the pull request…

Slide 79

Slide 79 text

! githubengineering.com/deploying-branches-to-github-com

Slide 80

Slide 80 text

0 ChatOps

Slide 81

Slide 81 text

" 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

Slide 82

Slide 82 text

! Who’s doing this?

Slide 83

Slide 83 text

! 20,000+ government users

Slide 84

Slide 84 text

! 1,000+ government organizations

Slide 85

Slide 85 text

! 100+ UK government orgs

Slide 86

Slide 86 text

! What about the private sector?

Slide 87

Slide 87 text

Startups twitter.github.io yelp.github.io

Slide 88

Slide 88 text

netflix.github.io adobe.github.io

Slide 89

Slide 89 text

Tech Giants sap.github.io ibm.github.io microsoft.github.io

Slide 90

Slide 90 text

! To summarize…

Slide 91

Slide 91 text

! 1. Transparency can save you 
 from the tyranny of process

Slide 92

Slide 92 text

! 2. Prefer systems that inherently
 capture and expose process

Slide 93

Slide 93 text

! 3. Minimize friction

Slide 94

Slide 94 text

! Open source behind the firewall What government can learn from startups and the open source community @benbalter government.github.com [email protected]

Slide 95

Slide 95 text

! Appendix

Slide 96

Slide 96 text

A typical deployment flow Development Staging Production

Slide 97

Slide 97 text

GitHub's 1 flow Development Staging Production Development Development Staging Staging

Slide 98

Slide 98 text

2 Branch Labs

Slide 99

Slide 99 text

3 Queuing

Slide 100

Slide 100 text

‣ Trash can — https://www.flickr.com/photos/dcmetroblogger/ 191721958/ ‣ Rubbish Bin - http://anonw.com/2013/02/08/more-bins-are- appearing-on-the-underground/