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
Danielle Tomlinson
March 22, 2018
Technology
0
76
iOSCon 2018: Sustainable Releases
Danielle Tomlinson
March 22, 2018
Tweet
Share
More Decks by Danielle Tomlinson
See All by Danielle Tomlinson
KubeCon EU 2018: Write Less Code, Use More Tools
dantoml
0
150
Introduction to Swift Performance - Try! Swift 2016
dantoml
1
18k
NSScotland 2015: AppKit for iOS Developers
dantoml
1
140
Swift Testing and Architecture
dantoml
0
190
Swift, meet Objective-C
dantoml
2
5.3k
Other Decks in Technology
See All in Technology
20250623 Findy Lunch LT Brown
3150
0
760
AI技術トレンド勉強会 #1MCPの基礎と実務での応用
nisei_k
1
240
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
200
Prox Industries株式会社 会社紹介資料
proxindustries
0
190
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
1
140
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1.2k
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.1k
Agentic DevOps時代の生存戦略
kkamegawa
0
950
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
470
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
1.1k
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
850
UIテスト自動化サポート- Testbed for XCUIAutomation practice
notoroid
0
110
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Adopting Sorbet at Scale
ufuk
77
9.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Code Reviewing Like a Champion
maltzj
524
40k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
4
200
A better future with KSS
kneath
239
17k
Agile that works and the tools we love
rasmusluckow
329
21k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
It's Worth the Effort
3n
184
28k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
Speed Design
sergeychernyshev
31
1k
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