Slide 1

Slide 1 text

@ c a s s i e n d @ o h r e b e c c a g o EVOLVING MOBILE APPLICATIONS WITH CONTINUOUS DELIVERY Cassie Shum & Rebecca Eakins

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

An evolutionary architecture supports incremental, guided change as a first principle along multiple dimensions. — Neal Ford “Evolutionary Architecture” EVOLUTION

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Continuous Deployment Continuous Delivery can deploy to production do deploy to production 㱺

Slide 8

Slide 8 text

•User feedback •Believable •Reduced deployment risk

Slide 9

Slide 9 text

2 month’s work Many LOC Risk 1 day’s work Few LOC Risk •User feedback •Believable •Reduced deployment risk

Slide 10

Slide 10 text

scope time target done •User feedback •Believable •Reduced deployment risk

Slide 11

Slide 11 text

Customer developent Agile product development Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F •User feedback •Believable •Reduced deployment risk

Slide 12

Slide 12 text

Release Build Deploy Test

Slide 13

Slide 13 text

Continuous Deployment Continuous Delivery can deploy to production do deploy to production 㱺

Slide 14

Slide 14 text

Test Testing pyramid Continuous Integration Testing on real devices

Slide 15

Slide 15 text

How many tests? TESTING STACK manual

Slide 16

Slide 16 text

$$$$ ¢ manual

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

PUSHING DOWN THE PYRAMID! manual

Slide 19

Slide 19 text

CONTINUOUS INTEGRATION

Slide 20

Slide 20 text

JEZ HUMBLE’S 3-STEP TEST 1. Every developer commits to master / trunk every day 2. Every commit triggers build and test 3. Failures usually fixed in minutes

Slide 21

Slide 21 text

JEZ HUMBLE’S 3-STEP TEST 1. Every developer commits to master / trunk every day 2. Every commit triggers build and test 3. Failures usually fixed in minutes

Slide 22

Slide 22 text

CONTINUOUS DELIVERY TOOL

Slide 23

Slide 23 text

FASTLANE

Slide 24

Slide 24 text

IT’S GETTING BETTER? https://medium.com/xcblog/xcode9-xcode-server-comprehensive-ios-continuous-integration-3613a7973b48

Slide 25

Slide 25 text

http://square.github.io/spoon/static/device_cluster.png IT’S GETTING BETTER?

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Release Build Deploy Test

Slide 28

Slide 28 text

@cassiend @ohrebeccago THANK YOU

Slide 29

Slide 29 text

Books: • Continuous Delivery - Jez Humble, Dave Farley • Working Effectively with Legacy Code - Michael Feathers • Release It - Michael Nygard • Domain Driven Design - Eric Evans Articles/Blogs: • Branch by Abstraction - Jez Humble: http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by- abstraction/ • Branch by Abstraction - Paul Hammant: http://paulhammant.com/blog/branch_by_abstraction.html/ • Feature Toggles - Martin Fowler: http://martinfowler.com/bliki/FeatureToggle.html • Conway’s Law: http://www.melconway.com/Home/Conways_Law.html Tools: • Appium: http://appium.io/ • Kiwi: https://github.com/kiwi-bdd/Kiwi • Calabash: http://calaba.sh/ • Robolectric: http://robolectric.org/ • New Relic: https://newrelic.com/mobile-monitoring • Fastlane: https://fastlane.tools/ • Spoon: http://square.github.io/spoon/ REFERENCES