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
iOSCon 2018: Sustainable Releases
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Danielle Tomlinson
March 22, 2018
Technology
94
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOSCon 2018: Sustainable Releases
Danielle Tomlinson
March 22, 2018
More Decks by Danielle Tomlinson
See All by Danielle Tomlinson
KubeCon EU 2018: Write Less Code, Use More Tools
dantoml
0
160
Introduction to Swift Performance - Try! Swift 2016
dantoml
1
18k
NSScotland 2015: AppKit for iOS Developers
dantoml
1
160
Swift Testing and Architecture
dantoml
0
200
Swift, meet Objective-C
dantoml
2
5.3k
Other Decks in Technology
See All in Technology
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
720
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
200
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
740
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.2k
モダンフロントエンド 開発研修
recruitengineers
PRO
4
620
JavaScript 研修 (2026)
recruitengineers
PRO
2
530
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
250
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
1.7k
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
210
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
560
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7.2k
Forza Horizon 6 のテレメトリ機能で 自動運転に使えそうな学習データを集める話
henjin0
0
170
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
Raft: Consensus for Rubyists
vanstee
141
7.6k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
240
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Speed Design
sergeychernyshev
33
2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
480
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The browser strikes back
jonoalderson
0
1.5k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
540
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
370
Transcript
Sustainable Releases A tale of teams and automation @dantoml @dantoml
[she/they] - iOSCon 2018
$ whoami @dantoml [she/they] - iOSCon 2018
CocoaPods @dantoml [she/they] - iOSCon 2018
! fastlane ! @dantoml [she/they] - iOSCon 2018
CircleCI @dantoml [she/they] - iOSCon 2018
! @dantoml [she/they] - iOSCon 2018
!!! @dantoml [she/they] - iOSCon 2018
This is not a talk about how CD will solve
all of your problems @dantoml [she/they] - iOSCon 2018
!" @dantoml [she/they] - iOSCon 2018
!" @dantoml [she/they] - iOSCon 2018
Backstory @dantoml [she/they] - iOSCon 2018
It didn’t build. @dantoml [she/they] - iOSCon 2018
!" @dantoml [she/they] - iOSCon 2018
! @dantoml [she/they] - iOSCon 2018
! @dantoml [she/they] - iOSCon 2018
Sound Familiar? @dantoml [she/they] - iOSCon 2018
! @dantoml [she/they] - iOSCon 2018
! all the things? @dantoml [she/they] - iOSCon 2018
No amount of ! will save you from a dysfunctional
environment. @dantoml [she/they] - iOSCon 2018
It's about delivering value @dantoml [she/they] - iOSCon 2018
@dantoml [she/they] - iOSCon 2018
How often do you ship? @dantoml [she/they] - iOSCon 2018
Release more often @dantoml [she/they] - iOSCon 2018
Every release is an opportunity to make users happy. @dantoml
[she/they] - iOSCon 2018
TypicalCorp: Milestone based releases @dantoml [she/they] - iOSCon 2018
TypicalCorp: Milestone based releases → Y Features need to be
in by X date @dantoml [she/they] - iOSCon 2018
TypicalCorp: Milestone based releases → Y Features need to be
in by X date → On X date we send to QA @dantoml [she/they] - iOSCon 2018
TypicalCorp: Milestone based releases → Y Features need to be
in by X date → On X date we send to QA → After QA we fix bugs @dantoml [she/they] - iOSCon 2018
TypicalCorp: Milestone based releases → Y Features need to be
in by X date → On X date we send to QA → After QA we fix bugs → Then we ship @dantoml [she/they] - iOSCon 2018
Atlassian, the business case for continuous delivery blog @dantoml [she/they]
- iOSCon 2018
@dantoml [she/they] - iOSCon 2018
So what can we improve? @dantoml [she/they] - iOSCon 2018
You can ship smaller changes @dantoml [she/they] - iOSCon 2018
Manage Expectations @dantoml [she/they] - iOSCon 2018
@dantoml [she/they] - iOSCon 2018
You don't need deadlines. @dantoml [she/they] - iOSCon 2018
⚗ Experiment! @dantoml [she/they] - iOSCon 2018
! @dantoml [she/they] - iOSCon 2018
! Metrics @dantoml [she/they] - iOSCon 2018
So what now? @dantoml [she/they] - iOSCon 2018
Release ! @dantoml [she/they] - iOSCon 2018
Some Requirements @dantoml [she/they] - iOSCon 2018
Some Requirements → Automated build + test for branches/prs @dantoml
[she/they] - iOSCon 2018
Some Requirements → Automated build + test for branches/prs →
Automated internal builds @dantoml [she/they] - iOSCon 2018
Some Requirements → Automated build + test for branches/prs →
Automated internal builds → Automated App Store builds @dantoml [she/they] - iOSCon 2018
But it's not just automation @dantoml [she/they] - iOSCon 2018
But it's not just automation → Policy for escalating hot
fix builds @dantoml [she/they] - iOSCon 2018
But it's not just automation → Policy for escalating hot
fix builds → Set release cadence for the App Store @dantoml [she/they] - iOSCon 2018
But it's not just automation → Policy for escalating hot
fix builds → Set release cadence for the App Store → Prioritised backlog of work @dantoml [she/they] - iOSCon 2018
RandomCorp: Release Trains → Sends a nightly internal+qa build →
Releases every other Tuesday w/ CI → Uses a release branch to make pushing hotfixes easier @dantoml [she/they] - iOSCon 2018
!"# @dantoml [she/they] - iOSCon 2018
Testing @dantoml [she/they] - iOSCon 2018
Acceptance Testing @dantoml [she/they] - iOSCon 2018
XCUITest @dantoml [she/they] - iOSCon 2018
! @dantoml [she/they] - iOSCon 2018
Changelog! @dantoml [she/they] - iOSCon 2018
!" @dantoml [she/they] - iOSCon 2018
@dantoml [she/they] - iOSCon 2018
scheme("SnapshotGenerator") devices([ "iPhone 6", "iPhone 6 Plus", "iPhone 5", "iPhone
4s" ]) languages([ "en-US", "de-DE", "es-ES", ["pt", "pt_BR"] # Portuguese with Brazilian locale ]) launch_arguments(["-username Felix"]) output_directory('./screenshots') clear_previous_screenshots(true) @dantoml [she/they] - iOSCon 2018
Localisation @dantoml [she/they] - iOSCon 2018
! @dantoml [she/they] - iOSCon 2018
! Feature Toggles @dantoml [she/they] - iOSCon 2018
Toggles are intentional Technical Debt @dantoml [she/they] - iOSCon 2018
Review Times @dantoml [she/they] - iOSCon 2018
Tooling @dantoml [she/they] - iOSCon 2018
Real World Example* *by which i mean a totally contrived
example. @dantoml [she/they] - iOSCon 2018
@dantoml [she/they] - iOSCon 2018
! @dantoml [she/they] - iOSCon 2018
Thank you @dantoml @dantoml [she/they] - iOSCon 2018