{"id":599,"date":"2005-05-24T02:21:00","date_gmt":"2005-05-24T02:21:00","guid":{"rendered":"http:\/\/sdi.thoughtstorms.info\/?p=599"},"modified":"2005-05-24T02:21:00","modified_gmt":"2005-05-24T02:21:00","slug":"599","status":"publish","type":"post","link":"https:\/\/blog.thoughtstorms.info\/?p=599","title":{"rendered":""},"content":{"rendered":"<p>Release Early, Release Often for proprietory software?<\/p>\n<p>I got a copy of <a href=\"http:\/\/www.realsoftware.com\/\">Real Basic<\/a> via their competitive upgrade scheme for Visual Basic owners a couple of months ago. I&#8217;ve looked at it, and at one point thought about porting SdiDesk to it. The deal breaker is that there&#8217;s no equivalent to Visual Basic&#8217;s DHTML control. Nevertheless I&#8217;d like to try <em>something<\/em> using RB this year. And I&#8217;m following their &#8220;getting started&#8221; mailing list.<\/p>\n<p>Currently there&#8217;s a fair old discussion on that list about <a href=\"http:\/\/www.realsoftware.com\/company\/pressreleases\/pr_rapidrelease.html\">REAL Software&#8217;s &#8220;Rapid Release Plans&#8221;<\/a>. RealBasic 2005 will be released with a 90 day release cycle. In other words, they plan to bring out new versions more or less every 3 months.<\/p>\n<p>Some users are suspicious that there&#8217;s a shift towards a &#8220;rental&#8221; model for the software, but REAL point out that if you allow your subscription to upgrades to lapse you won&#8217;t lose your existing software. You just won&#8217;t get any more upgrades.<\/p>\n<p>So how and why are REAL Software making this shift? In their <a href=\"http:\/\/www.realsoftware.com\/realbasic\/RapidReleaseModel.pdf\">PDF white paper<\/a> they point out :<\/p>\n<p><em>In a nutshell, the amount of time a company can take to develop and release a software product has traditionally been driven by the needs of the retail distribution model rather than the needs of the software developer and its customers.<\/em><\/p>\n<p>Now, naturally, the internet makes it possible to shorten that. &#8220;Live&#8221; updating to customers of existing products is often used to distribute bug fixes.<\/p>\n<p>However, this introduces its own problem : if a company is developing a new version of a program, while continuously distributing  fixes to the existing release, it ends up working on two versions of the code at the same time.<\/p>\n<p>That adds plenty of cost. Both the dual effort and in managing and  synchronizing the two versions of the code-base. The rapid release model tries to reduce this cost by making new releases smaller, more incremental improvements.<\/p>\n<p>The idea is not that software is written any faster. Simply that if you intend for release 2.0 to add 6 new features over 1.0, it&#8217;s better to add one feature and release it every three months, than wait and release them all after 18 months. After each three month cycle, the &#8220;current&#8221; version is refreshed, and any new bug fixes can be made to that. New development, and maintainence of existing releases is easier and cheaper to keep synchronized.<\/p>\n<p>As well as reducing the cost of maintaining two versions for 18 moths, rapid release also allows the company to be more flexible if the user&#8217;s requirements change. This reduces the risk of working on something that will be out-dated or unwanted when finally released.<\/p>\n<p>Another point made by REAL, is that the media itself is changing. The print media are being supplemented or surpassed by the online media : mailing lists, blogs and discussion forums which are, themselves, working on shorter time-spans. The result of more, more frequent, releases, is more points to <em>touch<\/em> this fast moving online media. Every release is an opportunity for an online discussion, bringing the product to the attention of new people.<\/p>\n<p>As REAL put it : <em>In the Internet marketing game, each new<br \/>\n<br \/>release provides a fresh opportunity to grab a fleeting moment of<br \/>\n<br \/>coverage and online advertising can be focused on the benefits of each new release.<\/em><\/p>\n<p>Having listed these benefits of pulverising the development of software into a finer granularity, REAL then have to worry about a different problem. What&#8217;s the business model?<\/p>\n<p>Here a new set of forces come into effect. While the company and users benefit from the faster release cycle, there remains a problem of how to charge for it. The user&#8217;s perception is likely to be that she shouldn&#8217;t be spending more money every three months. The last bastion of <em>slow<\/em> cycle thinking is in corporate purchasing departments. Especially when the company must <em>think<\/em> about whether the upgrade is worth it. If you need to get permission from your boss&#8217;s boss.<\/p>\n<p>At the limit, small payments for small pieces of value <a href=\"http:\/\/www.openp2p.com\/pub\/a\/p2p\/2000\/12\/19\/micropayments.html\">tend to fail<\/a> because the cost of decision making outweighs the benefit of the purchase. Users prefer a scheme which aggrogates several cheap pieces of value into a single larger price because it&#8217;s easier to reason about and decide.<\/p>\n<p>REAL clearly understood this, because they&#8217;re bundling several  upgrades under a single price. Or rather a 12 month subscription (which should cover more or less 4 releases, though it&#8217;s not clear what happens if a release slips a couple of weeks and you only get 3 in your 12 months)<\/p>\n<p>Those 12 months might still be too short for people, hence the low-level kvetching on the RB mailing list. But it&#8217;s in the right direction. Maybe if REAL demonstrate this working over the next year, they could make longer term subscriptions available and some customers will prefer them.<\/p>\n<p>All interesting stuff. Obviously, rapid releases are a corner-stone of <a href=\"http:\/\/www.extremeprogramming.org\/\">eXtreme Programming<\/a>, and other agile methods. But the business model is another thing to think about, with wider implications than just releasing software.<\/p>\n<p>Finer granularity gives more flexibility and reduced co-ordination. That&#8217;s implicit in free-software and one of the reasons that weblogs are exciting. It&#8217;s why loose agregations of smart, disorganized individuals; free agents, bootstrappers and microISVs can compete with larger, more structured groupings.<\/p>\n<p>But there&#8217;s sometimes a mismatch between the granularity and time-scales of those people, and the requirements of customers. So there&#8217;s a need for a kind of <em>adapter pattern<\/em>. For encapsulating a fast spinning, high kinetic energy production, and presenting a slower moving interface to the outside world. Something like a <em>gear box<\/em>.<\/p>\n<p>Smart disorganized individuals like to do a little bit of lots of things. But sometimes this needs to be packaged up as one big, consistent thing. One strategy is learn self-discipline. But self discipline isn&#8217;t always cheap or desirable. A software company doesn&#8217;t want to revert to 18 month release cycles just to appeal to purchasing departments. And maybe you don&#8217;t want to revert to doing one thing for six months, just because the employer needs it.<\/p>\n<p>But if you&#8217;re going to avoid self discipline, you&#8217;ll need something else : an interface, a bundling strategy, or tools which can tame the chaos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Release Early, Release Often for proprietory software? I got a copy of Real Basic via their competitive upgrade scheme for Visual Basic owners a couple of months ago. I&#8217;ve looked at it, and at one point thought about porting SdiDesk to it. The deal breaker is that there&#8217;s no equivalent to Visual Basic&#8217;s DHTML control. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[473],"class_list":["post-599","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts\/599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=599"}],"version-history":[{"count":0,"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts\/599\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}