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

Mastering the Three Core Aspects of Software Re...

Mastering the Three Core Aspects of Software Releasing

Fear not! Releasing software no longer needs to be scary: DevOps is here to save the day and solve all of your problems!

At least, that's the popular wisdom. While the upper eschelon of software engineering organizations may have achieved enlightenment by way of continuous delivery, the rest of us struggle to rise to the occasion. Or, moreso, our budgets and teams struggle. How do we replicate on a smaller scale the key factors that make these organizations so successful?

This talk explores three of the most common blunders in releasing software, and three "rules for releasing" to counter these blunders. By properly testing, codifying, and packaging our changes, we can eliminate uncertainty about how our changes will behave, and release with a high degree of confidence. While these practices achieve many of the same outcomes, there's no need to go broke investing in the same tooling as the heavy hitters.

Watch the full recording on YouTube.

Avatar for Thayer Luscian

Thayer Luscian

February 01, 2024
Tweet

More Decks by Thayer Luscian

Other Decks in Technology

Transcript

  1. From Testing to PRs: Mastering the Three Core Aspects of

    Software Releasing Thayer Luscian @ Above The Fray ×
  2. Head of Engineering abovethefray.io • thayer.dev Based in Lancaster, PA

    DevOps junkie Agile apologist ThayerLuscian.phtml
  3. Releasing Magento is harder Unintended consequences abound Releases touch many

    areas of software Confluence of many moving pieces Extremely complex core application Lots of proprietary components Prevalence of managed hosting Harder to achieve continuous delivery → ~ bin/magento scream:cry:throw-up thayer - ssh - [email protected]
  4. Use testing rigor to validate the entire codebase and eliminate

    any uncertainty about how your code will behave. Rule #1 Test like crazy Bug found ✗ Regression testing passed ✓ release/2024-02-01 Eliminate uncertainty In order to truly eliminate uncertainty, test everything — whenever anything changes. (pay special attention to core functionality)
  5. Rule #2 Codify all changes Ensure that all changes are

    codified in your repository and can be applied during deployment. Apply changes during deployment Magento makes this very easy via data patches, so use them! (this complies with factor XII of the Twelve-Factor App) release/2024-02-01 a0eif2d add new store locations via data patch
  6. Merge cleanly and confidently by following a consistent strategy, like

    release branches, and avoid cherry-picking. Rule #3 Package changes neatly Merge cleanly and confidently Releasing should be simple and easy. If you need to get funky, rethink the strategy. (making releasing easy… makes releasing easy!) release/2024-02-01 feature/new-widget feature/fix-gadget production