<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Songbird Blog &#187; bug</title>
	<atom:link href="http://blog.songbirdnest.com/tag/bug/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.songbirdnest.com</link>
	<description>Play music. Play the Web.</description>
	<lastBuildDate>Thu, 09 Feb 2012 00:55:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Where&#8217;d you go, Library?</title>
		<link>http://blog.songbirdnest.com/2010/06/04/whered-you-go-library/</link>
		<comments>http://blog.songbirdnest.com/2010/06/04/whered-you-go-library/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 01:15:54 +0000</pubDate>
		<dc:creator>ali</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[1.7]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[NOFX]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/?p=2150</guid>
		<description><![CDATA[There&#8217;s a bug in the updates from 1.4.3: the clickable Library icon in the Service Pane is hiding. We&#8217;re working on building and testing a fix, and we&#8217;ll push it out as soon as possible. If you&#8217;ve run into this problem, don&#8217;t worry &#8212; none of your music or profile data is gone. The interim [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a bug in the updates from 1.4.3: the clickable Library icon in the Service Pane is hiding.  We&#8217;re working on building and testing a fix, and we&#8217;ll push it out as soon as possible.  If you&#8217;ve run into this problem, don&#8217;t worry &#8212; none of your music or profile data is gone.</p>
<p>The interim workaround is to use the Profile Manager to create a temporary new profile.  You&#8217;ll find the Profile Manager under the Start menu on Windows, or by executing &#8220;songbird -p&#8221; on Mac.</p>
<p>Sorry for the headaches.  We&#8217;re going to get this fixed as quickly as we can.  Full details of the cause and fix are available in bug 21356.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2010/06/04/whered-you-go-library/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
		<item>
		<title>Songbird 1.4.2 is posted</title>
		<link>http://blog.songbirdnest.com/2009/12/22/songbird-1-4-2-is-posted/</link>
		<comments>http://blog.songbirdnest.com/2009/12/22/songbird-1-4-2-is-posted/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 09:00:43 +0000</pubDate>
		<dc:creator>ali</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[1.4]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Comics]]></category>
		<category><![CDATA[Feather]]></category>
		<category><![CDATA[feathers]]></category>
		<category><![CDATA[gonzo]]></category>
		<category><![CDATA[imma let you finish]]></category>
		<category><![CDATA[Kanye]]></category>
		<category><![CDATA[korn]]></category>
		<category><![CDATA[purple rain]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/?p=1877</guid>
		<description><![CDATA[We&#8217;ve fixed the snag mentioned in our previous post. It wasn&#8217;t anything serious &#8212; just a UI glitch exposed during updates in which some remnants of the old Gonzo feather were showing up in the new Purple Rain feather, which made mashTape and LyricMaster hard to use.  If you&#8217;re interested in the full details, head [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve fixed the snag mentioned in our previous post. It wasn&#8217;t anything serious &#8212; just a UI glitch exposed during updates in which some remnants of the old Gonzo feather were showing up in the new Purple Rain feather, which made mashTape and LyricMaster hard to use.  If you&#8217;re interested in the full details, head on over to bugzilla.songbirdnest.com and read up on bug 19334.</p>
<p>Just want to download it?  <a href="http://getsongbird.com">http://getsongbird.com</a> is for you.  Waiting for your automatic updates?  <span style="text-decoration: line-through;">We&#8217;ll post &#8216;em later today (Tuesday in the US). </span> See the 12/23 update below.<span style="text-decoration: line-through;"><br />
</span></p>
<p>(Kanyebird is gonna let you finish, but he thinks the Gonzo feather was the best feather of all time.)</p>
<p><img class="aligncenter size-full wp-image-1878" title="kanyebird" src="http://files.songbirdnest.com/wp-content/uploads/2009/12/kanyebird.png" alt="kanyebird" width="329" height="203" /></p>
<p>Update (12/23/09): The Gonzo feather really, really did not want to go away; we fixed yet another Gonzo-related bug (number 19365, if you really want to know) and released Songbird 1.4.3.  Automatic updates will come out early next week.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2009/12/22/songbird-1-4-2-is-posted/feed/</wfw:commentRss>
		<slash:comments>184</slash:comments>
		</item>
		<item>
		<title>Songbird 1.1 Update</title>
		<link>http://blog.songbirdnest.com/2009/04/08/songbird-11-update/</link>
		<comments>http://blog.songbirdnest.com/2009/04/08/songbird-11-update/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 23:36:28 +0000</pubDate>
		<dc:creator>ali</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[1.1]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[bug]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/?p=1199</guid>
		<description><![CDATA[There&#8217;s a new incremental update available for users of Songbird 1.1.  There aren&#8217;t any new features, but we fixed a few bugs that cropped up in the original 1.1 release.  You can find more details about the new fixes in the Release Notes. Your Bird will let you know within 24 hours about the available [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a new incremental update available for users of Songbird 1.1.  There aren&#8217;t any new features, but we fixed a few bugs that cropped up in the original 1.1 release.  You can find more details about the new fixes in the <a href="http://wiki.songbirdnest.com/Release_Notes/1.1.2">Release Notes</a>.</p>
<p>Your Bird will let you know within 24 hours about the available update to version 1.1.2.  If you just can&#8217;t wait, go to the Help menu and choose Check For Updates for instant Birdification.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2009/04/08/songbird-11-update/feed/</wfw:commentRss>
		<slash:comments>65</slash:comments>
		</item>
		<item>
		<title>iPod Add-On Updated, Bug Bites the Dust</title>
		<link>http://blog.songbirdnest.com/2009/03/19/ipod-add-on-updated-bug-bites-the-dust/</link>
		<comments>http://blog.songbirdnest.com/2009/03/19/ipod-add-on-updated-bug-bites-the-dust/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 23:06:13 +0000</pubDate>
		<dc:creator>Aus</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[1.1]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[hendrix]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/?p=1148</guid>
		<description><![CDATA[It&#8217;s difficult to come up with the correct words that can truly express the frustrations that arose from this bug making it into the iPod Add-On. This is especially true when attempting to describe the frustrations of our users (while using PG rated language ). On the other hand, it&#8217;s also hard to express just [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s difficult to come up with the correct words that can truly express the frustrations that arose from this bug making it into the iPod Add-On. This is especially true when attempting to describe the frustrations of our users (while using PG rated language <img src='http://blog.songbirdnest.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<p>On the other hand, it&#8217;s also hard to express just how sorry we are that such a thing happened. I definitely hope that the way in which we engaged the community in the past few days sent a clear message that we were nothing short of completely dedicated to solving this issue as rapidly as possible while ensuring that this problem is gone for good.</p>
<p>At this time, the updated iPod Add-On should already be available on the Add-On site and disabled version of the Add-On should also auto-update to the version with the fix.</p>
<p>The problem itself stemmed from a code change that was made to the methods used to collate (i.e. order) properties that are numbers. It turns out that the collator was a little too smart for its own good. This, combined with the way the persistent IDs are generated in iTunes and stored on the iPod, led the Add-On to believe it was operating on Track A when, really, it was operating on Track B. With this confusion, it was possible for the iPod Add-On to erase certain tracks because it was essentially attempting to de-duplicate the contents of the iPod when mounting and synchronizing. It may have also simply removed references to these tracks from the iPod. This would leave the content on the iPod but the content would no longer be associated with the iPod Library, which would make it seem like it disappeared from the iPod.</p>
<p>We&#8217;d also like to point out a few potential misconceptions about this issue. </p>
<ul>
<li>This issue did not affect the iTunes Library.</li>
<li>There were no ill effects for iPods that were managed using Songbird. Only songs synced through iTunes are affected.</li>
<li>This issue is akin to losing or having ones iPod break. While it is unfortunate, it should normally be possible to repopulate your iPod using the original source (eg. Your music library on your laptop).</li>
<li>Users that did not upgrade from 1.0 to 1.1 and ran into this problem will see their collection restored after installing or updating to the new iPod Add-On.</li>
</ul>
<p>Since then, we&#8217;ve crafted test cases to ensure that this problem never happens again.</p>
<p>We hope you&#8217;ll come back to us! <img src='http://blog.songbirdnest.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2009/03/19/ipod-add-on-updated-bug-bites-the-dust/feed/</wfw:commentRss>
		<slash:comments>72</slash:comments>
		</item>
		<item>
		<title>iPod Add-On Woes</title>
		<link>http://blog.songbirdnest.com/2009/03/16/ipod-add-on-woes/</link>
		<comments>http://blog.songbirdnest.com/2009/03/16/ipod-add-on-woes/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 21:34:20 +0000</pubDate>
		<dc:creator>Aus</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[1.1]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[hendrix]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/?p=1144</guid>
		<description><![CDATA[Hi Everyone, It&#8217;s been brought to our attention that the iPod Add-On has some really nasty issues which may cause it to delete content from an iPod without asking the user first. Because of this we are pulling this add-on from the list of recommended add-ons. If you have this add-on currently installed we highly [...]]]></description>
			<content:encoded><![CDATA[<p>Hi Everyone, </p>
<p>It&#8217;s been brought to our attention that the iPod Add-On has some really nasty issues which may cause it to delete content from an iPod without asking the user first. Because of this we are pulling this add-on from the list of recommended add-ons.</p>
<p>If you have this add-on currently installed we highly suggest you disable or uninstall it for the time being.</p>
<p>We apologize for any problems you&#8217;ve encountered because of this issue and I assure you we&#8217;re looking into this with utmost attention. We will post more information about this issue in our bug tracking tool <a href="http://bugzilla.songbirdnest.com/show_bug.cgi?id=15640">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2009/03/16/ipod-add-on-woes/feed/</wfw:commentRss>
		<slash:comments>106</slash:comments>
		</item>
		<item>
		<title>Hitting a Sour Note</title>
		<link>http://blog.songbirdnest.com/2009/02/28/hitting-a-sour-note/</link>
		<comments>http://blog.songbirdnest.com/2009/02/28/hitting-a-sour-note/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 10:00:57 +0000</pubDate>
		<dc:creator>ali</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[1.1]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/?p=1034</guid>
		<description><![CDATA[Bird Beta superfans, We&#8217;ve hit a snag in the Hendrix release &#8212; our 1.1b1 and 1.1b2 builds are causing crashes for some of you and we don&#8217;t know why.  We&#8217;re launching an all-talons-out bird assault on this thing to get it fixed before the final release. Here&#8217;s how it&#8217;s going to go down and what [...]]]></description>
			<content:encoded><![CDATA[<p>Bird Beta superfans,</p>
<p>We&#8217;ve hit a snag in the Hendrix release &#8212; our 1.1b1 and 1.1b2 builds are causing crashes for some of you and we don&#8217;t know why.  We&#8217;re launching an all-talons-out bird assault on this thing to get it fixed before the final release.</p>
<p>Here&#8217;s how it&#8217;s going to go down and what we need from you:</p>
<p><strong>If you&#8217;re seeing the crash</strong>, you&#8217;re probably on Windows Vista and it&#8217;s probably crashing soon after launching Songbird. We need your information!  Submit the crash report and please oh please add a comment about what was going on when it crashed. (If this doesn&#8217;t sound like your crash, we&#8217;re not ignoring you; we fixed two other new crashers on Friday and they should be gone now.  See bugs <a href="http://bugzilla.songbirdnest.com/show_bug.cgi?id=15485">15485</a> and <a href="http://bugzilla.songbirdnest.com/show_bug.cgi?id=15502">15502</a>.)</p>
<p><strong>Everyone (crashers and non-crashers alike)</strong>, <a href="http://developer.songbirdnest.com/builds/trunk/latest/">download the latest nightly off trunk</a> and give it a spin.  We upgraded Songbird&#8217;s database in our trunk builds in hopes of fixing the crash.  If the community gives us the thumbs-up on the DB upgrade, we will merge those changes out to the Songbird1.1 branch for the Hendrix release.</p>
<p><strong>Developers</strong>, if you feel like rolling up your sleeves and digging around in the bird innards for this one, you can find all pertinent crash reports <a href="http://crashreports.songbirdnest.com/report/list?range_unit=weeks&amp;query_search=signature&amp;query_type=contains&amp;branch=Songbird1.1&amp;signature=fts3GetVarint&amp;query=fts3GetVarint&amp;range_value=1">here</a>.  Development activity is being tracked in <a href="http://bugzilla.songbirdnest.com/show_bug.cgi?id=15501">bug 15501</a>.</p>
<p>Use this comments thread to communicate with us and with each other!  Did the trunk build fix the crash? Did it cause your machine to pop open and give birth to a fleet of unicorns? We want to know, so we&#8217;ll be checking in frequently over the weekend.</p>
<p>Happy weekend, everyone!  I&#8217;ll be announcing the winners of the Watch Folders community bug hunt next week!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2009/02/28/hitting-a-sour-note/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Songbird path to Agility &#8211; Part I</title>
		<link>http://blog.songbirdnest.com/2008/06/25/songbird-path-to-agility-part-i/</link>
		<comments>http://blog.songbirdnest.com/2008/06/25/songbird-path-to-agility-part-i/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 19:05:57 +0000</pubDate>
		<dc:creator>Georges Auberger</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[costing]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[points]]></category>
		<category><![CDATA[story]]></category>
		<category><![CDATA[task]]></category>
		<category><![CDATA[waterfall]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/?p=411</guid>
		<description><![CDATA[This is the first post of a 3 part series presenting our experience moving Songbird development to an Agile process. Drowning in the waterfall Up until version 0.3, Songbird development had been following a fairly traditional waterfall model. Realizing the ambitious vision of building both a platform and a desktop media player has presented many [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://files.songbirdnest.com/over-the-falls.png" /></p>
<p>This is the first post of a 3 part series presenting our experience moving Songbird development to an Agile process.</p>
<h4>Drowning in the waterfall</h4>
<p>Up until <a href="http://blog.songbirdnest.com/2007/10/30/songbird-03-is-launched/">version 0.3</a>, Songbird development had been following a fairly traditional <a href="http://en.wikipedia.org/wiki/Waterfall_model">waterfall model</a>. Realizing the ambitious vision of building both a platform <strong>and</strong> a desktop media player has presented many challenges. A lot of plumbing infrastructure is needed before any features can be created. Faced with that challenge, the engineering team did what engineers do best, they designed a very comprehensive system, planned for it very carefully and started cranking code.</p>
<p>During the planning phase, the team estimated the work to the best of their abilities and a <a href="http://en.wikipedia.org/wiki/Gantt_chart">Gantt chart</a> was created to reflect identified dependencies and track progress. Unfortunately, this approach led to lengthy release cycles (10-12 months) with lots of room for scope creep. When the release finally got completed, lots of good work was accomplished (over <a href="http://snipurl.com/25mhe">1200 issues</a> where addressed in 0.3 alone) but the lack of visibility was problematic and the slow pace of releases was too demoralizing.</p>
<p>We recognized that the schedule was build on assumption that we knew everything upfront. There was a sentiment that the whole Gantt thing was a little removed from the actual work and that overall &#8220;things were going ok, because we were kind of tracking it&#8221; was not an acceptable way to run our project. We had to accept that our planning and scheduling practices were broken.</p>
<p>Besides the effect on morale, a long development cycle presented the following problems:</p>
<ul>
<li>
Nothing can be released until everything is completed and put back together.
</li>
<li>
Difficulty to bring visibility on real progress (i.e. when can we ship?).
</li>
<li>
Last stable release branch and trunk drift apart significantly. Especially problematic to support commercial partners.
</li>
</ul>
<p>We also felt that our task estimates were not granular enough and the built-in slack was not taking into account other work. Unfrequent build also meant a lack of visibility on product quality.</p>
<p>That kind of development approach also fosters poor engineering and product development habits, such as:</p>
<ul>
<li>
Reduced sense of urgency to release code. Discipline drops, unit test failures increase, bugs pile up. &#8220;We have enough time to fix this&#8221; mentality develops.
</li>
<li>
Ultimate release becomes a huge effort as the routine around releasing code does not form.
</li>
<li>
No continuity in QA, bugs accumulate in a backlog.
</li>
<li>
No context for new work, so there is a tendency to add more things to existing release, also known as feature creep.
</li>
</ul>
<h4>Becoming more Agile</h4>
<p>We decided to adopt a new approach to development that would address those issues. These are the objectives we tried to fulfill: </p>
<ol>
<li>
Satisfy our customers (end-users, developers, partners) through early and continuous delivery of valuable and innovative software.
</li>
<li>
Provide ability to react quickly to business changes.
</li>
<li>
Reduce product defects and security exposures.
</li>
<li>
Ensure team and product sustainability. Focus on ease of product maintenance, allow the team to maintain a constant pace indefinitely and be resilient to turn over.
</li>
<li>
Provide good visibility into progress and release date.
</li>
</ol>
<p>We felt that we had a good foundation of existing practices we could build upon. <a href="http://en.wikipedia.org/wiki/Build_automation">Build automation</a>, <a href="http://martinfowler.com/articles/continuousIntegration.html">continuous integration</a>, <a href="http://en.wikipedia.org/wiki/Unit_test">unit testing</a>, <a href="http://en.wikipedia.org/wiki/Code_review">peer review process</a> for code commits, <a href="http://developer.songbirdnest.com/add-on-api/docs/">automated api documentation</a> and the use of <a href="http://bugzilla.songbirdnest.com">Bugzilla</a> were already well established within the team. We needed to augment those with a few others borrowed from <a href="http://agilemanifesto.org/">Agile methodologies</a>. </p>
<p>We added the following set of guiding principles:</p>
<ul>
<li>
Reduce release length and maintain a releasable product at all time.
</li>
<li>
Working software is delivered frequently (weeks rather than months) and is the principal measure of progress.
</li>
<li>
Provide rapid feedback loop to QA and Product Manager.
</li>
<li>
Develop a system for better estimation and tracking.
</li>
</ul>
<h6>Reduce release length</h6>
<p>At a high level, we&#8217;ve committed to release a major update of Songbird every other month. We opted for calendar driven releases with a short development cycle of 4 to 6 weeks of coding maximum. We adopted a naming scheme for each release train drawn from a music artists theme. Alphabetically sequencing those release trains makes it easy to see the order of releases (<a href="http://wiki.songbirdnest.com/Releases/Eno">Eno</a> release comes after Dokken for instance).</p>
<h6>Measure progress against working code</h6>
<p>Within a release cycle, we introduced the notion of <strong>iterations</strong> of 1 week length that we used for planning and measuring progress against. This gave us the context to improve our estimation and tracking system.</p>
<h6>Develop a system for better estimation and tracking</h6>
<p>Estimating how long software development takes is one of the most difficult thing to do. </p>
<p>We created a <a href="http://wiki.songbirdnest.com/Roadmap">High Level Roadmap</a> that captures the scope and sequencing of each release.</p>
<p>We came up with a set of lightweight artifacts that would help us represent and track what needs to be done.</p>
<ul>
<li>
<a href="http://bugzilla.songbirdnest.com/buglist.cgi?query_format=advanced&#038;short_desc_type=allwordssubstr&#038;short_desc=&#038;product=Songbird&#038;long_desc_type=substring&#038;long_desc=&#038;bug_file_loc_type=allwordssubstr&#038;bug_file_loc=&#038;status_whiteboard_type=allwordssubstr&#038;status_whiteboard=&#038;keywords_type=allwords&#038;keywords=&#038;deadlinefrom=&#038;deadlineto=&#038;bug_status=NEW&#038;bug_status=ASSIGNED&#038;bug_status=REOPENED&#038;emailassigned_to1=1&#038;emailtype1=substring&#038;email1=&#038;emailassigned_to2=1&#038;emailreporter2=1&#038;emailqa_contact2=1&#038;emailcc2=1&#038;emailtype2=substring&#038;email2=&#038;bugidtype=include&#038;bug_id=&#038;votes=&#038;chfieldfrom=&#038;chfieldto=Now&#038;chfieldvalue=&#038;cmdtype=doit&#038;order=Reuse+same+sort+as+last+time&#038;field0-0-0=cf_type_&#038;type0-0-0=equals&#038;value0-0-0=Feature">Feature</a> &#8211; High level product feature (bullet point on product box, if we had one)
</li>
<li>
<a href="http://bugzilla.songbirdnest.com/buglist.cgi?query_format=advanced&#038;short_desc_type=allwordssubstr&#038;short_desc=&#038;product=Songbird&#038;long_desc_type=substring&#038;long_desc=&#038;bug_file_loc_type=allwordssubstr&#038;bug_file_loc=&#038;status_whiteboard_type=allwordssubstr&#038;status_whiteboard=&#038;keywords_type=allwords&#038;keywords=&#038;deadlinefrom=&#038;deadlineto=&#038;bug_status=NEW&#038;bug_status=ASSIGNED&#038;bug_status=REOPENED&#038;emailassigned_to1=1&#038;emailtype1=substring&#038;email1=&#038;emailassigned_to2=1&#038;emailreporter2=1&#038;emailqa_contact2=1&#038;emailcc2=1&#038;emailtype2=substring&#038;email2=&#038;bugidtype=include&#038;bug_id=&#038;votes=&#038;chfieldfrom=&#038;chfieldto=Now&#038;chfieldvalue=&#038;cmdtype=doit&#038;order=Reuse+same+sort+as+last+time&#038;field0-0-0=cf_type_&#038;type0-0-0=equals&#038;value0-0-0=Story">Story</a> &#8211; Smallest increment of implementable end-user value
</li>
<li>
<a href="http://bugzilla.songbirdnest.com/buglist.cgi?query_format=advanced&#038;short_desc_type=allwordssubstr&#038;short_desc=&#038;product=Songbird&#038;long_desc_type=substring&#038;long_desc=&#038;bug_file_loc_type=allwordssubstr&#038;bug_file_loc=&#038;status_whiteboard_type=allwordssubstr&#038;status_whiteboard=&#038;keywords_type=allwords&#038;keywords=&#038;deadlinefrom=&#038;deadlineto=&#038;bug_status=NEW&#038;bug_status=ASSIGNED&#038;bug_status=REOPENED&#038;emailassigned_to1=1&#038;emailtype1=substring&#038;email1=&#038;emailassigned_to2=1&#038;emailreporter2=1&#038;emailqa_contact2=1&#038;emailcc2=1&#038;emailtype2=substring&#038;email2=&#038;bugidtype=include&#038;bug_id=&#038;votes=&#038;chfieldfrom=&#038;chfieldto=Now&#038;chfieldvalue=&#038;cmdtype=doit&#038;order=Reuse+same+sort+as+last+time&#038;field0-0-0=cf_type_&#038;type0-0-0=equals&#038;value0-0-0=Task">Task</a> &#8211; Engineering implementation detail, chore, etc.
</li>
<li>
<a href="http://bugzilla.songbirdnest.com/buglist.cgi?query_format=advanced&#038;short_desc_type=allwordssubstr&#038;short_desc=&#038;product=Songbird&#038;long_desc_type=substring&#038;long_desc=&#038;bug_file_loc_type=allwordssubstr&#038;bug_file_loc=&#038;status_whiteboard_type=allwordssubstr&#038;status_whiteboard=&#038;keywords_type=allwords&#038;keywords=&#038;deadlinefrom=&#038;deadlineto=&#038;bug_status=NEW&#038;bug_status=ASSIGNED&#038;bug_status=REOPENED&#038;emailassigned_to1=1&#038;emailtype1=substring&#038;email1=&#038;emailassigned_to2=1&#038;emailreporter2=1&#038;emailqa_contact2=1&#038;emailcc2=1&#038;emailtype2=substring&#038;email2=&#038;bugidtype=include&#038;bug_id=&#038;votes=&#038;chfieldfrom=&#038;chfieldto=Now&#038;chfieldvalue=&#038;cmdtype=doit&#038;order=Reuse+same+sort+as+last+time&#038;field0-0-0=cf_type_&#038;type0-0-0=equals&#038;value0-0-0=Bug">Bug</a> &#8211; Defect in existing functionality
</li>
</ul>
<p>In support of that, we also created on our wiki <strong>design docs</strong> that represent wireframe and accompanying notes to explain each feature. You can see an <a href="http://wiki.songbirdnest.com/Releases/Eno/Clean_Up_View_Menus">example of such document</a> for the view menus clean up in Eno release.</p>
<p>For each <strong>story</strong>, <strong>task</strong> and <strong>bug</strong>, we&#8217;ve introduced a costing system based on <strong>points</strong>. The scale starts as at 1 point, for something easy that an engineer can do in a day. Two points means it will take some time to think about it and write the code. 3 pointers are reserved for the most difficult issues, requiring research or lots of code. The idea is to come up with a normalized unit of work across the team that we can measure ourselves against. Moving from a time based estimate to point base is not easy. For one, the scale is not linear (e.g. 3 pointers don&#8217;t take 3 times as long as 1 pointers). However, the basis for this is to simplify and reduce cost estimate process to a good enough level that we can measure and forecast. While it may be a blunt instrument, there is diminish return in spending more time refining and tracking estimate at a much more precise level.</p>
<p>The key benefit from developing a consistent costing practice is the ability to measure progress and use it to forecast future work. Entering <strong>Velocity</strong>. By computing how many points get completed by the team over an iteration, we were able to normalize the output in the form of a velocity metric. This gives us a sense of how much stuff we can accomplish in a typical cycle.</p>
<p>To track our progress, we setup 2 iteration meeting, one to review and plan the iteration and the other to steer the iteration at mid-point.</p>
<p>All the artifacts and measurements are tied together on a <strong>Release Plan</strong> published on our internal wiki.</p>
<h6>Feedback loops</h6>
<p>Another important factor is the acceptance and validation of work. In order for points to be counted in an iteration, there needs to be an agreement on when things are &#8220;done&#8221;. <a href="http://wiki.songbirdnest.com/Developer/Articles/Builds/Nightly_Builds">Nightly builds</a> are being used for verification every day. On the bug front, QA validates engineering fixes and mark them validated. Similarly, Product Manager accept stories as completed when they are satisfied with the implementation of a feature.</p>
<h4>Putting it to practice</h4>
<p>With all these new practices in place, we were eager to tackle our first Agile release known as &#8220;Cher&#8221;. Our next post will take a look at the roller coaster of real life release cycle.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2008/06/25/songbird-path-to-agility-part-i/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Database Schema Changes in Nightly (We broke your sh*t)</title>
		<link>http://blog.songbirdnest.com/2008/04/04/database-schema-changes-in-nightly-we-broke-your-sht/</link>
		<comments>http://blog.songbirdnest.com/2008/04/04/database-schema-changes-in-nightly-we-broke-your-sht/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 01:45:40 +0000</pubDate>
		<dc:creator>steve</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[broken]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[schema]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/2008/04/04/database-schema-changes-in-nightly-we-broke-your-sht/</guid>
		<description><![CDATA[Heads-up to folks who download nightlies or build from trunk! I just landed bug 8247 which included a change to our library database schema. It turns out using 36 character strings instead of integers as foreign keys bloats the size of your database and generally slows things down. This fix reduces our library database size [...]]]></description>
			<content:encoded><![CDATA[<p>Heads-up to folks who download <a href="http://publicsvn.songbirdnest.com/wiki/Nightly_Builds">nightlies</a> or build from trunk!  I just landed <a href="http://bugzilla.songbirdnest.com/show_bug.cgi?id=8247">bug 8247</a> which included a change to our library database schema.  It turns out using 36 character strings instead of integers as foreign keys bloats the size of your database and generally slows things down.  This fix reduces our library database size by almost 50% and gives us an all-around performance boost, particularly on large libraries.</p>
<p><strong>The down side is that your current Songbird library will not be compatible with future versions of Songbird, starting with tonight&#8217;s nightly.</strong>  The fix is easy &#8212; simply delete your profile and re-import your library.  There is another option for those who would prefer to keep their libraries, but it takes some skills.  It involves using the <a href="http://www.sqlite.org/download.html">sqlite command line tool</a> and running a <a href="http://bugzilla.songbirdnest.com/attachment.cgi?id=5114">migration script</a> on each of your Songbird library database files.  If you&#8217;re gung-ho to give this a try, Peter documented <a href="http://wiki.songbirdnest.com/index.php/MigrateDB0To2">the steps</a> on our wiki.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2008/04/04/database-schema-changes-in-nightly-we-broke-your-sht/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>-moz-border-radius clips background images now. Yay!</title>
		<link>http://blog.songbirdnest.com/2008/03/14/moz-border-radius-clips-background-images-now-yay/</link>
		<comments>http://blog.songbirdnest.com/2008/03/14/moz-border-radius-clips-background-images-now-yay/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 01:02:37 +0000</pubDate>
		<dc:creator>komi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[-moz-border-radius]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[MozBug 24998]]></category>

		<guid isPermaLink="false">http://blog.songbirdnest.com/2008/03/14/moz-border-radius-clips-background-images-now-yay/</guid>
		<description><![CDATA[I just found out that MozBug 24998 (background images spill beyond rounded borders / -moz-border-radius) was fixed late last year. Nice! Here&#8217;s a screenshot of a quick demo &#8211; it uses HTML but the same can be done in XUL. See how the corners of the background image don&#8217;t show through the edges of the [...]]]></description>
			<content:encoded><![CDATA[<p>I just found out that <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=24998" title="background images spill beyond rounded borders / -moz-border-radius">MozBug 24998</a> (background images spill beyond rounded borders / -moz-border-radius) was fixed late last year. Nice!</p>
<p>Here&#8217;s a screenshot of a quick demo &#8211; it uses HTML but the same can be done in XUL. See how the corners of the background image don&#8217;t show through the edges of the porthole like <a href='http://files.songbirdnest.com/wp-content/uploads/2008/03/moz-border-radius-before.png'>before</a>?</p>
<p><a href='http://files.songbirdnest.com/wp-content/uploads/2008/03/moz-border-radius-demo.png'><img src='http://files.songbirdnest.com/wp-content/uploads/2008/03/moz-border-radius-demo.thumbnail.png' alt='-moz-border-radius demo screenshot' /></a></p>
<p><a href='http://files.songbirdnest.com/wp-content/uploads/2008/03/moz-border-radius-demo.zip'>Download example source code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.songbirdnest.com/2008/03/14/moz-border-radius-clips-background-images-now-yay/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

