Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Architecting for Experiments at Cookpad Global

Architecting for Experiments at Cookpad Global

92dd0805ebf2aa63b19dccd4be2e5de8?s=128

Chris Trott

February 16, 2018
Tweet

Transcript

  1. Architecting for Experiments at Cookpad Global Chris Trott @Cookpad HQ

    Tokyo 2018-02-16
  2. Chris Trott iOS @ Cookpad Global @twocentstudios

  3. Cookpad Global is...

  4. Startup

  5. Established

  6. Requirements? —Experiment with new features —Support our existing features

  7. Experimenting

  8. Why experiment?

  9. How to experiment

  10. Prototyping tools

  11. Audiences for user testing Squad · Company · In person

    · Region · Production
  12. Release tools Staging servers · DeployGate · TestFlight · Staged

    releases · Feature flags
  13. DeployGate

  14. None
  15. None
  16. None
  17. Product challenges of experimentation —What do we want to learn?

    —Choosing the right tool —Choosing the right audience —Constraints of release tools
  18. Technical challenges of experimentation —Writing code fast —Minimum level of

    quality —Predicting change
  19. Architecting experimental code

  20. What is architecture?

  21. Why architect?

  22. When to architect?

  23. Example feature

  24. None
  25. None
  26. None
  27. None
  28. None
  29. None
  30. None
  31. None
  32. When to architect?

  33. Architect to isolate change

  34. When is the most change occurring?

  35. Early in product development lifecycle?

  36. Middle of product development lifecycle? —System complexity —Bugs —Audience changes

  37. Late in product development lifecycle?

  38. Full example

  39. None
  40. Other techniques

  41. Use composable tools

  42. Negotiate change

  43. What about experimenting on stable systems?

  44. Summary

  45. Thank you!

  46. None