Architecting for Experiments at Cookpad Global
by
Chris Trott
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Architecting for Experiments at Cookpad Global Chris Trott @Cookpad HQ Tokyo 2018-02-16
Slide 2
Slide 2 text
Chris Trott iOS @ Cookpad Global @twocentstudios
Slide 3
Slide 3 text
Cookpad Global is...
Slide 4
Slide 4 text
Startup
Slide 5
Slide 5 text
Established
Slide 6
Slide 6 text
Requirements? —Experiment with new features —Support our existing features
Slide 7
Slide 7 text
Experimenting
Slide 8
Slide 8 text
Why experiment?
Slide 9
Slide 9 text
How to experiment
Slide 10
Slide 10 text
Prototyping tools
Slide 11
Slide 11 text
Audiences for user testing Squad · Company · In person · Region · Production
Slide 12
Slide 12 text
Release tools Staging servers · DeployGate · TestFlight · Staged releases · Feature flags
Slide 13
Slide 13 text
DeployGate
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
Product challenges of experimentation —What do we want to learn? —Choosing the right tool —Choosing the right audience —Constraints of release tools
Slide 18
Slide 18 text
Technical challenges of experimentation —Writing code fast —Minimum level of quality —Predicting change
Slide 19
Slide 19 text
Architecting experimental code
Slide 20
Slide 20 text
What is architecture?
Slide 21
Slide 21 text
Why architect?
Slide 22
Slide 22 text
When to architect?
Slide 23
Slide 23 text
Example feature
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
When to architect?
Slide 33
Slide 33 text
Architect to isolate change
Slide 34
Slide 34 text
When is the most change occurring?
Slide 35
Slide 35 text
Early in product development lifecycle?
Slide 36
Slide 36 text
Middle of product development lifecycle? —System complexity —Bugs —Audience changes
Slide 37
Slide 37 text
Late in product development lifecycle?
Slide 38
Slide 38 text
Full example
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
Other techniques
Slide 41
Slide 41 text
Use composable tools
Slide 42
Slide 42 text
Negotiate change
Slide 43
Slide 43 text
What about experimenting on stable systems?
Slide 44
Slide 44 text
Summary
Slide 45
Slide 45 text
Thank you!
Slide 46
Slide 46 text
No content