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

Release Strategies

Release Strategies

4d6be90af74894fd132fb06dacec04d7?s=128

Samuel E. Giddins

July 15, 2017
Tweet

Transcript

  1. Release Strategies Samuel Giddins 1 Release Strategies, @segiddins, Mobile Optimized

    2017
  2. Things I've Released 2 Release Strategies, @segiddins, Mobile Optimized 2017

  3. Things I've Released • CocoaPods • Bundler • Realm Cocoa

    • Tumblr.app 3 Release Strategies, @segiddins, Mobile Optimized 2017
  4. Why talk about releasing software? 4 Release Strategies, @segiddins, Mobile

    Optimized 2017
  5. Why talk about releasing software? • We all do it

    • It's on the border between technical & non-technical skills • We don't talk about it very often • It's something I've gotten wrong countless times 5 Release Strategies, @segiddins, Mobile Optimized 2017
  6. Why do we release software? 6 Release Strategies, @segiddins, Mobile

    Optimized 2017
  7. Why !? • A convenient name for the software at

    one point in time • A convenient time to market • A concrete end point for the current work in progress • A chance to get the most recent work onto our users' devices 7 Release Strategies, @segiddins, Mobile Optimized 2017
  8. Why !? A convenient name for the software at one

    point in time • semver • "Are you using 2.5.1? Please update to 2.6.0, it fixes that bug" 8 Release Strategies, @segiddins, Mobile Optimized 2017
  9. Why !? A convenient time to market • "Update now

    to version 2.0 !" • "Only $5 for all these great new features!" • "Please remember my app exists and buy it if you like it "" 9 Release Strategies, @segiddins, Mobile Optimized 2017
  10. Why !? A concrete end point for the current work

    in progress • We want to ship this refactor, fix the bad crash, and add the improved signup screen by the end of the month • After this release, I'm going to take a ! 10 Release Strategies, @segiddins, Mobile Optimized 2017
  11. Why !? A chance to get the most recent work

    onto our users' devices • New ways to make money • Fixing bugs so users are happy again • Stay in sync with what other teams are doing 11 Release Strategies, @segiddins, Mobile Optimized 2017
  12. Why !? These are the business reasons for doing software

    releases. They guide the choices we make around release schedules, the tools and processes we employ, and how we evaluate our success as engineers. 12 Release Strategies, @segiddins, Mobile Optimized 2017
  13. Release Strategies 13 Release Strategies, @segiddins, Mobile Optimized 2017

  14. (Popular) Release Strategies 14 Release Strategies, @segiddins, Mobile Optimized 2017

  15. Popular Release Strategies • Never • When the boss feels

    like it • When amount of work has been done • Every years / months / weeks • Continuously 15 Release Strategies, @segiddins, Mobile Optimized 2017
  16. Release Strategies Never ResearchKit has the best release date ever.

    ! vs. "# - Fight! (@NeoNacho) April 12, 2015 16 Release Strategies, @segiddins, Mobile Optimized 2017
  17. Release Strategies Never • Software you don't release is software

    you don't have to support • No extra work required! • But you can never announce it, never be paid for it, and never call it "done" 17 Release Strategies, @segiddins, Mobile Optimized 2017
  18. Release Strategies When the boss feels like it • No

    predictability • No pressure to do a release if you don't want to • In general: ¯\_(ϑ)_/¯ 18 Release Strategies, @segiddins, Mobile Optimized 2017
  19. Release Strategies When amount of work has been done •

    Every release contains the right amount of changes • Enough to market / be proud of / warrant the effort • Not too much • Users can trust that upgrading is worthwhile • On a small / mature product, the gap between releases can get large 19 Release Strategies, @segiddins, Mobile Optimized 2017
  20. Release Strategies Every years / months / weeks We bring

    you an update to the app store every 2 weeks to improve your experience using app. Please leave a review. Every major iOS app for the past 2 years 20 Release Strategies, @segiddins, Mobile Optimized 2017
  21. Release Strategies Every years / months / weeks Thanks for

    using clothes, Brian! To make clothing better for you, clothes are released every two weeks. Every update of clothes includes improvements for style and comfort. As new clothes become available we will be highlighting those for you in your closet. @luisobo 21 Release Strategies, @segiddins, Mobile Optimized 2017
  22. Release Strategies Every years / months / weeks • Predictable

    timelines • A regular and comfortable cadence for engineers • Practice doing releases • The amount of changes in each release might vary • Requires tooling to handle in-progress work 22 Release Strategies, @segiddins, Mobile Optimized 2017
  23. Release Strategies Continuous Delivery • The new popular thing for

    web • The product the user sees is the same as what the developer is working on • A single release becomes a non-event • Revert problematic changes before new work builds upon them 23 Release Strategies, @segiddins, Mobile Optimized 2017
  24. Release Strategies Continuous Delivery • How do you report a

    bug without a version? • All changes have to be 100% self-contained 24 Release Strategies, @segiddins, Mobile Optimized 2017
  25. Release Strategies How to choose? • Respect the user. Always.

    • How much developer time do you have to devote to release engineering? • How fast is the rest of your company moving? 25 Release Strategies, @segiddins, Mobile Optimized 2017
  26. Release Metadata 26 Release Strategies, @segiddins, Mobile Optimized 2017

  27. Release Metadata The things we prepare alongside the code 27

    Release Strategies, @segiddins, Mobile Optimized 2017
  28. Release Metadata • Release Notes • App Description • Translations

    • Screenshots • Marketing Videos • Version number 28 Release Strategies, @segiddins, Mobile Optimized 2017
  29. Tools For Software Releases 29 Release Strategies, @segiddins, Mobile Optimized

    2017
  30. ! For Software Releases • Package Manager / App Store

    • Fastlane • CI Services • CircleCI / Travis / buddybuild / Jenkins / etc. • QA Team • make / bash • ⌨ 30 Release Strategies, @segiddins, Mobile Optimized 2017
  31. ! For Software Releases Steps for a successful release: •

    Determine what it is you're releasing • Pick a version number 1. If you do that sort of thing • Decide who will get the release 1. Is it a staged rollout? 2. Do users need to download a new app? Buy something new? 3. What is it compatible with? 31 Release Strategies, @segiddins, Mobile Optimized 2017
  32. ! For Software Releases Steps for a successful release: •

    Decide how you're announcing the release 1. Does it get special press / marketing? 2. What changes do you want users to focus on? • Pick a date 1. Are there things that need to be done by that date? 2. Under what circumstances will the date change? 32 Release Strategies, @segiddins, Mobile Optimized 2017
  33. ! For Software Releases Steps for a successful release: •

    Settle upon a success metric • Warn all stakeholders that a release is happening • Remember to release 33 Release Strategies, @segiddins, Mobile Optimized 2017
  34. Handling A Bad Release 34 Release Strategies, @segiddins, Mobile Optimized

    2017
  35. Handling A Bad Release CocoaPods Story Time! 35 Release Strategies,

    @segiddins, Mobile Optimized 2017
  36. Handling A Bad Release • Communicate that something went wrong

    • Explain what happened, and why • Come up with a plan to avoid it happening again • Implement & automate that plan 36 Release Strategies, @segiddins, Mobile Optimized 2017
  37. Handling A Bad Release • Never make the same mistake

    twice 37 Release Strategies, @segiddins, Mobile Optimized 2017
  38. Modern Releases • Use tooling to automate error-prone processes •

    Happen on a predictable schedule • Minimize disruption to the user's workflow 38 Release Strategies, @segiddins, Mobile Optimized 2017
  39. Modern Releases • Demand perfection 39 Release Strategies, @segiddins, Mobile

    Optimized 2017
  40. @segiddins 40 Release Strategies, @segiddins, Mobile Optimized 2017