<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>notkeepingitreal.com: Philosophy On Software Releases</title>
    <link>http://notkeepingitreal.com/articles/2006/05/21/philosophy-on-software-releases</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Philosophy On Software Releases</title>
      <description>&lt;p&gt;I believe that releasing new software when it is done&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;, and immediately when it is done, is a tremendous boon to the developer (and by definition the customer, unless you happen to be adding features the customer doesn&amp;#8217;t want). I&amp;#8217;ve dreamed about this a lot, and advocated for daily web rollouts at work for months, so naturally I was pleased to find that &lt;a href="http://paulgraham.com"&gt;Paul Graham&lt;/a&gt; has argued this point in his essay, &lt;a href="http://paulgraham.com/road.html"&gt;The Other Road Ahead&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;There seems to be much opposition to this idea in the software arena. Releases are often no fun, and many seem to think that releases are inherently difficult, time-intensive and error-prone &amp;#8211; and should therefore be minimized. Some say that customers need to be conditioned not to expect what they want &lt;strong&gt;now&lt;/strong&gt;. There is definitely truth in this. But for all of the reasons releases are tricky, I believe they should be done &lt;strong&gt;more&lt;/strong&gt; and more incrementally.&lt;/p&gt;


	&lt;h4&gt;Releases are difficult&lt;/h4&gt;


	&lt;p&gt;Sure. Releases will be difficult as long as:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;People assume that they happen only infrequently&lt;/li&gt;
		&lt;li&gt;There is a perception that it just isn&amp;#8217;t worth the effort to make them work the way they should&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;If I used the vim text editor once a week, I wouldn&amp;#8217;t bother creating/learning the cutesy shortcuts. Institute a continuous release policy and the process will improve guaranteed.&lt;/p&gt;


	&lt;h4&gt;Releases are time-intensive&lt;/h4&gt;


	&lt;p&gt;Yes, if there are many new features, QA can become a long and uncertain process. And when a bug is found, the amount of time that has passed since the code was written correlates fairly directly to the time that will be needed to fix the bug.&lt;/p&gt;


	&lt;h4&gt;Releases are error-prone&lt;/h4&gt;


	&lt;p&gt;Certainly, managing the complexities and anticipating the interactions between features of a large release is an unenviable task.&lt;/p&gt;


	&lt;p&gt;So if new code is ready, or if a feature the customer wants is finished to everyone&amp;#8217;s satisfaction, I feel that there shouldn&amp;#8217;t be a ton of hoops to jump through before the new software finds its way into production. Developers will ultimately be happier to see their creativity in finished form faster, customers will get their feature more rapidly, and potentially, delicious manna will pour down from heaven.&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; Done, in this case, means ready for release, including any necessary testing.&lt;/p&gt;</description>
      <pubDate>Sun, 21 May 2006 17:33:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:54b39873-6eef-4f52-8529-e4f9ef5ba32c</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2006/05/21/philosophy-on-software-releases</link>
      <category>Software</category>
      <category>Philosophy</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/9</trackback:ping>
    </item>
    <item>
      <title>"Philosophy On Software Releases" by Kevin</title>
      <description>&lt;p&gt;Indeed. Quality is really the goal, so if testers aren&amp;#8217;t completely confident with the code that is going live, there cannot be a release. Creating that confidence isn&amp;#8217;t easy, but is certainly a goal worth striving for.&lt;/p&gt;


	&lt;p&gt;Automated tests, code diffs and plain old communication can all make the process smoother. &lt;a href="http://gabriel.gironda.org"&gt;One of the all-stars&lt;/a&gt; on my team at work has put some time into creating a utility that does a diff of the html that is generated by the entire website, showing us exactly what pages have changed and how they have changed since the last released version. Tools like these inspire confidence in developers and testers alike, and can allow us to move naturally towards more frequent releases.&lt;/p&gt;</description>
      <pubDate>Sun, 21 May 2006 23:16:07 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:0f8e152f-ddd7-402b-b181-d5d1d879f7ab</guid>
      <link>http://notkeepingitreal.com/articles/2006/05/21/philosophy-on-software-releases#comment-11</link>
    </item>
    <item>
      <title>"Philosophy On Software Releases" by dstutz</title>
      <description>&lt;p&gt;The problem with frequent releases is that unless you can convince a tester that all your changes are trivial and very safe (and they should push you on this), they&amp;#8217;ll feel responsible to test the whole thing again.  It&amp;#8217;s hard to isolate changes in software, so the safe thing for them to do is go through every test case again, which takes one or two days.  There goes your quick rollout.  I&amp;#8217;m not sure if this is a technical problem to be fixed (GUI automation tools promises a lot but I haven&amp;#8217;t seen them deliver), or an organizational problem (knowing exactly what code was committed there), or a trust problem (developers will take responsibility for identifying what areas they&amp;#8217;re affecting), or what.&lt;/p&gt;</description>
      <pubDate>Sun, 21 May 2006 22:02:11 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:b15efa1a-f9a4-4d90-be20-3210994f22aa</guid>
      <link>http://notkeepingitreal.com/articles/2006/05/21/philosophy-on-software-releases#comment-10</link>
    </item>
  </channel>
</rss>
