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
Code, Test, Deploy
Search
Ben Balter
August 20, 2014
Technology
0
520
Code, Test, Deploy
How to Ship Software Like a Startup
Ben Balter
August 20, 2014
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.3k
Fostering a culture of collaboration
benbalter
0
220
Growing open source communities on GitHub around your WordPress plugin or theme
benbalter
1
230
It takes a digital village
benbalter
1
440
Open source workflows in highly regulated environments
benbalter
0
91
Optimize for Developer Happiness
benbalter
0
280
The technology is the easy part
benbalter
2
280
How to foster an open source culture inside Government
benbalter
3
2.4k
Open source inspired workflows for open (and closed) geospatial data
benbalter
0
150
Other Decks in Technology
See All in Technology
american airlines®️ USA Contact Numbers: Complete 2025 Support Guide
supportflight
1
110
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.7k
KiCadでPad on Viaの基板作ってみた
iotengineer22
0
300
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
270
CRE Camp #1 エンジニアリングを民主化するCREチームでありたい話
mntsq
1
120
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
960
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
180
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
130
第4回Snowflake 金融ユーザー会 Snowflake summit recap
tamaoki
1
280
Claude Code に プロジェクト管理やらせたみた
unson
6
3.9k
OPENLOGI Company Profile for engineer
hr01
1
34k
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
1
460
Featured
See All Featured
Facilitating Awesome Meetings
lara
54
6.4k
Embracing the Ebb and Flow
colly
86
4.7k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Navigating Team Friction
lara
187
15k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Building an army of robots
kneath
306
45k
Fireside Chat
paigeccino
37
3.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
! Code, Test, Deploy How to Ship Software Like a
Startup Ben Balter government.github.com
[email protected]
! What’s GitHub?
! The world’s largest code-sharing platform " Founded 2008 !
VC Funded $100M # Hubbers 232 $ Users 7M % Projects 15M
! In your datacenter, or in the cloud & GitHub.com
(SaaS) Public engagement github.com/ngageoint ' GitHub Enterprise (VM) Internal collaboration enterprise.github.com
! 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
! + Code
! , Git * 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>
None
% Find your project
- Prioritize tasks
. Propose the change
/ Review
0 Discuss
1 Merge
2 Mentions
! 3 Friction Delay between “I want to contribute” and
“I have contributed”
None
! 4 Scripts to rule them all $ script/test Bootstrapping
$ boxen giants $ cd ~/github/giants $ script/bootstrap Running $ script/server Testing
! 5 Test
6 Meet Hubot
7 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
Two other ways Hubot helps Push Notifications Situational Awareness
8 Continuous Integration (CI)
9 Build Status
: On each push… •~1,500 test suits •~15,00 tests •~75,00
assertions • x 2 environments (.com, Enterprise) •Tests > 20 seconds are considered a failure •~ 90 seconds to complete
! /Deploy
! Nothing gets deployed unless tests are green
A typical deployment flow Development Staging Production
GitHub's ; flow Development Staging Production Development Development Staging Staging
, Branch Labs
< Queuing
⚡ Doing it live
Meanwhile, back at the pull request…
! Tools make the difference
> A typical day at GitHub • 230 employees
(2/3rd remote) • 185 chatrooms • ~30,000 lines of text (13,000 from Hubot) • ~500 images • 500+ deploys • 1000+ pushes • 320 issues opened •185 pull requests opened (of which 145 merged that day)
~130 production deploys per day
~41 deploys to GitHub.com per day
! Code, Test, Deploy How to Ship Software Like a
Startup Ben Balter government.github.com
[email protected]