Pro Yearly is on sale from $80 to $50! »

How to work like an Open Source Project

19d03ecc1ff5da1a5e63a3ddaa2d84c2?s=47 Ben Balter
January 21, 2015

How to work like an Open Source Project

Regardless of what you do

19d03ecc1ff5da1a5e63a3ddaa2d84c2?s=128

Ben Balter

January 21, 2015
Tweet

Transcript

  1. ! How to work like an Open Source Project (regardless

    of what you do) Ben Balter @benbalter government@github.com government.github.com
  2. ! What’s Open Source?

  3. Ye Olde workflow

  4. The olden days

  5. Bespoke collaboration

  6. ! A brief history of open source

  7. ! Let’s say you’re a lawyer…

  8. Impotent Legal Document Whereas the parties agree to as follows:

    1. Heretofor this agreement is made and entered into as 09 May 2014 (“Effective Date”), by and between Disclosing Party Name, (“the Disclosing Party”) and Recipient Name, (“the Recipient”) (collectively, “the Parties”). 2. Notwithstanding, for purposes of this Agreement, “Confidential Information” shall mean any and all non-public information, including, without limitation, technical, developmental, marketing, sales, operating, performance, cost, know-how, business plans, business methods, and process information, disclosed to the Recipient… Important
  9. ! Then what?

  10. " Version Control * 2d96cfe - (HEAD, tag: v3.1.1, origin/master,

    origin/HEAD, master) :gem: bump (43 minutes ago) <Ben Balter> * f4b446b - remove stray backtick (44 minutes ago) <Ben Balter> * 83599e3 - Merge branch 'master' of https://github.com/benbalter/g-man (46 minutes ago) <Ben Balter> |\ | * 42514ea - Merge pull request #61 from devscott/laxco (50 minutes ago) <Ben Balter> | |\ | | * 072d9b5 - Adding in additional entry for La Crosse County, WI (54 minutes ago) <Scott Sloan> | |/ * | 1e95d95 - remove unresolvable domains (46 minutes ago) <Ben Balter> * | 1a8645a - remove uwyo.edu/CES (86 minutes ago) <Ben Balter> |/ * 70410ba - Merge pull request #60 from jpmckinney/canada (2 hours ago) <Ben Balter> |\ | * a77ad43 - Use consistent comments for Canada hosts (2 hours ago) <James McKinney> | * 1776e45 - Add more Canadian hosts (2 hours ago) <James McKinney> * | 05211a0 - Merge pull request #58 from mitio/bulgarian-government-domains (3 hours ago) <Ben Balter> |\ \ | * | fe8f862 - Add Bulgaria's government main domain (3 hours ago) <Dimitar Dimitrov> | |/ * | 85d0c7b - Merge pull request #59 from mitio/fix-readme-typos (3 hours ago) <Ben Balter> |\ \ | |/ |/| | * f558a90 - Add missing word in the readme (3 hours ago) <Dimitar Dimitrov>
  11. ! What’s GitHub?

  12. ! The world’s largest code-sharing platform # Founded 2008 !

    VC Funded $100M $ Hubbers 232 % Users 7M & Projects 15M
  13. ! In your datacenter, or in the cloud ' GitHub.com

    (SaaS) Public engagement
 github.com/ngageoint (
 GitHub Enterprise (VM) Internal collaboration
 enterprise.github.com
  14. Version control today

  15. ) Propose the change

  16. * Review

  17. + Discuss

  18. , Merge

  19. - Mentions

  20. ! GitHub doesn’t think about knowledge management

  21. ! GitHub optimizes for knowledge workers

  22. ! The constraints of open source

  23. ! " Electronic High fidelity mediums expose process

  24. ! . Transparent Communicate decisions in realtime, and forever

  25. ! / Asynchronous Focus workflow on code, not meetings

  26. ! 0 Informal Adopt cultures, not polices

  27. ! What does your organization optimize for?

  28. ! First principles

  29. ! Friction
 lag between “I want to” and “I have”

  30. ! Metawork is a great waste of time

  31. ! A culture allergic to administrative distraction

  32. ! Prefer social constraints over technical constraints

  33. ! Prefer social constraints over administrative constraints

  34. ! Non-blocking is better than blocking

  35. ! Eliminate work

  36. ! Eliminate all humans

  37. ! How GitHub communicates

  38. Required reading zachholman.com/posts/github-communication

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

    talk about doing work”
  40. ! email? lolwat

  41. ! GitHub | Chat | Team | Halp

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

    Policies Sales Ops
  43. ! Chat

  44. None
  45. ! Why chat?

  46. ! Chat is inherently asynchronous

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

    jerk
  48. ! Scheduling a meeting is inherently a violation of the

    Geneva convention
  49. ! Chat has transcripts

  50. ! Chat exposes process

  51. 1 Meet Hubot

  52. 2 ChatOps

  53. # 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
  54. Some other ways Hubot helps Push Notifications Situational Awareness

  55. Twitter Subscriptions Ops “github down” The Government Room “open source

    government” The Danger Room “animal hijinks gif”
  56. ! Team

  57. Team Web | Android | iOS

  58. ! Team communicates… What’s up Ships Ideas Hubbers Notifications

  59. A communications culture

  60. A distributed company

  61. ! Halp

  62. What goes through halp? support@ government@ sales@ press@ security@

  63. Halp works just like GitHub @mentions Teams Markdown Emoji Opt

    in/out Everything at GitHub
  64. Halp works just like Gmail labels search filters

  65. Eliminate work github.com/benbalter/gman

  66. ! Tier-1 support Collaborative support

  67. ! Who in government is doing this?

  68. White House Open Data Policy

  69. USDS Playbook

  70. 18F open source policy

  71. CFPB developer portal

  72. Local government

  73. ! What about the private sector?

  74. Startups twitter.github.io yelp.github.io

  75. netflix.github.io adobe.github.io

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

  77. Fenwick & West Term Sheets

  78. Twitter Patent Agreement

  79. Even textbooks

  80. ! GitHub Zen api.github.com/zen Responsive is better than fast. It’s

    not fully shipped until it’s fast. Anything added dilutes everything else. Practicality beats purity. Approachable is better than simple. Mind your words, they are important. Speak like a human. Half measures are as bad as nothing at all. Encourage flow. Non-blocking is better than blocking. Favor focus over features. Avoid administrative distraction. Design for failure. Keep it logically awesome.
  81. ! How to work like an Open Source Project (regardless

    of what you do) Ben Balter @benbalter government@github.com government.github.com