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
540
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Code, Test, Deploy
How to Ship Software Like a Startup
Ben Balter
August 20, 2014
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
250
Growing open source communities on GitHub around your WordPress plugin or theme
benbalter
1
280
It takes a digital village
benbalter
1
550
Open source workflows in highly regulated environments
benbalter
0
110
Optimize for Developer Happiness
benbalter
0
310
The technology is the easy part
benbalter
2
320
How to foster an open source culture inside Government
benbalter
3
2.6k
Open source inspired workflows for open (and closed) geospatial data
benbalter
0
200
Other Decks in Technology
See All in Technology
最近評価が難しくなった
maroon8021
0
330
ポストモーテム! DDoSからサイトは守れた。 でもビジネスは守れなかった。
bengo4com
0
2.7k
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
1
210
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
1
210
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
200
Claude Codeとハーネスについて考えてみる
oikon48
18
9.2k
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
150
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
2.9k
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
310
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
1
330
Zoom2Youtube.Claude
kawaguti
PRO
3
490
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
370
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Six Lessons from altMBA
skipperchong
29
4.3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
180
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
What's in a price? How to price your products and services
michaelherold
247
13k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
460
Balancing Empowerment & Direction
lara
6
1.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
ラッコキーワード サービス紹介資料
rakko
1
3.9M
Embracing the Ebb and Flow
colly
88
5.1k
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]