{"id":1877,"date":"2024-05-08T21:37:01","date_gmt":"2024-05-08T21:37:01","guid":{"rendered":"https:\/\/mikekuphal.com\/?p=1877"},"modified":"2024-05-08T21:47:00","modified_gmt":"2024-05-08T21:47:00","slug":"rollback-vs-hotfix-fix-forward-rethinking-my-preference","status":"publish","type":"post","link":"https:\/\/mikekuphal.com\/?p=1877","title":{"rendered":"Rollback vs Hotfix (Fix Forward) &#8212; Rethinking My Preference"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"535\" src=\"https:\/\/mikekuphal.com\/wp-content\/uploads\/2024\/05\/laptop-macbook-work-man-working-person-915107Smaller.png\" alt=\"\" class=\"wp-image-1879\" srcset=\"https:\/\/mikekuphal.com\/wp-content\/uploads\/2024\/05\/laptop-macbook-work-man-working-person-915107Smaller.png 800w, https:\/\/mikekuphal.com\/wp-content\/uploads\/2024\/05\/laptop-macbook-work-man-working-person-915107Smaller-300x201.png 300w, https:\/\/mikekuphal.com\/wp-content\/uploads\/2024\/05\/laptop-macbook-work-man-working-person-915107Smaller-768x514.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You&#8217;ve just deployed your latest update to production, and suddenly your system is unstable or crashing. What do you do?<br><br>With recent advancements in deployment tooling and practices, I now believe that establishing processes and norms to favor quick rollbacks is finally worth the extra up front effort\u2014whereas just a few years ago, I felt the cost and overhead were too burdensome, often defaulting to a Fix Forward approach.<br><br>Much of this change in thinking has to do with advancements in fully automated deployment capabilities coupled with solid &#8220;immune system&#8221; capabilities built into the deploy process.<br><br>Case in point: Slack opts for rollbacks over hotfixes for several key reasons, all aimed at maintaining stability and efficiency, coupled with their fully automated deploy advancements:<br><br>1) Speed and Safety: Rollbacks are generally faster to execute than hotfixes. When an issue is detected, rolling back to a previous stable version of the software can be accomplished in minutes. This rapid response is crucial in minimizing downtime and the impact of bugs on users and operations.<br><br>2) Reduced Complexity: Hotfixes require identifying the problem, developing a fix, testing the fix, and then deploying it\u2014a process that can be time-consuming and prone to errors, especially under the pressure of an ongoing incident. Rollbacks, on the other hand, simply revert the system to a known good state without the need to immediately solve the underlying issue in a rush.<br><br>3) Avoiding Quick Fixes Under Pressure: Developing fixes during an incident can lead to rushed decisions and potentially faulty coding as developers may feel pressured to resolve the issue quickly. Rollbacks eliminate this pressure, allowing for a more thoughtful and thorough investigation and solution to the problem at a later time.<br><br>4) Reliability of Known Good State: By rolling back to a previously stable release, Slack ensures the reliability of their service based on tested and proven software versions. This reliability is crucial for maintaining trust and functionality, especially in a high-stakes environment like Slack\u2019s operations.<br><br>5) Strategic Long-term Fixes: After a rollback, the team can take the time to properly diagnose the issue and develop a more comprehensive and well-tested solution, rather than applying a quick fix. This approach often leads to better quality and more durable software improvements.<br><br>By favoring rollbacks, organizations like Slack prioritize operational stability, reduce risk, and ensure a high-quality user experience, while still enabling thorough enhancements.<br><br>What has your experience been\u2014rollback or hotfix? Is it worth the investment to truly enable rollback as the preferred approach? Share your thoughts and experiences in the comments below!<br><br>#DevOps #SoftwareEngineering #DeploymentStrategies #ITOperations #CloudComputing<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You&#8217;ve just deployed your latest update to production, and suddenly your system is unstable or crashing. What do you do? With recent advancements in deployment tooling and practices, I now believe that establishing processes and norms to favor quick rollbacks is finally worth the extra up front effort\u2014whereas just a few years ago, I felt &hellip; <a href=\"https:\/\/mikekuphal.com\/?p=1877\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Rollback vs Hotfix (Fix Forward) &#8212; Rethinking My Preference&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1877","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/mikekuphal.com\/index.php?rest_route=\/wp\/v2\/posts\/1877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikekuphal.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikekuphal.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikekuphal.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikekuphal.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1877"}],"version-history":[{"count":3,"href":"https:\/\/mikekuphal.com\/index.php?rest_route=\/wp\/v2\/posts\/1877\/revisions"}],"predecessor-version":[{"id":1884,"href":"https:\/\/mikekuphal.com\/index.php?rest_route=\/wp\/v2\/posts\/1877\/revisions\/1884"}],"wp:attachment":[{"href":"https:\/\/mikekuphal.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikekuphal.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikekuphal.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}