<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Brendan Burns's Blog</title>
	
	<link>http://blog.brendanburns.org</link>
	<description>... in particular, on Agile, productivity, test-driven development, continuous integration and knowledge management</description>
	<lastBuildDate>Wed, 05 Oct 2011 13:16:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/brendan_burns" /><feedburner:info uri="brendan_burns" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>brendan_burns</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Pain with .NET 4 assemblies and the GAC</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/KgJCVNvPwoA/</link>
		<comments>http://blog.brendanburns.org/2011/10/pain-with-net-4-assemblies-and-the-gac/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 13:16:03 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[Microsoft .NET]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=503</guid>
		<description><![CDATA[Installing a Microsoft .NET assembly into the GAC used to be fairly trivial. Unfortunately, I just spent some frustrating time learning that things have changed quite a bit with .NET 4. I began with my .NET 4 assembly and tried to install it via the usual approach, dragging and dropping it into the %windir%\assembly folder [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Installing a Microsoft .NET assembly into the GAC used to be fairly trivial. Unfortunately, I just spent some frustrating time learning that things have changed quite a bit with .NET 4.</p>
<p>I began with my .NET 4 assembly and tried to install it via the usual approach, dragging and dropping it into the <strong>%windir%\assembly</strong> folder via the Explorer shell extension. Strange; nothing happened.</p>
<p>A quick search revealed that for .NET 4, Microsoft, for reasons which do not seem to be well documented, have created a new GAC location, in the <strong>%windir%\Microsoft.NET</strong> folder.</p>
<p>Well, that was annoying, I thought: but I could deal with it. I tried dropping the file into the new GAC folder… but there is no nice Explorer shell extension for the new GAC. Doh! (for the second time)</p>
<p>Ok, time to drop to the command line and fire up good ol’ gacutil.exe.</p>
<p><strong>FAIL</strong></p>
<p>I received this error message:<br />
<code>“Failure adding assembly to the cache:   This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.”</code></p>
<p>Sigh. Ok, I thought, I&#8217;ll just use the .NET 4 version of gacutil.exe. After a quick search of my PC I learned that it’s not installed with Version 4 of framework, nor with Visual Studio 10.</p>
<p>Yet another brick wall! But no worries &#8211; I would just download it. I found out <a href="http://mattwhetton.blogspot.com/2011/08/installing-net-40-assemblies-to-global.html">via Matt Whetton’s Blog</a> that I needed to download <a href="http://www.microsoft.com/download/en/details.aspx?id=8279">Microsoft Windows SDK for Windows 7 and .NET Framework 4</a> to get it, so I did (while wondering why I need to download that whole SDK to get gacutil??)</p>
<p>So then I found gacutil in the bin folder of the SDK and I ran it. Arrgh, it returned the same error message again!</p>
<p>Eventually I found the .NET 4 version of GACUtil in the SDK – it’s nestled in<br />
<strong>C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools</strong>.</p>
<p>Sigh. Could Microsoft really make things any more difficult? I just wanted to install an assembly into the GAC!</p>
<p>By the way, if you need to copy gacutil onto a server, you will need to copy the following files to it: gacutil.exe, gacutil.exe.config and gacutlrc.dll (the last one located in the 1033 sub folder containing gacutil).</p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/KgJCVNvPwoA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/10/pain-with-net-4-assemblies-and-the-gac/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/10/pain-with-net-4-assemblies-and-the-gac/</feedburner:origLink></item>
		<item>
		<title>Leave the Code in a Better State than you Found It</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/g8y9atZASnk/</link>
		<comments>http://blog.brendanburns.org/2011/09/leave-the-code-in-a-better-state-than-you-found-it/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 12:52:11 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=477</guid>
		<description><![CDATA[We’ve all been there: code that hurts your brain to look at, let alone comprehend. Not written by you, of course. You wouldn’t write a mess like that, and you can hardly believe that somebody else did (or maybe you can&#8230;?) Your mind wanders to who to blame for this abomination before your eyes. You [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><strong>We’ve all been there: <em>code that hurts your brain to look at, let alone comprehend</em>.</strong></p>
<p>Not written by <em>you</em>, of course. <em>You</em> wouldn’t write a mess like that, and you can hardly believe that somebody else did (or maybe you <em>can</em>&#8230;?)</p>
<p>Your mind wanders to who to blame for this abomination before your eyes. You start complaining to the person sitting next to you. Then to your boss. Then you decide that it’s time for a coffee and then to browse for new jobs.</p>
<p>Sound familiar? I bet it does!</p>
<p>The difference between an average programmer and a good one is in what you do next.</p>
<p>Do you ignore it and try to forget you ever saw it, or do you <strong>attempt to improve it</strong>?</p>
<p>I have a simple rule that I like to follow: <strong>I always try to leave the code in a better state than I found it</strong>.</p>
<p>This might involve small improvements, like improving <strong>code formatting</strong>, <strong>renaming methods</strong> or <strong>variables</strong>, or adding <strong>useful comments</strong>. Tiny improvements add up over time, especially if the whole team is doing the same thing!</p>
<p>Or the improvement could be larger, like <strong>refactoring</strong> or <strong>adding test coverage</strong>.</p>
<p>Yes, this can take time, and yes you do have that deadline to consider. But it&#8217;s amazing how quickly small improvements can be done; certainly in much less time than it took to understand that grotesque code. Which means that your improvement might make it much quicker for the next person to understand &#8211; and that next person might be <em>you</em>, when you revisit it in a year&#8217;s time&#8230;</p>
<p>The important thing is to <strong>do it</strong>, and <strong>encourage your whole team</strong> to do it. Don’t be afraid to change things. Take responsibility for that code, even if you didn’t write it: embrace collective code ownership!</p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/g8y9atZASnk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/09/leave-the-code-in-a-better-state-than-you-found-it/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/09/leave-the-code-in-a-better-state-than-you-found-it/</feedburner:origLink></item>
		<item>
		<title>Notes from Jean Tabaka’s talk, “The 12 Failure Modes of Agile”</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/XsgysrC5N2w/</link>
		<comments>http://blog.brendanburns.org/2011/07/notes-from-jean-tabakas-talk-the-12-failure-modes-of-agile/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 13:39:21 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=464</guid>
		<description><![CDATA[I recently had the opportunity to hear Jean Tabaka, Agile Coach from Rally Software, speak in Brisbane at Yow! Nights about The 12 Failure Modes of Agile. Jean has been consulting as an Agile coach for many years, so it was really thought-provoking to hear her top reasons of why the adoption of Agile might [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I recently had the opportunity to hear <a href="http://www.rallydev.com/agileblog/about/">Jean Tabaka</a>, Agile Coach from Rally Software, speak in Brisbane at <a href="http://yownightbrisagilejune.eventbrite.com/">Yow! Nights</a> about The 12 Failure Modes of Agile.</p>
<p>Jean has been consulting as an Agile coach for many years, so it was really thought-provoking to hear her top reasons of why the adoption of Agile might fail.</p>
<p>I thought I&#8217;d repeat the list on my blog for my readers because I think it&#8217;s a great compilation of potential pitfalls we should all work hard to avoid. Perhaps we could call them &#8220;Agile anti-patterns&#8221;!</p>
<h2>The 12 Failure Modes of Agile (from Jean Tabaka)</h2>
<h2>1. &#8220;Checkbook commitment&#8221;</h2>
<p>This refers to when people are saying they&#8217;re doing &#8220;Agile&#8221;, but without <em>actually</em> committing to it. They expect immediate results, and they use the same old organisational structure and metrics.</p>
<h2>2. Culture that doesn&#8217;t support change</h2>
<p>If the company culture is resistant to change, how can it adopt a methodology that embraces it? An example of this would be a culture where people are rewarded for not &#8220;rocking the boat&#8221;.</p>
<h2>3. Ineffective use of retrospectives</h2>
<p>Retrospectives must be done and handled effectively. The feedback gained via retrospectives must be learned from and acted upon. The whole team must be responsible for the actions from the retrospective, not just the scrum master.</p>
<h2>4. Ignore needed infrastructure</h2>
<p>For example, for a team to do Continuous Integration, it needs access to a build server!</p>
<h2>5. Lack of full planning participation</h2>
<p>The whole team needs to participate in planning and, as a team, commit to the work defined for the iteration.</p>
<h2>6. Unavailable (or too many) product owners</h2>
<p>Product owners are busy, but it is a warning sign when they say &#8220;we&#8217;re too busy for all this communicating&#8221;. Also, if there are too many product owners, it can be hard to get agreement.</p>
<p>Jean raised an intriguing question here: she asked how many people in the audience had done some form of Agile training. Many hands went up. Then she asked, how many people had worked with product owners who have been trained in Agile? I don&#8217;t think anybody raised their hand&#8230;</p>
<h2>7. Bad scrum masters</h2>
<p>The team needs to collaborate well within each iteration, and a poor scrum master can be harmful to the team&#8217;s morale and productivity. An example of a bad scrum master is one that  plans all the work, puts it in a tool and then tells people to do it.</p>
<p>Jean made the point that if you take over the decisions for others you lower morale (and IQ&#8217;s!). Scrum masters should not control, they should empower.</p>
<h2>8. Not having an onsite evangelist</h2>
<p>This point is particularly important for distributed teams, or teams in branch offices. Without an Agile evangelist/coach onsite, the remote team can lose its way.</p>
<h2>9. Team lacks authority/decision making ability</h2>
<p>Agile is not about control, it is about empowerment.</p>
<h2>10. Testing not pulled forward</h2>
<p>Testing should be done up front, ideally, or else as soon as possible. Testing should also be automated.</p>
<h2>11. Traditional performance appraisals</h2>
<p>Traditionally, performance appraisals reward individual performance. In an Agile environment, the focus is on team performance, not individual heroics, and appraisals should reflect this.</p>
<p>Performance evaluations should also be regular, not once per year.</p>
<h2>12. Change is hard, Agile is blamed</h2>
<p>For example: an Agile methodology is introduced to solve a company&#8217;s problems. It fails, and Agile is blamed rather than the company&#8217;s own, deeper problems. It is often easier to look outwards and assign blame rather than to look inwards.</p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/XsgysrC5N2w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/07/notes-from-jean-tabakas-talk-the-12-failure-modes-of-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/07/notes-from-jean-tabakas-talk-the-12-failure-modes-of-agile/</feedburner:origLink></item>
		<item>
		<title>The Emerging Trend of Agile for Non-Development Projects</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/XUz5kcB8JGI/</link>
		<comments>http://blog.brendanburns.org/2011/05/the-emerging-trend-of-agile-for-non-development-projects/#comments</comments>
		<pubDate>Mon, 23 May 2011 13:53:37 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=427</guid>
		<description><![CDATA[Recently I attended a session of the Brisbane Agile Academy Meetup Group (which I highly recommend, and not just for the free pizza!) chaired by Craig Smith, on Using Agile for Non-Development Projects. I must admit have a special interest in this idea: ever since I began using Agile for software development I have fantasised [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Recently I attended a session of the Brisbane Agile Academy Meetup Group (which I highly recommend, and not just for the free pizza!) chaired by <a href="http://www.slideshare.net/smithcdau">Craig Smith</a>, on <a href="http://www.meetup.com/The-Brisbane-Agile-Academy-Meetup-Group/events/16216931/">Using Agile for Non-Development Projects</a>.</p>
<p>I must admit have a special interest in this idea: ever since I began using Agile for software development I have fantasised about its potential for non-development projects. I used it to partly plan my recent round the world trip. A former colleague of mine was using it to plan his wedding. If it works for a software team, it could work elsewhere&#8230; right?</p>
<p>But it&#8217;s never quite that easy, is it? It can be difficult to get buy-in for an Agile process in a development team, depending on the level of management support and developer engagement. Imagine how much harder it must be to get momentum in an environment or industry that may not have even <em>heard</em> of Agile!</p>
<p>Having these doubts in mind, the session was a real eye-opener for me. I was introduced to real people working in corporate teams using Agile for non-software projects.</p>
<p>Some examples I have discovered:</p>
<ul>
<li>The bank, Suncorp is using Agile for <strong>finance and procurement teams</strong>, with an Agile coach from software development background, and by mapping Agile onto standard processes</li>
<li>The telecommunications company Telstra is applying Agile while providing <strong>external services</strong> to Suncorp, integrating with Suncorp&#8217;s preferred business service methodology</li>
<li>Lonely Planet&#8217;s <strong>team of in-house lawyers</strong> is now using Agile to plan their work load and ensure priority items are done on time (Beverley Head in Agile Today, May 2011)</li>
<li>AccuRev <a href="http://www.accurev.com/blog/2010/09/27/implementing-agile/">trained their whole sales team</a> in Certified Scrum Training and adopted a quarterly iteration period, aligning with their sales cycle
</ul>
<p>I am looking forward to watching this trend continue.</p>
<p>Perhaps it might become the silver bullet to unlock the next wave of productivity growth for teams of knowledge workers. Or maybe lots of story boards will just end up getting thrown off rooftops!</p>
<p><strong>What do you think? Do you know of any other examples of Agile being used in non development environments?</strong></p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/XUz5kcB8JGI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/05/the-emerging-trend-of-agile-for-non-development-projects/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/05/the-emerging-trend-of-agile-for-non-development-projects/</feedburner:origLink></item>
		<item>
		<title>How you can use Gmail as a lean, mean, email-processing machine</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/nRfOuQ9I0jo/</link>
		<comments>http://blog.brendanburns.org/2011/05/how-you-can-use-gmail-as-a-lean-mean-email-processing-machine/#comments</comments>
		<pubDate>Wed, 04 May 2011 20:48:33 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[inbox zero]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=290</guid>
		<description><![CDATA[I like to see the process of managing email as a little like gardening. You need to prune the plants and keep on top of the weeds. If you get it right, you end up with a beautifully manicured garden. If you don&#8217;t, you just end up with an overgrown backyard full of weeds! With [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><strong>I like to see the process of managing email as a little like gardening. You need to prune the plants and keep on top of the weeds. If you get it right, you end up with a beautifully manicured garden. If you don&#8217;t, you just end up with an overgrown backyard full of weeds!</strong></p>
<p><div id="attachment_387" class="wp-caption aligncenter" style="width: 500px">
	<a href="http://blog.brendanburns.org/wp-content/uploads/2011/05/JapaneseGarden2.jpg"><img class="size-full wp-image-387" title="Japanese garden" src="http://blog.brendanburns.org/wp-content/uploads/2011/05/JapaneseGarden2.jpg" alt="Japanese garden" width="500" height="333" /></a>
	<p class="wp-caption-text">Japanese garden (Randy Robertson)</p>
</div></p>
<p>With this thought in mind (perhaps I&#8217;m a little <em>too</em> enthusiastic about spring?), today I took the challenge of greatly simplifying my Inbox, based on one simple principle: <strong>does this item need my <em>immediate</em> attention?</strong></p>
<p>To do this, I used the advanced features that Gmail offers to handle a lot of the &#8216;email gardening&#8217; for us!</p>
<p>I started with the low-hanging fruit: the Priority Inbox feature.</p>
<h2>Turn on the Priority Inbox feature</h2>
<p>The <a href="http://mail.google.com/mail/help/intl/en/priority-inbox.html">Priority Inbox</a> feature is brilliant. It means that Gmail will automatically determine which items it thinks are important and which ones aren&#8217;t, and then shows you the priority ones at the top of the page. You can train it to teach it what you view as important and what isn&#8217;t.</p>
<p>You may ask, what about the items that the Priority Inbox feature doesn&#8217;t deem as &#8220;important&#8221;? I&#8217;m talking about dozens of emails every day: newsletters, notifications, bookings; as well anything important that Priority Inbox might have missed (it&#8217;s not perfect, after all!)</p>
<p>It would be helpful to be able to categorise all these emails, wouldn&#8217;t it? I did this by using Gmail labels.</p>
<h2>Create labels</h2>
<p><a href="http://mail.google.com/support/bin/answer.py?answer=118708">Labels</a> are a very powerful Gmail feature: they allow you to classify and thereby group your emails. Think of it as an array of virtual flower boxes, organised by type of flower.</p>
<p>For example, I have a label called <strong>Newsletter</strong>, in which I like to group any subscriptions that I don&#8217;t need to read straight away. Later, I can read them by clicking on the Newsletter folder that Gmail creates for me the left-hand side of the Inbox.</p>
<p><div id="attachment_383" class="wp-caption aligncenter" style="width: 476px">
	<a href="http://blog.brendanburns.org/wp-content/uploads/2011/05/GmailLabel.jpg"><img class="size-full wp-image-383" title="Gmail Label" src="http://blog.brendanburns.org/wp-content/uploads/2011/05/GmailLabel.jpg" alt="Gmail Label" width="476" height="47" /></a>
	<p class="wp-caption-text">Gmail Label</p>
</div></p>
<p>I created more labels, for example, one called <strong>Facebook</strong>, for Facebook notifications. Some people have said &#8220;<em>just stop forwarding the notifications to your email account!</em>&#8220;. But it&#8217;s often quicker to read them as email. It also means that I don&#8217;t need to log into Facebook, which as many of us might know, can be very distracting!</p>
<h2>Create filters</h2>
<p>I took the label idea one step further: I used Gmail filters to let it do the work for me. Filters are another powerful feature and are used to automatically process your emails for you as soon as they arrive. It&#8217;s like having a gardener to tend to your plants for you while you&#8217;re out shopping.</p>
<p>So I created the filter &#8220;<em><strong>all emails from Facebook should be removed from the Inbox and assigned a label of Facebook</strong></em>&#8220;. (Another example of a filter would be, &#8220;<em>all emails from Brendan should automatically deleted.</em>&#8220;)</p>
<p><div id="attachment_384" class="wp-caption aligncenter" style="width: 500px">
	<a href="http://blog.brendanburns.org/wp-content/uploads/2011/05/GmailCreateFilter.jpg"><img class="size-full wp-image-384" title="Creating a filter in Gmail" src="http://blog.brendanburns.org/wp-content/uploads/2011/05/GmailCreateFilter.jpg" alt="Creating a filter in Gmail" width="500" height="371" /></a>
	<p class="wp-caption-text">Creating a filter in Gmail</p>
</div></p>
<p>I applied a similar process for labels and filters for notifications from Twitter, LinkedIn and so on.</p>
<h2>Process remaining emails</h2>
<p>At this stage the groundwork has been done for an automated email-management process. The flower boxes (labels) had been set up and the Gmail gardeners (filters) had been told what to do.</p>
<p>I then took my <strong>Everything Else</strong> folder and went through the remaining emails, the ones that were not classified as Priority. (At this stage I had around a thousand items in this folder!)</p>
<p>For each email, I applied a simple process:</p>
<ol>
<li><strong>Is this item spam?</strong><br />
If yes, click on the Gmail <strong>Mark as Spam</strong> button. I find that with this feature I very rarely receive spam in my Gmail account.
</li>
<li><strong>Is this an email one that I DO NOT want to receive ever again?</strong><br />
If yes, unsubscribe and/or create a filter to automatically delete items from that address in future. (<em>For example, a mass marketing email.</em>)
</li>
<li><strong>Is this an important item which needs to be read/processed?</strong><br />
If so, click on the <strong>Mark as Important</strong> button to tell Gmail to mark emails like this one as important in future. Also click the Star icon to mark the item for later processing. (<em>For example, an email from my Dad.</em>)
</li>
<li><strong>Is this email one that could be archived automatically in future?</strong><br />
If yes, create a filter such that any emails in the future from this address are removed from the inbox and assigned a label. (<em>For example, all hostel booking notifications from HostelBooker can be archived and assigned the TravelBooking label.</em>)
</li>
<li><strong>Anything else</strong>, either click on <strong>Archive</strong> or <strong>Delete</strong> as required.
</li>
</ol>
<h2>The Result</h2>
<p><strong>INBOX ZERO!</strong></p>
<p>What does that really mean? It means I have no emails in my Inbox that are unprocessed. Every email is in its logical place: either assigned a label for reference, or marked with star so I can deal with it later. I also have a large set of new filters to automatically process items in the future.</p>
<h2>Is there more work to do?</h2>
<p>Yes. I still have to go through and process the starred items. But now I know exactly how many of those there are, and as a constant reminder, I will see them every time I log in at the top of the page.</p>
<h2>Was it worth it?</h2>
<p>Overall, the process probably took me couple of hours to do. It was a profitable investment of my time: in future I will spend more time responding to <em>important</em> email and less time managing <em>unimportant</em> email.</p>
<p><em>In a slightly geeky way</em> I also kind of like the feeling that my inbox is being constantly monitored by a robot that will filter the emails for me. That means less work for me.</p>
<p>On the other hand, I also know that I will need to be vigilant in applying this process regularly. I will need to keep creating new filters/labels to keep those pesky weeds under control.</p>
<p>Ok, enough about email. Now it&#8217;s time to go and have a cold drink in that garden!</p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/nRfOuQ9I0jo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/05/how-you-can-use-gmail-as-a-lean-mean-email-processing-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/05/how-you-can-use-gmail-as-a-lean-mean-email-processing-machine/</feedburner:origLink></item>
		<item>
		<title>Quote for the day: on capability, by Tony Robbins</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/6OEnSouesnA/</link>
		<comments>http://blog.brendanburns.org/2011/04/quote-for-the-day-on-capability-by-tony-robbins/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 18:08:39 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[Quotes]]></category>
		<category><![CDATA[Tony Robbins]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=284</guid>
		<description><![CDATA[&#8220;What we can or cannot do, what we consider possible or impossible, is rarely a function of our true capability. It is more likely a function of our beliefs about who we are.&#8221; Tony Robbins]]></description>
			<content:encoded><![CDATA[<p></p><p><em>&#8220;What we can or cannot do, what we consider possible or impossible, is rarely a function of our true capability. It is more likely a function of our beliefs about who we are.&#8221;</em> Tony Robbins</p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/6OEnSouesnA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/04/quote-for-the-day-on-capability-by-tony-robbins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/04/quote-for-the-day-on-capability-by-tony-robbins/</feedburner:origLink></item>
		<item>
		<title>Test driven development: is it as fulfilling as non-TDD?</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/aRs9SlV5AdU/</link>
		<comments>http://blog.brendanburns.org/2011/03/test-driven-development-is-it-as-fulfilling-as-non-tdd/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 05:07:13 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[Test-driven development]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=255</guid>
		<description><![CDATA[A few years back I was telling one of my former colleagues about a new technique I&#8217;d discovered and had been using for a little while: test driven development (TDD). I was full of enthusiasm for this, at the time to me, new technique. His first question to me surprised me a little: &#8220;yes, but [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>A few years back I was telling one of my former colleagues about a new technique I&#8217;d discovered and had been using for a little while: test driven development (TDD). I was full of enthusiasm for this, at the time to me, new technique.</p>
<p>His first question to me surprised me a little: <strong><em>&#8220;yes, but is it as fulfilling&#8221;</em>?</strong></p>
<p>I was initially unsure how to answer, but said something like yes, that I felt a lot more productive and seemed to spend a lot more time writing code.</p>
<p>After much time spent coding in different TDD environments and after more time to reflect, I can now say for certain that yes, it is more fulfilling.</p>
<p>Let&#8217;s consider for a minute to the situation prior to TDD:</p>
<li>
<ul>spending a <em>lot</em> of my time in the debugger, trying to find annoying bugs in other people&#8217;s code (or mine)</ul>
<li>
<ul>
not feeling totally secure in the code base at any point in time, until the QA team had tested it
</ul>
</li>
<li>
<ul>
being uncertain about making changes or refactoring, particularly in code that wasn&#8217;t written by me, in case I didn&#8217;t know what I had inadvertently broken</ul>
</li>
<p>With TDD I enjoy the feeling of being much more confident both in the code I write, and in the code base itself, because it is covered by tests. I like that I can fix bugs or refactor with confidence, knowing that I can run tests to ensure I haven&#8217;t broken anything. And that an automated build will also run tests after every check in. And that my team is doing the same.</p>
<p>I like that I can write a test to reproduce a bug, and <em>then</em> write the production code to fix the bug. And then run all tests to make sure that I haven&#8217;t broken anything elsewhere.</p>
<p>I like that I don&#8217;t have to waste as much time stepping through code in the debugger.</p>
<p>I like that I can go home at night, knowing that all my code has been integrated successfully and that all tests have passed.</p>
<p>The resulting code base produced is better quality, and bugs can be fixed with more confidence.</p>
<p>I <em>know</em> that all of the above is only as good as the quality of the tests and of their code coverage. But that&#8217;s what being a pragmatic programmer is about; and it&#8217;s still a huge leap forwards from the previous situation.</p>
<p>Feels pretty fulfilling to me!</p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/aRs9SlV5AdU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/03/test-driven-development-is-it-as-fulfilling-as-non-tdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/03/test-driven-development-is-it-as-fulfilling-as-non-tdd/</feedburner:origLink></item>
		<item>
		<title>Which convention should we use for naming unit tests?</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/nX7e7C5XshQ/</link>
		<comments>http://blog.brendanburns.org/2011/03/which-convention-should-we-use-for-naming-unit-tests/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 04:43:47 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[Test-driven development]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=257</guid>
		<description><![CDATA[I am currently reading The Art of Unit Testing by Roy Osherove. He recommends the following naming convention for tests: [MethodUnderTest]_[Scenario]_[ExpectedBehaviour] Which I am glad is similar to that which I&#8217;ve adopted in the past: [MethodUnderTest]_Should[ExpectedBehaviour]_When[Scenario] I think the latter makes for easier reading. Though I admit that the convention recommended by Roy makes for [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I am currently reading <a href="http://www.amazon.co.uk/gp/product/1933988274/ref=as_li_ss_tl?ie=UTF8&#038;tag=brebursblo-21" rel="nofollow">The Art of Unit Testing</a> by Roy Osherove. He recommends the following naming convention for tests:<br />
<code>[MethodUnderTest]_[Scenario]_[ExpectedBehaviour]</code></p>
<p>Which I am glad is similar to that which I&#8217;ve adopted in the past:<br />
<code>[MethodUnderTest]_Should[ExpectedBehaviour]_When[Scenario]</code></p>
<p>I think the latter makes for easier reading. Though I admit that the convention recommended by Roy makes for easier ordering/categorising of tests by scenario.</p>
<p>Whichever method is chosen, I think it&#8217;s important that the same standard is adopted by the whole team.</p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/nX7e7C5XshQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/03/which-convention-should-we-use-for-naming-unit-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/03/which-convention-should-we-use-for-naming-unit-tests/</feedburner:origLink></item>
		<item>
		<title>What I’ve been reading while travelling through South America</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/5bbDMI8Ex4I/</link>
		<comments>http://blog.brendanburns.org/2011/02/what-ive-been-reading-while-travelling-south-america/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 06:55:31 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=232</guid>
		<description><![CDATA[I&#8217;ve been on the road in South America for nearly 2 months now. Actually, I&#8217;ve found it surprisingly difficult to find time to read whilst travelling (excluding travel guides!). Most of my time has been taken up by travel experiences, organising, and the inevitable socialising. But for better or for worse, the long bus journeys [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve been on the road in South America for nearly 2 months now. Actually, I&#8217;ve found it surprisingly difficult to find time to read whilst travelling (excluding travel guides!). Most of my time has been taken up by travel experiences, organising, and the inevitable socialising. But for better or for worse, the long bus journeys in South America have proven to be the saviour of my reading.</p>
<p><strong>This is what I&#8217;ve read so far:</strong></p>
<h3><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26x%3D0%26ref_%3Dnb_sb_noss%26y%3D0%26field-keywords%3Dancient%2520futures%26url%3Dsearch-alias%253Daps&#038;tag=brebursblo-20" rel="nofollow">Ancient Futures: Learning from Ladakh</a><img src="https://www.assoc-amazon.com/e/ir?t=brebursblo-20&#038;l=ur2&#038;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></h3>
<p><em>by Helena Norberg-Hodge</em><br />
This must be the quintessential travel book. It&#8217;s the story of the Leh tribe in the Ladakh area in the Kashmir region of northern India, which was documented over 16 years by Norberg-Hodge. She made extraordinary efforts to get to know the people and their culture, which included learning their language, and she watched the impact as they went from minimal contact/trade with the outside world, to mass tourism and western-style development. The book raises real questions about the nature of western-style progress, especially regarding life satisfaction and happiness. Everyone should read this book.</p>
<h3><a href="http://www.amazon.com/gp/product/0071446524?ie=UTF8&#038;tag=brebursblo-20" rel="nofollow">Crucial Confrontations: Tools for Resolving broken promises, violated expectations, and bad behavior</a><img src="http://www.assoc-amazon.com/e/ir?t=brebursblo-20&#038;l=as2&#038;o=1&#038;a=0071446524" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></h3>
<p><em>by Kerry Patterson, Joseph Grenny), Ron Mcmillan, Al Switzler</em><br />
This is a book all about how to safely confront people… you know, what most of us try to avoid doing, because it&#8217;s usually easier to avoid, and/or because most of us do it poorly. The book offers a lot of great, practical advice with plenty of examples. Everyone should read this book.</p>
<h3><a href="http://www.amazon.com/gp/product/1863305955?ie=UTF8&#038;tag=brebursblo-20" rel="nofollow">Underground: Tales of Hacking, Madness, and Obsession on the Electronic Frontier</a><img src="http://www.assoc-amazon.com/e/ir?t=brebursblo-20&#038;l=as2&#038;o=1&#038;a=1863305955" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></h3>
<p><em>by Suelette Dreyfus with research by Julian Assange </em><br />
This is a book co-authored/researched in the late 90&#8242;s by Julian Assange, of Wikileaks fame. I found out about it when researching Assange&#8217;s background; it&#8217;s a book about the underground hacking scene in the early 90&#8242;s, which he was involved in. The book is meticulously researched and brought back a lot of memories for me of the computer scene that existed back then, a time when as a 15 year old I could think of nothing more fun then messing around on my Commodore Amiga 500 (why didn&#8217;t someone <em>tell</em> me?!). Fittingly, this was the first book I read on my Kindle. (Not everyone should read this book.)</p>
<h3><a href="http://www.amazon.com/gp/product/1564148106?ie=UTF8&#038;tag=brebursblo-20" rel="nofollow">How To Win Any Argument: Without Raising Your Voice, Losing Your Cool, Or Coming To Blows</a><img src="http://www.assoc-amazon.com/e/ir?t=brebursblo-20&#038;l=as2&#038;o=1&#038;a=1564148106" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></h3>
<p><em>by Robert Mayer</em><br />
My friends may find this amusing given how much I love a good, err, discussion, but the book isn&#8217;t exactly as one would expect from the title. It&#8217;s about how to put forward persuasive arguments, either in writing or verbally. It covers subject matter such as the techniques used in marketing and politics: very useful if you want to learn how to build a case using techniques that professionals use, and/or further understand how products are marketed to us and how politicians manage to win us over!</p>
<h3><a href="http://www.amazon.com/gp/product/1442101539?ie=UTF8&#038;tag=brebursblo-20" rel="nofollow">30 Sentences For A Millionaire Mindset</a><img src="http://www.assoc-amazon.com/e/ir?t=brebursblo-20&#038;l=as2&#038;o=1&#038;a=1442101539" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</h3>
<p><em>by Dragos Roua</em><br />
This book was recommended to me by a former colleague of mine, and I also read it on the Kindle. Firstly, this isn&#8217;t one of those <<em>groan</em>> &#8220;how to become a millionaire&#8221; type of books. It&#8217;s more a set of rules for a successful and healthy mind-set, with details on how to action change, if required. A lot of the rules are just common sense and some are down-right simplistic, but some are really inspiring. One might suppose this book could be opposite to the ideas presented in Ancient Futures (mentioned above)… I would say, diplomatically, yes and no… 30 Sentences, to me, seemed mostly about how to avoid common traps in a Western, consumer society which are to the detriment of your well-being, and instead to seize back your time and money and use the system to your advantage.</p>
<h3><a href="http://www.amazon.com/gp/product/0060555661?ie=UTF8&#038;tag=brebursblo-20" rel="nofollow">The Intelligent Investor: The Definitive Book on Value Investing</a><img src="http://www.assoc-amazon.com/e/ir?t=brebursblo-20&#038;l=as2&#038;o=1&#038;a=0060555661" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</h3>
<p><em>by Benjamin Graham</em><br />
(Reading right now). As the title might give away, this book is THE classic book for value investing, written by Benjamin Graham, the mentor to billionaire investor Warren Buffet. Everyone who wants to be a successful investor should probably read this book. I must admit, it&#8217;s a little dry to read while travelling, though&#8230;</p>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/5bbDMI8Ex4I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/02/what-ive-been-reading-while-travelling-south-america/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/02/what-ive-been-reading-while-travelling-south-america/</feedburner:origLink></item>
		<item>
		<title>Fix for italics and lists in WordPress HoPE theme</title>
		<link>http://feedproxy.google.com/~r/brendan_burns/~3/PE_FtmhuMpo/</link>
		<comments>http://blog.brendanburns.org/2011/01/fix-for-italics-and-lists-in-wordpress-hope-theme/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 05:09:54 +0000</pubDate>
		<dc:creator>brendan</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.brendanburns.org/?p=216</guid>
		<description><![CDATA[HoPE is a very nice WordPress theme by Patrick that I&#8217;m currently using for a travel blog. I&#8217;ve found two minor niggles with Version 2.5.8 so far: the theme doesn&#8217;t display italics, bullet points for unordered lists or numbers for ordered lists. The fix is quite simple (just to return the styles to their defaults) [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>HoPE is a very nice WordPress theme by <a href="http://patrick.bloggles.info/"/>Patrick</a> that I&#8217;m currently using for a travel blog.</p>
<p>I&#8217;ve found two minor niggles with Version 2.5.8 so far: the theme doesn&#8217;t display italics, bullet points for unordered lists or numbers for ordered lists. The fix is quite simple (just to return the styles to their defaults) but I thought I&#8217;d post the stylesheet fixes in case anybody else has the same problem:</p>
<ol>
<li>Edit the style.css file. You can do this via your WordPress admin interface by clicking on the menu item Appearance->Editor, then choosing the style.css file</li>
<li>Search for
<pre>i, em, dfn, .fn, cite{font-style:normal;}</pre>
<p>and replace with</p>
<pre>i, em, dfn, .fn, cite{font-style:italic;}</pre>
</li>
<li>Search for
<pre>.entry-content ul{list-style-type:none;}</pre>
<p>and replace with</p>
<pre>.entry-content ul{list-style-type:disc;}</pre>
</li>
<li>Search for
<pre>.entry-content ol{list-style-type:none;}</pre>
<p>and replace with</p>
<pre>.entry-content ol{list-style-type:decimal;}</pre>
</li>
<li>Update the file</li>
<li>View your website again (don&#8217;t forget to click refresh your browser to clear the cache)</li>
</ol>
<img src="http://feeds.feedburner.com/~r/brendan_burns/~4/PE_FtmhuMpo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.brendanburns.org/2011/01/fix-for-italics-and-lists-in-wordpress-hope-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.brendanburns.org/2011/01/fix-for-italics-and-lists-in-wordpress-hope-theme/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: blog.brendanburns.org @ 2012-01-20 03:59:34 -->

