<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Badger Taming</title>
	<atom:link href="http://badgertaming.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://badgertaming.wordpress.com</link>
	<description>Taming the wild animal of software development</description>
	<lastBuildDate>Sat, 29 May 2010 20:54:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='badgertaming.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Badger Taming</title>
		<link>http://badgertaming.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://badgertaming.wordpress.com/osd.xml" title="Badger Taming" />
	<atom:link rel='hub' href='http://badgertaming.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Copying Windows EMFs in code</title>
		<link>http://badgertaming.wordpress.com/2010/05/29/copying-windows-emfs-in-code/</link>
		<comments>http://badgertaming.wordpress.com/2010/05/29/copying-windows-emfs-in-code/#comments</comments>
		<pubDate>Sat, 29 May 2010 20:53:28 +0000</pubDate>
		<dc:creator>Ian Brockbank</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Asynchronous]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://badgertaming.wordpress.com/?p=51</guid>
		<description><![CDATA[Does SetEnhMetaFileBits still reference the buffer after the call finishes? Neither MSDN nor Google could tell me. Here's the answer, along with a routine to copy an enhanced metafile in memory. <a href="http://badgertaming.wordpress.com/2010/05/29/copying-windows-emfs-in-code/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=51&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A worked example in asynchronous code paranoia.</p>
<p>Our application contains diagrams, which are stored in a configuration file as embedded metafiles. Part of the application allows new diagrams to be added to the configuration file. A colleague commented recently that our application seemed to lock the .emf file containing a picture being added &#8211; once the picture was added, you couldn&#8217;t change the .emf until you closed our application down.</p>
<p>When I started investigating, I discovered we call GetEnhMetaFile( filename ) when loading the metafile to add to the configuration file.  We call GetEnhMetaFileBits to copy the binary data for saving into the config file.  And we call SetEnhMetaFileBits when loading the binary data back from the config file.</p>
<p>And that&#8217;s it. No clean-up, ever.</p>
<p>So no wonder the file is still locked. (Unfortunately, although our automated tests spot memory leaks, they don&#8217;t spot resource leaks yet.  Any suggestions?)</p>
<p>After poking around a bit (the engineer who wrote that section is no longer with us), I discovered it&#8217;s not clear when it is safe to delete the metafile, because metafile handles are shared around so that there&#8217;s no way of knowing whether something else is referring to the same metafile, or even where it came from in the first place.</p>
<p>So the simplest way to deal with this is to take a copy of the metafile when assigning it to a diagram and then close the source handle at the place itwas opened.  That way the lifetime and ownership is clear.  The loading routine is responsible for its copy, and the diagram is responsible for its copy.  The delete is clearly near the allocation.</p>
<p>How do you copy a metafile?  Hmmm.  There&#8217;s no CopyEnhMetaFile function.  We&#8217;ll need to get the bits from the source and set them to the destination.</p>
<p>GetEnhMetaFileBits takes a handle, a buffer and a buffer length and fills in the buffer from the metafile.  Great&#8230;but how big should the buffer be?  Simple &#8211; you call it first with the buffer set to NULL and it returns the size you need.  Allocate a buffer of the right size, call it again, and Bob&#8217;s your uncle.  You&#8217;ve now got the binary data in a buffer which is in the perfect format for calling SetEnhMetaFileBits, and you know exactly how long it should be.</p>
<pre>// CopyMetaFile version 1 - don't use this one!
WM_RESULT CopyMetaFile( HENHMETAFILE picture, HENHMETAFILE *phCopy )
{
  WM_RESULT       result;
  HENHMETAFILE    hMetaFile = NULL;
  UINT            buflen = 0;
  LPBYTE          buffer = NULL;
  UINT            retval;

  buflen = GetEnhMetaFileBits( picture, 0, NULL );
  if ( !buflen )
  {
    result = WMR_BAD_FILE_FORMAT;
    goto error;
  }
  buffer = (LPBYTE) malloc( buflen );
  if ( !buffer )
  {
    result = WMR_RESOURCE_FAIL;
    goto error;
  }
  retval = GetEnhMetaFileBits( picture, buflen, buffer );
  if ( !retval )
  {
    result = WMR_BAD_FILE_FORMAT;
    goto error;
  }
  hMetaFile = SetEnhMetaFileBits( buflen, buffer );
  if ( !hMetaFile )
  {
    result = WMR_BAD_FILE_FORMAT;
    goto error;
  }

  *phCopy = hMetaFile;
  return WMR_SUCCESS;

error:
  return result;
}
</pre>
<p>But what about the buffer we&#8217;ve just allocated.  Who owns that?  Is it still needed by the metafile, or has the data been copied out of it? Testing with this definitely shows a memory leak, but maybe the metafile still refers to it and freeing the memory again would be dangerous.</p>
<p>MSDN was silent on the topic, a quick web search found nothing either.   The only option was to try it and see.  So free the buffer again after calling SetEnhMetaFileBits.  Quick compile, run the program &#8211; it all seems to work.  We still get the pictures, and there&#8217;s no crash.</p>
<p>But maybe we got lucky &#8211; maybe the memory hasn&#8217;t yet been reused, and the program is just accessing the stale, deleted, but not yet cleaned up memory, and it will crash in half a hour when something else gets given that memory during an allocation.  That would be a <em>horrible</em> bug to track down.  How can we make certain?</p>
<p>I know &#8211; let&#8217;s corrupt the memory immediately before we delete it.  A simple memset to 0 should be enough to wipe out any metafile information, and that would be instantly visible in the application as all the metafiles would just be blank.  Compile, run&#8230;no everything still works perfectly.</p>
<p>Okay, maybe I&#8217;ve not managed to corrupt the memory properly. (You may think I&#8217;m being overly cautious here, but with asynchronous programming, paranoia is definitely your friend.)  Maybe Windows somehow manages to cope, while still needing the memory there.  Maybe the build didn&#8217;t pick up the change properly. How can I check that?</p>
<p>Well, what happens if I corrupt the memory before calling SetEnhMetaFileBits?  Let&#8217;s move the memset to before the call.  This time no pictures, and in fact the app crashes.  So we&#8217;re definitely making a difference.</p>
<p>Move the memset back after the SetEnhMetaFileBits and try again.  Does this work again?  If so, we&#8217;re on a winner.  And indeed everything works perfectly again.  So SetEnhMetaFileBits does take a copy of the memory, and we can free our temporary buffer straight away.</p>
<p>So the final routine is as follows:</p>
<pre>////////////////////////////////////////////////////////////////////////////
///
//  Function: CopyMetaFile
///
/// @brief  Creates a copy of the metafile.
///
/// Written by Ian Brockbank.  Provided with no warranty whatsoever.
/// Feel free to use for any purpose you see fit.
///
/// @param  picture     Metafile to copy.
///
/// @retval WMR_SUCCESS             Succeeded.
/// @retval WMR_BAD_FILE_FORMAT     The metafile couldn't be parsed.
/// @retval WMR_RESOURCE_FAIL       Couldn't allocate a new buffer.
///
////////////////////////////////////////////////////////////////////////////
WM_RESULT CopyMetaFile( HENHMETAFILE picture, HENHMETAFILE *phCopy )
{
  WM_RESULT       result;
  HENHMETAFILE    hMetaFile = NULL;
  UINT            buflen = 0;
  LPBYTE          buffer = NULL;
  UINT            retval;

  buflen = GetEnhMetaFileBits( picture, 0, NULL );
  if ( !buflen )
  {
    result = WMR_BAD_FILE_FORMAT;
    goto error;
  }
  buffer = (LPBYTE) malloc( buflen );
  if ( !buffer )
  {
    result = WMR_RESOURCE_FAIL;
    goto error;
  }
  retval = GetEnhMetaFileBits( picture, buflen, buffer );
  if ( !retval )
  {
    result = WMR_BAD_FILE_FORMAT;
    goto error;
  }
  hMetaFile = SetEnhMetaFileBits( buflen, buffer );
  if ( !hMetaFile )
  {
    result = WMR_BAD_FILE_FORMAT;
    goto error;
  }

  //
  // SetEnhMetaFileBits has taken a copy of the buffer, so
  // release our local copy.
  //
  free( buffer );
  buffer = NULL;

  *phCopy = hMetaFile;
  return WMR_SUCCESS;

error:
  // Clean up.
  if ( hMetaFile )
  {
    DeleteEnhMetaFile( hMetaFile );
    hMetaFile = NULL;
  }
  if ( buffer )
  {
    free( buffer );
    buffer = NULL;
  }

  return result;
}
</pre>
<p>So there you go.  SetEnhMetaFileBits takes a copy of the data buffer passed in, and the caller can release the buffer immediately after the call.</p>
<p>This code comes with no warranties, but feel free to copy and reuse it as you see fit. It worked for me, but I make no guarantees it will also work for you, and maybe there are other holes I didn&#8217;t think of which will catch me in future. If you do find a problem with the code (other than stylistic), please let me know and I&#8217;ll gladly try to fix it.  Otherwise, enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/badgertaming.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/badgertaming.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/badgertaming.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/badgertaming.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/badgertaming.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/badgertaming.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/badgertaming.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/badgertaming.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/badgertaming.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/badgertaming.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/badgertaming.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/badgertaming.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/badgertaming.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/badgertaming.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=51&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://badgertaming.wordpress.com/2010/05/29/copying-windows-emfs-in-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/aa0c2a28d50fee4683d5d2e1974664e9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grandchain</media:title>
		</media:content>
	</item>
		<item>
		<title>How long does it take to become an expert?</title>
		<link>http://badgertaming.wordpress.com/2010/05/05/how-long-does-it-take-to-become-an-expert/</link>
		<comments>http://badgertaming.wordpress.com/2010/05/05/how-long-does-it-take-to-become-an-expert/#comments</comments>
		<pubDate>Wed, 05 May 2010 19:31:17 +0000</pubDate>
		<dc:creator>Ian Brockbank</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[software engineer]]></category>

		<guid isPermaLink="false">http://badgertaming.wordpress.com/?p=46</guid>
		<description><![CDATA[It takes ten years of deliberate practice to become an expert. <a href="http://badgertaming.wordpress.com/2010/05/05/how-long-does-it-take-to-become-an-expert/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=46&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just reading <a title="Mary and Tom Poppendieck" href="http://www.poppendieck.com/" target="_blank">Mary and Tom Poppendieck</a>&#8216;s latest book &#8220;<a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" title="Leading Lean Software Development" href="http://www.amazon.co.uk/gp/product/0321620704?ie=UTF8&amp;tag=grandchainthesco&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0321620704" target="_blank">Leading Lean Software Development</a>&#8220;.  In it they make an interesting point about how long it takes to become an expert.</p>
<p>&#8220;It takes elite performers a minimum of 10,000 hours of deliberate, focussed practice to become experts.  That means it takes about ten years just to arrive at the top level.  And world-class performers don&#8217;t stop practicing once the reach the top; they keep up their deliberate practice, continually putting effort into getting better than others in their field.&#8221;</p>
<p>Ten years.  Of deliberate, focussed practice.  At least.</p>
<p>Raw talent helps, of course.  But it only gets you to the starting line. &#8220;After that, the people who excel are the ones who work the hardest.&#8221;</p>
<p>I&#8217;d better get back to work then&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/badgertaming.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/badgertaming.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/badgertaming.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/badgertaming.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/badgertaming.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/badgertaming.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/badgertaming.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/badgertaming.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/badgertaming.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/badgertaming.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/badgertaming.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/badgertaming.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/badgertaming.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/badgertaming.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=46&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://badgertaming.wordpress.com/2010/05/05/how-long-does-it-take-to-become-an-expert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/aa0c2a28d50fee4683d5d2e1974664e9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grandchain</media:title>
		</media:content>
	</item>
		<item>
		<title>Students CVs &#8211; give me more!</title>
		<link>http://badgertaming.wordpress.com/2010/04/04/students-cvs-give-me-more/</link>
		<comments>http://badgertaming.wordpress.com/2010/04/04/students-cvs-give-me-more/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 20:16:18 +0000</pubDate>
		<dc:creator>Ian Brockbank</dc:creator>
				<category><![CDATA[Interviewing]]></category>
		<category><![CDATA[Students]]></category>
		<category><![CDATA[CV]]></category>
		<category><![CDATA[Graduate]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Student]]></category>

		<guid isPermaLink="false">http://badgertaming.wordpress.com/?p=37</guid>
		<description><![CDATA[You've only got a minute while I scan the CV.  Don't waste it. <a href="http://badgertaming.wordpress.com/2010/04/04/students-cvs-give-me-more/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=37&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s that time of year again.  Reviewing student CVs with a view to graduate positions and/or summer jobs. And I&#8217;m amazed how many CVs are absolutely useless.  There&#8217;s a lot of detail, but not much information.  Once you&#8217;ve put your contact details, your course list, your pre-university qualifications, possibly a list of skills, and some hobbies, there&#8217;s really no space left for the content that might persuade me to interview you: evidence that you&#8217;ve really done some programming.</p>
<p>When I&#8217;m looking at a CV, I want to know about what you have developed.  What meaty projects have you done?  Can you even program at all?  I want to know you&#8217;ve done more than learn some facts to pass some exams.  If you&#8217;re going to be working for me, I don&#8217;t want to be teaching you how to write code.  I want you to come on board and start contributing immediately.  So you have to have solid programming experience already.</p>
<p>Now, I know universities give you exercises and projects which give you plenty of opportunity to practice (at least, the universities I&#8217;ve been involved with do).  So tell me about them.  Sell yourself.  Show off the tricky problems you&#8217;ve solved, the slick   interfaces you&#8217;ve created.  Well-rounded individuals may be interesting to the HR department,  but if you can&#8217;t program, I&#8217;m not interested.</p>
<p>If you do get through to an interview, I&#8217;ll be looking for some project in your CV to ask you about in great detail to satisfy myself that 1) you know what you&#8217;re talking about, 2) you did actually develop it yourself and 3) you can think on your feet and extrapolate.  If I can&#8217;t find anything to ask about, I&#8217;ll not bother inviting you to interview.</p>
<p>You&#8217;ve only got a minute while I scan the CV.  Don&#8217;t waste it.  You may know you&#8217;re the best programmer on the planet, but you need to prove it  to me, too.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/badgertaming.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/badgertaming.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/badgertaming.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/badgertaming.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/badgertaming.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/badgertaming.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/badgertaming.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/badgertaming.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/badgertaming.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/badgertaming.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/badgertaming.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/badgertaming.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/badgertaming.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/badgertaming.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=37&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://badgertaming.wordpress.com/2010/04/04/students-cvs-give-me-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/aa0c2a28d50fee4683d5d2e1974664e9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grandchain</media:title>
		</media:content>
	</item>
		<item>
		<title>Communicate for resiliency</title>
		<link>http://badgertaming.wordpress.com/2010/03/13/communicate-for-resiliency/</link>
		<comments>http://badgertaming.wordpress.com/2010/03/13/communicate-for-resiliency/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 20:38:59 +0000</pubDate>
		<dc:creator>Ian Brockbank</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Managing the Unexpected]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://badgertaming.wordpress.com/?p=33</guid>
		<description><![CDATA[Another interesting snippet from Managing the Unexpected: communication helps resiliency. Resiliency is the ability to respond to an unexpected occurrence, deal with it and return to a state close to where you were before.  Remember the example of Fedex, who &#8230; <a href="http://badgertaming.wordpress.com/2010/03/13/communicate-for-resiliency/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=33&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Another interesting snippet from Managing the Unexpected: communication helps resiliency.</p>
<p>Resiliency is the ability to respond to an unexpected occurrence, deal with it and return to a state close to where you were before.  Remember <a title="Managing the Unexpected" href="http://badgertaming.wordpress.com/2010/03/01/managing-the-unexpected/">the example of Fedex</a>, who have a certain number of planes only 60% full, thereby having the ability to flex for extra loads and get back close to where they were.</p>
<p>An example given of an organisation becoming more resilient described how they network to build up links between departments and different areas. By getting to know each other better, when a problem arises, they have several benefits.</p>
<ul>
<li>They know who they can call on for help, and it&#8217;s not such a big hurdle calling someone they already know.</li>
<li>They know the skillsets of  their colleagues, and hence who is most likely to be able to help with a given problem.</li>
<li>People who are being asked for help know and trust the person asking better, so are more likely to help.</li>
<li>People know better what backup they have to call on, so can factor this into their plans in advance.</li>
<li>When the unexpected occurs, more people are involved, so more people have the chance to learn from it.</li>
</ul>
<p>Again, an agile principle turns out to build better reliability: &#8220;<a title="The Agile Manifesto" href="http://agilemanifesto.org/" target="_blank">We value Individuals and Interactions over Processes and Tools</a>&#8220;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/badgertaming.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/badgertaming.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/badgertaming.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/badgertaming.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/badgertaming.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/badgertaming.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/badgertaming.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/badgertaming.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/badgertaming.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/badgertaming.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/badgertaming.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/badgertaming.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/badgertaming.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/badgertaming.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=33&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://badgertaming.wordpress.com/2010/03/13/communicate-for-resiliency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/aa0c2a28d50fee4683d5d2e1974664e9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grandchain</media:title>
		</media:content>
	</item>
		<item>
		<title>Looking for permanent C/C++/C# GUI developers in Edinburgh</title>
		<link>http://badgertaming.wordpress.com/2010/03/08/looking-for-permanent-ccc-gui-developers-in-edinburgh/</link>
		<comments>http://badgertaming.wordpress.com/2010/03/08/looking-for-permanent-ccc-gui-developers-in-edinburgh/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 21:01:32 +0000</pubDate>
		<dc:creator>Ian Brockbank</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[edinburgh]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[software engineer]]></category>

		<guid isPermaLink="false">http://badgertaming.wordpress.com/?p=23</guid>
		<description><![CDATA[Do you want to work with us? Wolfson Microelectronics is seeking enthusiastic, degree qualified engineers with 3+ years experience in graphical software application (GUI) development to join the applications software tools team. The role is to provide software tools that &#8230; <a href="http://badgertaming.wordpress.com/2010/03/08/looking-for-permanent-ccc-gui-developers-in-edinburgh/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=23&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Do you want to work with us?</p>
<p><a title="Wolfson Microelectronics plc" href="http://www.wolfsonmicro.com/" target="_blank">Wolfson Microelectronics</a> is seeking enthusiastic, degree qualified  engineers with 3+ years experience in graphical software application  (GUI) development to join the applications software tools team. The role  is to provide software tools that guide the customers through the  configuration of our devices to allow them to evaluate the feature set  and performance and optimise the configuration of their products.</p>
<p>The position requires an ability to communicate clearly with customers and the design team and develop an understanding of customer  tool requirements. This information must them be used to produce  high-quality, intuitive tools. The candidate will also be expected to  feed back useful information gained from the customers to the rest of  the applications software team, design team and marketing team to help  improve our products.</p>
<p>Travel to customer sites in Asia, Europe and the US will be required.</p>
<p>Ideally the candidate will have an excellent knowledge and developed expertise in the following :</p>
<ul>
<li> Excellent programming ability, ideally in C/C++ although related  languages (particularly C#) may be acceptable</li>
<li> Demonstrated experience in user interface development, ideally for  Windows operating systems</li>
<li> Strong diagnostic and analytical skills, with excellent attention to  detail</li>
<li>An innovative, creative, lateral-thinking problem solver</li>
<li>Able to work to tight and variable timescales</li>
<li>Good customer facing skills</li>
</ul>
<p>Additional skills that would be highly desirable would be :</p>
<ul>
<li> Usability testing</li>
<li> Asynchronous programming</li>
<li> Microsoft Visual Studio, MFC, XML</li>
<li> C#/.Net, WPF, Managed/unmanaged code interoperability</li>
<li> Digital signal processing, Matlab</li>
<li> Agile software development</li>
<li> Embedded/firmware programming</li>
<li> Experience of supporting a world-wide customer base</li>
</ul>
<p>If interested, please send CV plus cover letter to <a title="Email application" href="mailto:cv@wolfsonmicro.com">cv@wolfsonmicro.com</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/badgertaming.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/badgertaming.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/badgertaming.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/badgertaming.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/badgertaming.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/badgertaming.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/badgertaming.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/badgertaming.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/badgertaming.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/badgertaming.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/badgertaming.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/badgertaming.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/badgertaming.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/badgertaming.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=23&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://badgertaming.wordpress.com/2010/03/08/looking-for-permanent-ccc-gui-developers-in-edinburgh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/aa0c2a28d50fee4683d5d2e1974664e9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grandchain</media:title>
		</media:content>
	</item>
		<item>
		<title>Experts</title>
		<link>http://badgertaming.wordpress.com/2010/03/08/experts/</link>
		<comments>http://badgertaming.wordpress.com/2010/03/08/experts/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:51:09 +0000</pubDate>
		<dc:creator>Ian Brockbank</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[experts]]></category>

		<guid isPermaLink="false">http://badgertaming.wordpress.com/?p=15</guid>
		<description><![CDATA[Why are external consultants considered more expert than local staff? Last week I was advised to hire an external usability expert for a couple of months.  Now, bruised ego aside, there are several reasons why this is a waste of &#8230; <a href="http://badgertaming.wordpress.com/2010/03/08/experts/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=15&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Why are external consultants considered more expert than local staff?</p>
<p>Last week I was advised to hire an external usability expert for a couple of months.  Now, bruised ego aside, there are several reasons why this is a waste of time and money.</p>
<p>We sell mixed-signal chips &#8211; audio, scanner, power management, microphone, touchscreen.  I am responsible for the software which customers use to evaluate our chips and configure them to get the best out of them.  The first version was released about three years ago, after about a year of development.  There were some minor niggles with the interface, but it was good enough to release and get customer feedback.</p>
<p>Almost immediately, the team (that&#8217;s me) was diverted onto customer support for the best part of a year.  Since then I have been under pressure to add support for new chip features so that customers can use them and we can actually sell the chips.  There has been a general move to push the grunt-work of calculating coefficients up into the software so that what you actually programme the chip with are a set of magic numbers.  The only way to calculate some of them is actually to simulate part of the chip, which isn&#8217;t something we&#8217;re going to tell the customers how to do, so the bottom line is that my software has to do these calculations or you can&#8217;t use those features.  Those features were key to securing some big design wins last year.</p>
<p>We have also had feedback on the basic interface.  Fundamentally it is sound, but it has some scalability issues with the more complex chips we&#8217;ve developed over the last couple of years, and there are a few niggles which range from quirky to annoying.</p>
<p>So I had the following choices:</p>
<ol>
<li>Provide support for the filters. Business case: enables millions of pounds in revenue.</li>
<li>Clean up the basic interface so that existing users have a slightly better experience.  Business case: er&#8230; some users (mainly internal users) have complained a bit.  Improves the perception of the company slightly.</li>
</ol>
<p>What would you do?</p>
<p>I chose 1.  It has now been suggested we get a usability expert in because I haven&#8217;t addressed 2.</p>
<p>Maybe it would be useful to get a usability expert in.  However, a good start would be to get someone allocated to work on it.  The fact that I haven&#8217;t done anything about it doesn&#8217;t mean I&#8217;m unaware of the problem, nor does it mean I have no ideas how to improve matters.  It&#8217;s a simple issue of time and priority.  And however many experts you bring in, they won&#8217;t solve that.</p>
<p>By the way &#8211; if you have UI skills, you could be the person to work on this. <a title="Looking for UI software engineers" href="http://wp.me/pESYE-n">We&#8217;re hiring</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/badgertaming.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/badgertaming.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/badgertaming.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/badgertaming.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/badgertaming.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/badgertaming.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/badgertaming.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/badgertaming.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/badgertaming.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/badgertaming.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/badgertaming.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/badgertaming.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/badgertaming.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/badgertaming.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=15&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://badgertaming.wordpress.com/2010/03/08/experts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/aa0c2a28d50fee4683d5d2e1974664e9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grandchain</media:title>
		</media:content>
	</item>
		<item>
		<title>Managing the Unexpected</title>
		<link>http://badgertaming.wordpress.com/2010/03/01/managing-the-unexpected/</link>
		<comments>http://badgertaming.wordpress.com/2010/03/01/managing-the-unexpected/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 21:39:40 +0000</pubDate>
		<dc:creator>Ian Brockbank</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[Managing the Unexpected]]></category>

		<guid isPermaLink="false">http://badgertaming.wordpress.com/?p=10</guid>
		<description><![CDATA[I&#8217;m just reading &#8220;Managing the Unexpected&#8221; by Weick and Sutcliffe. It talks about how high-reliability operations (HROs) such as Accident and Emergency centres, Aircraft Carriers, Nuclear Power Stations ensure they have fewer than their share of &#8220;brutal audits&#8221; (aka disasters) &#8230; <a href="http://badgertaming.wordpress.com/2010/03/01/managing-the-unexpected/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=10&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just reading &#8220;Managing the Unexpected&#8221; by Weick and Sutcliffe.</p>
<p>It talks about how high-reliability operations (HROs) such as Accident and Emergency centres, Aircraft Carriers, Nuclear Power Stations ensure they have fewer than their share of &#8220;brutal audits&#8221; (aka disasters) despite having a very high potential for them.</p>
<p>The key attributes they identify of such high reliability organisations are:</p>
<ol>
<li>Track small failures</li>
<li>Resist oversimplification</li>
<li>Remain sensitive to operations</li>
<li>Maintain capabilities for resilience</li>
<li>Take advantage of shifting locations of expertise</li>
</ol>
<p>Reading this, I have been struck by parallels with the Lean Principles (in particular as presented by Mary and Tom Poppendieck).</p>
<p>Track small failures = stop the line mentality.  Don&#8217;t let errors build up, but spot them early and fix them early.  If something unexpected happens, stop there until you understand it and know how to handle it.</p>
<p>Remain sensitive to operations = push responsibility down.  Make sure the people with the knowledge to understand the situation are empowered to deal with (and/or escalate) problems &#8211; but make sure they have backup they can call on when the situation moves beyond their area of expertise.  An example was cleaners at a nuclear power station were changing air filters every couple of days because of rust.  After about six months, it was discovered a section of the 6 1/2 inch-thick containment chamber had corroded to the width of a pencil eraser.  If someone had thought that changing the filters every couple of days wasn&#8217;t right, this might have been spotted before it got so perilously close to a disaster.</p>
<p>Maintain capabilities for resilience = decide as late as possible.  The example given here is Fedex.  Every evening 20 to 25 of their fleet of airplanes start their journey to the Memphis hub only 60% full.  This means there is spare capacity if they get a late addition, which can be diverted if necessary.  To control this, they say the plane MUST arrive at the hub by 1:30am.  If extra time for the diversion plus half an hour on the ground for loading still allows the 1:30 arrival, it is authorised.  Otherwise the extra load is delayed &#8211; don&#8217;t jeopardise the whole flight on the chance of making up ground.</p>
<p>You can find Managing the Unexpected <a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" title="Managing the Unexpected at Amazon" href="http://www.amazon.co.uk/exec/obidos/ASIN/0787996491/grandchainthesco">on Amazon</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/badgertaming.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/badgertaming.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/badgertaming.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/badgertaming.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/badgertaming.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/badgertaming.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/badgertaming.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/badgertaming.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/badgertaming.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/badgertaming.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/badgertaming.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/badgertaming.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/badgertaming.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/badgertaming.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=10&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://badgertaming.wordpress.com/2010/03/01/managing-the-unexpected/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/aa0c2a28d50fee4683d5d2e1974664e9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grandchain</media:title>
		</media:content>
	</item>
		<item>
		<title>Taming the wild animal of software development</title>
		<link>http://badgertaming.wordpress.com/2010/03/01/taming-the-wild-animal-of-software-development/</link>
		<comments>http://badgertaming.wordpress.com/2010/03/01/taming-the-wild-animal-of-software-development/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 21:00:56 +0000</pubDate>
		<dc:creator>Ian Brockbank</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[intro]]></category>

		<guid isPermaLink="false">http://badgertaming.wordpress.com/?p=4</guid>
		<description><![CDATA[Badgers are friendly animals if you treat them nice.  But back them in a corner and they can become vicious. So it is with software development.  When all&#8217;s rosy, anything will work.  But when the pressure&#8217;s on, what you do &#8230; <a href="http://badgertaming.wordpress.com/2010/03/01/taming-the-wild-animal-of-software-development/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=4&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Badgers are friendly animals if you treat them nice.  But back them  in a corner and they can become vicious.</p>
<p>So it is with software  development.  When all&#8217;s rosy, anything will work.  But when the pressure&#8217;s on, what you do can make the difference between delivery and a death spiral.</p>
<p>Well &#8211; it&#8217;s an analogy which serves&#8230;</p>
<p>This is a blog about software development, with musings related to Agile development, asynchronous programming, and students.</p>
<p>Why have I started this blog?  I&#8217;m a software engineer based in Edinburgh, Scotland. I am continually learning about tools and techniques, and I am often surprised to find out that other people haven&#8217;t heard of techniques I rely on.  I&#8217;m particularly interested in Agile and Lean development techniques, and processes which help maintain quality (or at least highlight issues early).</p>
<p>I also grew up with asynchronous, multi-threaded, multi-processor, multi-computer programming when I started my career at DIGITAL; since leaving I have been first astounded, then amazed and now just resigned at how poorly asynchronous programming is understood.</p>
<p>And finally, I am involved in recruitment, particularly of students.  If I can just help some people develop their skills in the right way and sell their abilities rather than their buzzwords, I will have served some use.  I have seen a lot of CVs and a fair number of chancers whose claims don&#8217;t stand up to interrogation.  I will post thoughts on this here as well.</p>
<p>I don&#8217;t know if anyone will find my musings useful, but I hope they help someone somewhere.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/badgertaming.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/badgertaming.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/badgertaming.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/badgertaming.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/badgertaming.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/badgertaming.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/badgertaming.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/badgertaming.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/badgertaming.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/badgertaming.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/badgertaming.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/badgertaming.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/badgertaming.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/badgertaming.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=badgertaming.wordpress.com&amp;blog=9744456&amp;post=4&amp;subd=badgertaming&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://badgertaming.wordpress.com/2010/03/01/taming-the-wild-animal-of-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/aa0c2a28d50fee4683d5d2e1974664e9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grandchain</media:title>
		</media:content>
	</item>
	</channel>
</rss>
