Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
iOSCon 2018: Sustainable Releases
Danielle Tomlinson
March 22, 2018
Technology
0
55
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
99
Introduction to Swift Performance - Try! Swift 2016
dantoml
1
17k
NSScotland 2015: AppKit for iOS Developers
dantoml
1
100
Swift Testing and Architecture
dantoml
0
160
Swift, meet Objective-C
dantoml
2
5k
Other Decks in Technology
See All in Technology
エンタープライズにおけるSRE立ち上げとNew Relic選定に至った背景とは / SRE Startup and New Relic in the Enterprise
tomoyakitaura
2
120
完全に理解した incremetal 〜そして、何もわからないへ〜
mashiike
0
200
Learning from AWS Customer Security Incidents [2022]
ramimac
0
400
三越伊勢丹の接客DXを支える「DevOps基盤」とは
imdigitallab
0
250
tfcon-2022-cpp
cpp
5
4.6k
AWSの基礎を学ぼうで学んだ9種類のDBを勝手にふりかえる
98lerr
2
700
Microsoft Power Automate で 始めるRPAと自動化
taikiyoshida
0
1.8k
【OCHaCafe#5】その Pod 突然落ちても大丈夫ですか?
k6s4i53rx
2
120
[SRE NEXT 2022]ヤプリのSREにおけるセキュリティ強化の取り組みを公開する
mmochi23
1
260
THETA Xの登場はジオ業界を変えるか?
furuhashilab
0
160
組織でPower Virtual Agentsを導入するために知っておきたいこと
miyakemito
0
1.4k
Nutanix_Meetup_20220511
keigotomomatsu
0
140
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
25
1.4k
Three Pipe Problems
jasonvnalue
89
8.6k
In The Pink: A Labor of Love
frogandcode
130
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
Testing 201, or: Great Expectations
jmmastey
21
5.4k
Mobile First: as difficult as doing things right
swwweet
212
7.5k
The Brand Is Dead. Long Live the Brand.
mthomps
45
2.7k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
A designer walks into a library…
pauljervisheath
196
16k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
How to Ace a Technical Interview
jacobian
265
21k
Writing Fast Ruby
sferik
612
57k
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