Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open source behind the firewall

19d03ecc1ff5da1a5e63a3ddaa2d84c2?s=47 Ben Balter
July 07, 2015
290

Open source behind the firewall

What government can learn from startups and the open source community

19d03ecc1ff5da1a5e63a3ddaa2d84c2?s=128

Ben Balter

July 07, 2015
Tweet

Transcript

  1. ! Open source behind the firewall What government can learn

    from startups and the open source community @benbalter government.github.com government@github.com
  2. ! 1. How government works 2. How open source projects

    work 3. How gov. can work like open source
  3. ! How you work is as important as what you

    work on
  4. ! But first, I’d like to talk about trash cans

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

  6. ! For any given problem, 
 there are always two

    solutions
  7. ! The easy way and 
 the government way

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

  9. ! A lot of process.

  10. ! " on the DC Metro

  11. None
  12. None
  13. None
  14. ! " on the London Underground

  15. None
  16. None
  17. ! Transparency solves for process

  18. ! How government typically works

  19. ! Few (if any) in-house developers

  20. ! Same procurement process for 
 aircraft carriers and websites

  21. ! Siloed IP, Siloed efforts

  22. ! Closed source, but still somehow, too many cooks in

    the kitchen
  23. ! Program managers as 
 human issue trackers

  24. ! Non-purpose built tools (Excel + Outlook)

  25. Ye Olde workflow

  26. ! Open Source ≠ Published Source

  27. ! How Open Source projects work

  28. ! If you remember one thing about open source’s secret

    sauce…
  29. ! Prefer systems that naturally capture and expose process

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

  31. ! Open source is the story of 
 Wikipedia v.

    Encyclopedia Britannica
  32. ! Rarely in the same place 
 at the same

    time
  33. ! Rarely working on the same thing
 at the same

    time
  34. ! Better results than 
 heavyweight alternatives

  35. ! The constraints of open source

  36. ! ! Electronic High fidelity mediums expose process

  37. ! # Transparent Communicate decisions in realtime, and forever

  38. ! $ Asynchronous Focus workflow on code, not meetings

  39. ! % Informal Adopt cultures, not polices

  40. ! What makes a healthy 
 open source project?

  41. ‣Code in the open ‣Shared, public issue tracker ‣Extensive test

    suite run on each proposed change & Code
  42. ‣Proposed improvements discussed in the open ‣Few synchronous meetings 


    (open and memorialized when necessary) ‣All stakeholders have opportunity to contribute ' Discussions
  43. ! What government can 
 learn from open source (even

    if the code’s never public)
  44. ! Friction (n)
 Time between “I want to contribute” and

    “I have”
  45. ! 1. Minimize friction

  46. ! in Gov Speak

  47. ! Maximize the substance-process ratio

  48. ! ( 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
  49. ! 2. Prefer cultural constraints to administrative or technical constraints

  50. ! Non-blocking is better than blocking

  51. ! 3. Optimize for 
 developer happiness

  52. ! You can have open source without executive oversight

  53. ! You can have open source without policy guidance

  54. ! You can’t have open source without developers

  55. ! You can’t have open source without code

  56. ! What does that look like practically?

  57. ! ) Email

  58. ! At GitHub we use GitHub to build GitHub

  59. GitHub uses GitHub for Code Legal HR Blog posts Documentation

    Policies Sales Ops
  60. zachholman.com/posts/github-communication

  61. ! “Meetings pull you from actual work in order to

    talk about doing work”
  62. None
  63. ‣ 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.
  64. ! Why chat?

  65. ! Chat is inherently asynchronous

  66. ! Tapping someone on the shoulder is inherently being a

    jerk
  67. ! Scheduling a meeting is inherently evil

  68. ! Chat has transcripts

  69. ! Chat exposes process

  70. * Meet Hubot

  71. ! + Continuous Integration (CI)

  72. + Continuous Integration (CI)

  73. , Build Status

  74. ‣ ~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…
  75. ! /Deploy

  76. ! Nothing gets deployed unless tests are green

  77. ⚡ Doing it live

  78. Meanwhile, back at the pull request…

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

  80. 0 ChatOps

  81. " 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
  82. ! Who’s doing this?

  83. ! 20,000+ government users

  84. ! 1,000+ government organizations

  85. ! 100+ UK government orgs

  86. ! What about the private sector?

  87. Startups twitter.github.io yelp.github.io

  88. netflix.github.io adobe.github.io

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

  90. ! To summarize…

  91. ! 1. Transparency can save you 
 from the tyranny

    of process
  92. ! 2. Prefer systems that inherently
 capture and expose process

  93. ! 3. Minimize friction

  94. ! Open source behind the firewall What government can learn

    from startups and the open source community @benbalter government.github.com government@github.com
  95. ! Appendix

  96. A typical deployment flow Development Staging Production

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

  98. 2 Branch Labs

  99. 3 Queuing

  100. ‣ Trash can — https://www.flickr.com/photos/dcmetroblogger/ 191721958/ ‣ Rubbish Bin -

    http://anonw.com/2013/02/08/more-bins-are- appearing-on-the-underground/