{"id":9104,"date":"2017-05-09T15:51:27","date_gmt":"2017-05-09T14:51:27","guid":{"rendered":"https:\/\/marvel7077.wpengine.com\/?p=9104"},"modified":"2017-05-10T13:23:26","modified_gmt":"2017-05-10T12:23:26","slug":"launch-software-changes-without-pissing-people-off","status":"publish","type":"post","link":"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/","title":{"rendered":"How to Launch Software Changes Without Pissing People Off"},"content":{"rendered":"<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Software designers and developers are all about <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">NEW<\/strong>. We like to experiment with far-out ideas and make shiny things. Our livelihood depends on it.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">We\u2019re so addicted to NEW that sometimes it clouds our judgment. We love NEW and everyone else should too, so we force heavy-handed product changes onto our customers without much explanation.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">And if they didn\u2019t want that? Or if they got needlessly interrupted by it?<em>\u2026Shhh\u2026we\u2019re not so interested in those problems.<\/em><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Dislike Facebook\u2019s redesign? Deal with it! Confused by the newest Windows updates? Oh well! Missing some features in the new Final Cut? Too bad, they\u2019re gone forever!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It\u2019s no surprise that these sorts of changes are comically unpopular:<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"lang=\"en\" dir=\"ltr\">Cineworld have changed their app and I feel hurt and betrayed x<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">&mdash; Alex \ud83d\udc00 (@FuellAlex) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/FuellAlex\/status\/833798574483898368?ref_src=twsrc%5Etfw\">February 20, 2017<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">https:\/\/twitter.com\/dammitjiim\/status\/836338914495455232?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fm.signalvnoise.com%2Fmedia%2Fa00b53f001c8b3ec8977511e85af9a65%3FpostId%3Dcf79dce64630<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Developers get away with this anyway because we wield all the power. We can push a button and instantly transform an experience for millions of people in one shot.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Imagine if that kind of thing happened in the real world. Let\u2019s say this was your living room:<\/p>\n<div id='gallery-1' class='gallery galleryid-9104 gallery-columns-1 gallery-size-full'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-7KlHRO_F3TcPVmyVBWy0iQ.png'><img loading=\"lazy\" decoding=\"async\" width=\"1466\" height=\"1094\" src=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-7KlHRO_F3TcPVmyVBWy0iQ.png\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-7KlHRO_F3TcPVmyVBWy0iQ.png 1466w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-7KlHRO_F3TcPVmyVBWy0iQ-600x448.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-7KlHRO_F3TcPVmyVBWy0iQ-768x573.png 768w\" sizes=\"auto, (max-width: 1466px) 100vw, 1466px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">And one day it suddenly became like this:<\/p>\n<div id='gallery-2' class='gallery galleryid-9104 gallery-columns-1 gallery-size-full'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-Lrx5kCUg442qq4Rb1QzYHA.png'><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1200\" src=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-Lrx5kCUg442qq4Rb1QzYHA.png\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-Lrx5kCUg442qq4Rb1QzYHA.png 1920w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-Lrx5kCUg442qq4Rb1QzYHA-600x375.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-Lrx5kCUg442qq4Rb1QzYHA-768x480.png 768w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-Lrx5kCUg442qq4Rb1QzYHA-1500x938.png 1500w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">You wouldn\u2019t be cool with that at all. You\u2019d be totally freaked out!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><em>What!? Where are all my books? What is all this creepy stuff? Whose head is that? Are those antlers?<\/em><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">That\u2019s exactly what we do to our customers all the time. No wonder they\u2019re always ranting on Twitter.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Why do we make disruptive changes?<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">There are a few reasons developers decide to steamroll NEW stuff.<\/p>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It\u2019s hard for us to keep legacy tech around.<\/strong> It\u2019s easier to put everyone on the newest iteration and maintain only that.<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It\u2019s hard for us to make transitions elegant.<\/strong> A redesigned screen or feature might be jarring, but it takes extra care to ease people into the change.<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It\u2019s hard for us to balance business interests and our users\u2019 needs. <\/strong>Sometimes we need to make a big move to stay relevant in the market or help the bottom line, so we drop a bombshell update on the world?\u2014?continuity be damned.<\/li>\n<\/ul>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Notice a theme there? It\u2019s hard for <em>us<\/em>. Our laziness or time constraints take over, so we pass the buck.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">How we can do\u00a0better<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Not all changes are massively disruptive, so we just need a strategy for identifying the ones that are, and then handle them properly.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Here\u2019s how we do it at Basecamp.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Make only additive updates and improvements.<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Taking away a feature is a surefire way to upset your customers. Even if it\u2019s something small or innocuous, you can guarantee someone depended heavily on that one thing you took away.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">https:\/\/twitter.com\/aniakans\/status\/836962274803920898?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fm.signalvnoise.com%2Fmedia%2Fff387ff898744a696307a0945b0e7ad0%3FpostId%3Dcf79dce64630<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"Taking away a feature is a surefire way to upset your customers.\"<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The solution? <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Don\u2019t take things away<\/strong> (if you can possibly avoid it.)<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Thoughtfully <em>adding<\/em> stuff is great. Who wouldn\u2019t want more for their money?<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It\u2019s also fine to improve rough spots. Make the same features look better, work better, or get the job done faster. Nobody\u2019s going to be bothered by that.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The don\u2019t-remove-stuff philosophy has a strategic upside, too. If you can\u2019t take anything away, you\u2019ll be more conscientious about what you put in.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Take extra care when making a disruptive change.<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Sometimes you have a big idea that makes your product better, but switching over will be bumpy for your existing users. In that case it\u2019s worth the additional effort to smooth things out, even if it means extending your development budget to build transition-related features.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">We did this last year when we launched <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/m.signalvnoise.com\/a-bunch-of-big-updates-for-basecamp-3-3af3a93eb8f9#.ycpq30jey\">some big changes<\/a> in Basecamp 3. We spent a few extra weeks making a settings screen for the new features we were introducing, so we wouldn\u2019t be shoving them down our customers\u2019 throats. The new stuff was turned off by default, so people could opt <em>in<\/em> if they wanted to, rather than having to opt <em>out<\/em> of something they didn\u2019t want.<\/p>\n<div id=\"attachment_9119\" style=\"width: 1504px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/1-pH01OPQO2gijmB9wnykfJg.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9119\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/1-pH01OPQO2gijmB9wnykfJg.png\" alt=\"Basecamp\u2019s new HQ and Teams features defaulted to OFF for existing customers. \" width=\"1494\" height=\"1182\" class=\"size-full wp-image-9119\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-pH01OPQO2gijmB9wnykfJg.png 1494w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-pH01OPQO2gijmB9wnykfJg-600x475.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-pH01OPQO2gijmB9wnykfJg-768x608.png 768w\" sizes=\"auto, (max-width: 1494px) 100vw, 1494px\" \/><\/a><p id=\"caption-attachment-9119\" class=\"wp-caption-text\">Basecamp\u2019s new HQ and Teams features defaulted to OFF for existing customers.<br \/><\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Whatever extra time you spend doing this is a drop in the bucket compared to the exponentially greater time your customers might have wasted out of confusion or frustration.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Don\u2019t bother pre-announcing changes.<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">You might think it\u2019d be helpful to warn everyone before a big launch, like\u2026<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><span class=\"long-quote\">In three weeks, this website will be totally unrecognizable. You\u2019ll have to figure everything out from scratch, but we think the new one is nicer.\u00a0Enjoy!<\/span><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2026but what good does that do? Maybe the advance notice dulls the shock, but the customer can\u2019t act on this information. They have to wait to be interrupted again later by the actual change.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">This only prolongs the anxiety, with very little upside. It\u2019s better to focus energy on the transition instead\u2014make it so smooth that there\u2019s no need for a pre-announcement.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Explain what\u2019s different.<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It\u2019s bad enough to be forced into an update you didn\u2019t agree to, but it\u2019s even worse if you have no idea what happened or why things changed.<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"Make sure you have a way to introduce and explain what\u2019s new when you launch\"<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Make sure you have a way to introduce and explain what\u2019s new when you launch, either via in-app announcements, a mailing list, a blog, or whatever method you have to communicate with customers.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">People may not like the changes, but at least they won\u2019t be blindsided. It\u2019s the courteous thing to do.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><center><div id=\"attachment_9109\" style=\"width: 450px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/1SaAydOWjZxoeW4R81ixcXw.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9109\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/1SaAydOWjZxoeW4R81ixcXw.png\" alt=\"Basecamp\u2019s iOS app tells you whenever there\u2019s new stuff.\" width=\"440\" height=\"696\" class=\"size-full wp-image-9109\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1SaAydOWjZxoeW4R81ixcXw.png 440w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1SaAydOWjZxoeW4R81ixcXw-379x600.png 379w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><\/a><p id=\"caption-attachment-9109\" class=\"wp-caption-text\">Basecamp\u2019s iOS app tells you whenever there\u2019s new stuff.<\/p><\/div><\/center><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Split distinct major versions and keep them around\u00a0forever.<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">When we\u2019ve collected enough new ideas to constitute a major rethink of Basecamp (this usually takes years), we create a whole new version from scratch. The previous versions <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/basecamp.com\/about\/policies\/until-the-end-of-the-internet\">live on in perpetuity<\/a> in maintenance mode.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">That means even there\u2019s no disruption for people who are happily using a previous version. We incur the maintenance time and costs to keep it all running, and they keep paying us like they always did.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">This might not work for some products, but it\u2019s worked wonderfully for ours. Our customers get to keep using the version they like for as long as they want, with no pressure to do anything else. They can migrate to the newer version on their own timeline. Or not.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Perhaps best of all, we\u2019re free to make a sweet <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">NEW<\/strong> Basecamp every few years, with no legacy constraints holding us back. We can take risks and make big leaps forward.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">You\u2019ll be glad you\u00a0did<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Working through these issues might not be the most fun and exciting part of your job, but it makes a big difference in how people perceive your product, your service, and your company as a whole.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">A few people will always complain about any change you make. That\u2019s life. But these approaches will help keep your support load lower and your customers happier.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><em>This article was originally published on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/m.signalvnoise.com\/how-to-launch-software-changes-without-pissing-people-off-cf79dce64630\">Jonas's Medium page<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Software designers and developers are all about NEW. We like to experiment with far-out ideas and make shiny things. Our livelihood depends on it. We\u2019re so addicted to NEW that sometimes it clouds our judgment. We love NEW and everyone else should too, so we force heavy-handed product changes onto our customers without much explanation. And if they didn\u2019t want&#8230; <a class=\"link link--blue fontWeight-4\" href=\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/\">Read More &#65515;<\/a><\/p>\n","protected":false},"author":68,"featured_media":9111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-9104","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-viewpoint"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Launch Software Changes Without Pissing People Off | Marvel Blog\" \/>\n<meta property=\"og:description\" content=\"Software designers and developers are all about NEW. We like to experiment with far-out ideas and make shiny things. Our livelihood depends on it. We\u2019re so addicted to NEW that sometimes it clouds our judgment. We love NEW and everyone else should too, so we force heavy-handed product changes onto our customers without much explanation. And if they didn\u2019t want... Read More &#65515;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/\" \/>\n<meta property=\"og:site_name\" content=\"Marvel Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/marvelapp\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-09T14:51:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-05-10T12:23:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-eDiWGict20OauCUG9hgvKg.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1909\" \/>\n\t<meta property=\"og:image:height\" content=\"632\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:site\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"5 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\",\"name\":\"Marvel\",\"url\":\"https:\/\/marvelapp.com\/blog\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/marvelapp\",\"https:\/\/www.instagram.com\/marvelapp\/\",\"https:\/\/www.linkedin.com\/company\/marvel-app\/\",\"https:\/\/twitter.com\/marvelapp\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#logo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/marvelapp.com\/wp-content\/uploads\/2018\/06\/Logo-Light.png\",\"width\":1605,\"height\":1130,\"caption\":\"Marvel\"},\"image\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#website\",\"url\":\"https:\/\/marvelapp.com\/blog\/\",\"name\":\"Marvel Blog\",\"description\":\"Ideas and words on user experience, design, collaboration and more\",\"publisher\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/marvelapp.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/#primaryimage\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/1-eDiWGict20OauCUG9hgvKg.png\",\"width\":1909,\"height\":632},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/#webpage\",\"url\":\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/\",\"name\":\"How to Launch Software Changes Without Pissing People Off | Marvel Blog\",\"isPartOf\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/#primaryimage\"},\"datePublished\":\"2017-05-09T14:51:27+00:00\",\"dateModified\":\"2017-05-10T12:23:26+00:00\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/#webpage\"},\"author\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#\/schema\/person\/eff8a0719fd1b1a5e9a5c70ef395192a\"},\"headline\":\"How to Launch Software Changes Without Pissing People Off\",\"datePublished\":\"2017-05-09T14:51:27+00:00\",\"dateModified\":\"2017-05-10T12:23:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/#primaryimage\"},\"articleSection\":\"Viewpoint\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/marvelapp.com\/blog\/launch-software-changes-without-pissing-people-off\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#\/schema\/person\/eff8a0719fd1b1a5e9a5c70ef395192a\",\"name\":\"Jonas Downey\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#personlogo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c6cf127ce9692b056dd7d04944cebcf32f1836c453bdffac0bfcc2ce91084436?s=96&d=mm&r=g\",\"caption\":\"Jonas Downey\"},\"description\":\"Product Designer at Basecamp. Also made Hello Weather. Follow me on Twitter.\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts\/9104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/comments?post=9104"}],"version-history":[{"count":0,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts\/9104\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/media\/9111"}],"wp:attachment":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/media?parent=9104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/categories?post=9104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/tags?post=9104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}