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

Scaling your app's release process

Scaling your app's release process

We’ll discuss some strategies to iterate on your app release process, some software tools that can help you, and how to reorient your organization for a mobile-first world.

Neil Kimmett

June 07, 2022
Tweet

More Decks by Neil Kimmett

Other Decks in Programming

Transcript

  1. June 2022
    Scaling your app’s release
    process


    Neil Kimmett

    View Slide

  2. Scaling your app’s release
    process


    Neil Kimmett
    June 2022

    View Slide

  3. 3
    @neilkimmett
    👋 hello


    🇬🇧 from Southampton


    🗽 live in NYC


    📱 Director of Eng @ ClassPass

    View Slide

  4. 4
    Write code


    Ship code

    View Slide

  5. 5
    Write code


    Ship code
    Vecteezy.com

    View Slide

  6. 6

    View Slide

  7. 7

    View Slide

  8. 8

    View Slide

  9. 9

    View Slide

  10. 10

    View Slide

  11. 11

    View Slide

  12. 12

    View Slide

  13. 12

    View Slide

  14. 13

    View Slide

  15. 14

    View Slide

  16. 15
    What it means to ship an
    app

    View Slide

  17. 16
    How ClassPass has evolved
    our process

    View Slide

  18. 17
    How you can design


    your process

    View Slide

  19. 18
    What it means to ship an
    app

    View Slide

  20. 19
    Deploying web code

    View Slide

  21. 19
    Deploying web code

    View Slide

  22. 19
    Deploying web code

    View Slide

  23. 19
    Deploying web code

    View Slide

  24. 19
    Deploying web code

    View Slide

  25. 19
    Deploying web code

    View Slide

  26. 19
    Deploying web code

    View Slide

  27. 20
    Deploying app code

    View Slide

  28. 20
    Deploying app code

    View Slide

  29. 20
    Deploying app code

    View Slide

  30. 20
    Deploying app code

    View Slide

  31. 20
    Deploying app code

    View Slide

  32. 20
    Deploying app code

    View Slide

  33. 21

    View Slide

  34. 22

    View Slide

  35. 23
    What can we do about it?

    View Slide

  36. 24
    Start small

    View Slide

  37. 25
    1.0.0

    View Slide

  38. 26
    1.0.0

    View Slide

  39. 26
    1.0.0
    major

    View Slide

  40. 26
    1.0.0
    major
    minor

    View Slide

  41. 26
    1.0.0
    major
    minor
    patch

    View Slide

  42. 27

    View Slide

  43. 27

    View Slide

  44. 27

    View Slide

  45. 27

    View Slide

  46. 28
    Versioning strategy

    View Slide

  47. 28
    Versioning strategy

    View Slide

  48. 28
    Versioning strategy

    View Slide

  49. 29
    Branching strategy

    View Slide

  50. 30
    Branching strategy
    GitFlow

    View Slide

  51. 31
    Branching strategy
    Trunk

    View Slide

  52. 32
    Automate some stuff

    View Slide

  53. 33
    fastlane.tools

    View Slide

  54. 34
    Introduce process as you go

    View Slide

  55. 35
    Create a release checklist ✅

    View Slide

  56. 36
    Create a release checklist ✅

    View Slide

  57. 37
    Create a planning sheet 📄

    View Slide

  58. 38
    Create a planning sheet 📄

    View Slide

  59. 39
    Run regular retrospectives 🔄

    View Slide

  60. 40
    Run regular retrospectives 🔄
    • Talk about your feelings


    • Discuss what’s working and what isn’t


    • Continuously improve your process


    • Check out retrospectivewiki.org for format ideas

    View Slide

  61. 41
    Release strategies 🚢

    View Slide

  62. 42
    Release strategies 🚢

    View Slide

  63. 42
    Release strategies 🚢
    • Feature based releases ✨


    • Keep developing features, release when ready

    View Slide

  64. 42
    Release strategies 🚢
    • Release train 🚂


    • Regular release cadence


    • If feature isn’t ready in time, it misses the train and catches the next one
    • Feature based releases ✨


    • Keep developing features, release when ready

    View Slide

  65. 43
    Tools to join the big leagues


    🛠💪

    View Slide

  66. 44
    Feature flags 🚩

    View Slide

  67. 45
    Feature flags 🚩

    View Slide

  68. 46
    Feature flags 🚩

    View Slide

  69. 47
    Server driven UI ☁

    View Slide

  70. 48
    Server driven UI

    View Slide

  71. 49
    ClassPass cancel flow

    View Slide

  72. 50
    Build an internal tool 🛠

    View Slide

  73. 51
    Build an internal tool

    View Slide

  74. 52
    Build an internal tool

    View Slide

  75. 53
    Buy a tool 💸

    View Slide

  76. 54
    Buy a tool
    runway.team

    View Slide

  77. 55
    Buy a tool
    runway.team

    View Slide

  78. 56
    Buy a tool
    runway.team

    View Slide

  79. 57
    Start small
    Introduce


    process


    as you go
    Add tooling


    where


    needed

    View Slide